diff --git a/Changelog.yaml b/Changelog.yaml
index d0c3478ba3..41ef499723 100644
--- a/Changelog.yaml
+++ b/Changelog.yaml
@@ -4,6 +4,137 @@
# for important features/bug fixes.
# Also, each release can have new and improved recipes.
+- version: 0.7.25
+ date: 2010-10-29
+
+ new features:
+ - title: "Add support for the SONY periodical format."
+ description: "This means that news downloaded by calibre and sent to a newer SONY device (350/650/900) should appear in the Periodicals section and have the special periodicals navigation user interface"
+ type: major
+
+ - title: "Content server: Make the new browsing interface the default. The old interface can be accessed at /old"
+
+ - title: "Content server: Allow running of content server as a WSGI application within another server. Add tutorial for this to the User Manual."
+
+ - title: "Support for the Pico Life reader, Kobo Wifi and HTC Aria"
+
+ - title: "Content server: Add a new --url-prefix command line option to ease the use of the server with a reverse proxy"
+
+ - title: "New social metadata plugin for Amazon that does not rely on AWS. Since Amazon broke AWS, it is recommended you upgrade to this version if you use metadata from Amazon"
+
+ - title: "Add a tweak to specify the fonts used when geenrating the default cover"
+
+ - title: "Add an output profile for generic Tablet devices"
+ tickets: [7289]
+
+ - title: "SONY driver: Allow sorting of collections by arbitrary field via a new tweak."
+
+ - title: "Content server: Make /mobile a little prettier"
+
+ - title: "Add button to 'Library Check' to automatically delete spurious files and folders"
+
+ bug fixes:
+ - title: "FB2 Input: Lots of love. Handle stylesheets and style attributes. Make parsinf malformed FB2 files more robust."
+ tickets: [7219, 7230]
+
+ - title: "Fix auto send of news to device with multiple calibre libraries. The fix means that if you have any pending news to be sent, it will be ignored after the update. Future news downloads will once again be automatically sent to the device."
+
+ - title: "MOBI Output: Conversion of super/sub scripts now handles nested tags."
+ tickets: [7264]
+
+ - title: "Conversion pipeline: Fix parsing of XML encoding declarations."
+ tickets: [7328]
+
+ - title: "Pandigital (Kobo): Upload thumbnails to correct location"
+ tickets: [7165]
+
+ - title: "Fix auto emailed news with non asci characters in title not being deliverd to Kindle"
+ tickets: [7322]
+
+ - title: "Read metadata only after on import plugins have run when adding books to GUI"
+ tickets: [7245]
+
+ - title: "Various fixes for bugs caused by non ascii temporary paths on windows with non UTF-8 filesystem encodings"
+ tickets: [7288]
+
+ - title: "Various fixes/enhancements to SNB Output"
+
+ - title: "Allow Tag editor in edit metadata dialog to be used even if tags have been changed"
+ tickets: [7298]
+
+ - title: "Fix crash on some OS X machines when Preferences->Conversion->Output is clicked"
+
+ - title: "MOBI indexing: Fix last entry missing sometimes"
+ tickets: [6595]
+
+ - title: "Fix regression causing books to be deselected after sending to device"
+ tickets: [7271]
+
+ - title: "Conversion pipeline: Fix rescaling of GIF images not working"
+ tickets: [7306]
+
+ - title: "Update PDF metadata/conversion libraries in windows build"
+
+ - title: "Fix timezone bug when searching on date fields"
+ tickets: [7300]
+
+ - title: "Fix regression that caused the viewr to crash if the main application is closed"
+ tickets: [7276]
+
+ - title: "Fix bug causing a spurious metadata.opf file to be written at the root of the calibre library when adding books"
+
+ - title: "Use the same title casing algorithm in all places"
+
+ - title: "Fix bulk edit of dual state boolean custom columns"
+
+ - title: "Increase image size for comics in Kindle DX profile for better conversion of comics to PDF"
+
+ - title: "Fix restore db to not dies when conflicting custom columns are encountered and report conflicting columns errors. Fix exceptions when referencing invalid _index fields."
+
+ - title: "Fix auto merge books not respecting article sort tweak"
+ tickets: [7147]
+
+ - title: "Linux device drivers: Fix udisks based ejecting for devices with multiple nodes"
+
+ - title: "Linux device mounting: Mount the drive with the lowest kernel name as main memory"
+
+ - title: "Fix use of numeric fields in templates"
+
+ - title: "EPUB Input: Handle EPUB files with multiple OPF files."
+ tickets: [7229]
+
+ - title: "Setting EPUB metadata: Fix date format. Fix language being overwritten by und when unspecified. Fix empty ISBN identifier being created"
+
+ - title: "Fix cannot delete a Series listing from List view also dismiss fetch metadata dialog when no metadata found automatically"
+ tickets: [7221, 7220]
+
+ - title: "Content server: Handle switch library in GUI gracefully"
+
+ - title: "calibre-server: Use cherrypy implementation of --pidfile and --daemonize"
+
+ new recipes:
+ - title: "Ming Pao"
+ author: "Eddie Lau"
+
+ - title: "lenta.ru"
+ author: "Nikolai Kotchetkov"
+
+ - title: "frazpc.pl"
+ author: "Tomasz Dlugosz"
+
+ - title: "Perfil and The Economic Collapse Blog"
+ author: "Darko Miletic"
+
+ - title: "STNN"
+ author: "Larry Chan"
+
+ improved recipes:
+ - CubaDebate
+ - El Pais
+ - Fox News
+ - New Scientist
+ - The Economic Times of India
+
- version: 0.7.24
date: 2010-10-17
diff --git a/resources/content_server/browse/browse.html b/resources/content_server/browse/browse.html
index 4acc15f3ea..ef312334d9 100644
--- a/resources/content_server/browse/browse.html
+++ b/resources/content_server/browse/browse.html
@@ -8,24 +8,25 @@
-
-
-
+
+
+
-
-
+
+
+ src="{prefix}/static/jquery_ui/js/jquery-ui-1.8.5.custom.min.js">
+ src="{prefix}/static/jquery.multiselect.min.js">
-
+
-
-
+
+
+
+
+
-
+
-
-
+
@@ -38,7 +39,7 @@
- Loading…
+ Loading…
diff --git a/resources/default_tweaks.py b/resources/default_tweaks.py
index 270b7e0b06..0f570bab40 100644
--- a/resources/default_tweaks.py
+++ b/resources/default_tweaks.py
@@ -203,3 +203,11 @@ content_server_wont_display = ['']
# level sorts, and if you are seeing a slowdown, reduce the value of this tweak.
maximum_resort_levels = 5
+# Absolute path to a TTF font file to use as the font for the title and author
+# when generating a default cover. Useful if the default font (Liberation
+# Serif) does not contain glyphs for the language of the books in your library.
+generate_cover_title_font = None
+
+# Absolute path to a TTF font file to use as the font for the footer in the
+# default cover
+generate_cover_foot_font = None
diff --git a/resources/images/news/perfil.png b/resources/images/news/perfil.png
new file mode 100644
index 0000000000..54c8159e48
Binary files /dev/null and b/resources/images/news/perfil.png differ
diff --git a/resources/recipes/cubadebate.recipe b/resources/recipes/cubadebate.recipe
index 88d06d412d..f8887b2672 100644
--- a/resources/recipes/cubadebate.recipe
+++ b/resources/recipes/cubadebate.recipe
@@ -1,9 +1,7 @@
-#!/usr/bin/env python
-
__license__ = 'GPL v3'
-__copyright__ = '2009, Darko Miletic '
+__copyright__ = '2009-2010, Darko Miletic '
'''
-newyorker.com
+cubadebate.cu
'''
from calibre.web.feeds.news import BasicNewsRecipe
@@ -13,32 +11,44 @@ class CubaDebate(BasicNewsRecipe):
__author__ = 'Darko Miletic'
description = 'Contra el Terorismo Mediatico'
oldest_article = 15
- language = 'es'
-
+ language = 'es'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
publisher = 'Cubadebate'
category = 'news, politics, Cuba'
encoding = 'utf-8'
- extra_css = ' #BlogTitle{font-size: x-large; font-weight: bold} '
+ masthead_url = 'http://www.cubadebate.cu/wp-content/themes/cubadebate/images/logo.gif'
+ publication_type = 'newsportal'
+ extra_css = """
+ #BlogTitle{font-size: xx-large; font-weight: bold}
+ body{font-family: Verdana, Arial, Tahoma, sans-serif}
+ """
conversion_options = {
'comments' : description
,'tags' : category
- ,'language' : 'es'
+ ,'language' : language
,'publisher' : publisher
- ,'pretty_print': True
}
keep_only_tags = [dict(name='div', attrs={'id':'Outline'})]
remove_tags_after = dict(name='div',attrs={'id':'BlogContent'})
- remove_tags = [dict(name='link')]
+ remove_tags = [
+ dict(name=['link','base','embed','object','meta','iframe'])
+ ,dict(attrs={'id':'addthis_container'})
+ ]
feeds = [(u'Articulos', u'http://www.cubadebate.cu/feed/')]
-
+ remove_attributes=['width','height','lang']
+
def print_version(self, url):
return url + 'print/'
def preprocess_html(self, soup):
- return self.adeify_images(soup)
+ for item in soup.findAll(style=True):
+ del item['style']
+ for item in soup.findAll('img'):
+ if not item.has_key('alt'):
+ item['alt'] = 'image'
+ return soup
diff --git a/resources/recipes/lenta_ru.recipe b/resources/recipes/lenta_ru.recipe
new file mode 100644
index 0000000000..d400bc5886
--- /dev/null
+++ b/resources/recipes/lenta_ru.recipe
@@ -0,0 +1,177 @@
+#!/usr/bin/env python
+
+'''
+Lenta.ru
+'''
+
+from calibre.web.feeds.feedparser import parse
+from calibre.ebooks.BeautifulSoup import Tag
+from calibre.web.feeds.news import BasicNewsRecipe
+import re
+
+class LentaRURecipe(BasicNewsRecipe):
+ title = u'Lenta.ru: \u041d\u043e\u0432\u043e\u0441\u0442\u0438'
+ __author__ = 'Nikolai Kotchetkov'
+ publisher = 'lenta.ru'
+ category = 'news, Russia'
+ description = u'''\u0415\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u0430\u044f
+ \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0433\u0430\u0437\u0435\u0442\u0430.
+ \u041d\u043e\u0432\u043e\u0441\u0442\u0438 \u0441\u043e
+ \u0432\u0441\u0435\u0433\u043e \u043c\u0438\u0440\u0430 \u043d\u0430
+ \u0440\u0443\u0441\u0441\u043a\u043e\u043c
+ \u044f\u0437\u044b\u043a\u0435'''
+ description = u'Ежедневная интернет-газета. Новости со всего мира на русском языке'
+ oldest_article = 3
+ max_articles_per_feed = 100
+
+ masthead_url = u'http://img.lenta.ru/i/logowrambler.gif'
+ cover_url = u'http://img.lenta.ru/i/logowrambler.gif'
+
+ #Add feed names if you want them to be sorted (feeds of this list appear first)
+ sortOrder = [u'_default', u'В России', u'б.СССР', u'В мире']
+
+ encoding = 'cp1251'
+ language = 'ru'
+ no_stylesheets = True
+ remove_javascript = True
+ recursions = 0
+
+ conversion_options = {
+ 'comment' : description
+ , 'tags' : category
+ , 'publisher' : publisher
+ , 'language' : language
+ }
+
+
+ keep_only_tags = [dict(name='td', attrs={'class':['statya','content']})]
+
+ remove_tags_after = [dict(name='p', attrs={'class':'links'}), dict(name='div', attrs={'id':'readers-block'})]
+
+ remove_tags = [dict(name='table', attrs={'class':['vrezka','content']}), dict(name='div', attrs={'class':'b240'}), dict(name='div', attrs={'id':'readers-block'}), dict(name='p', attrs={'class':'links'})]
+
+ feeds = [u'http://lenta.ru/rss/']
+
+ extra_css = 'h1 {font-size: 1.2em; margin: 0em 0em 0em 0em;} h2 {font-size: 1.0em; margin: 0em 0em 0em 0em;} h3 {font-size: 0.8em; margin: 0em 0em 0em 0em;}'
+
+ def parse_index(self):
+ try:
+ feedData = parse(self.feeds[0])
+ if not feedData:
+ raise NotImplementedError
+ self.log("parse_index: Feed loaded successfully.")
+ if feedData.feed.has_key('title'):
+ self.title = feedData.feed.title
+ self.log("parse_index: Title updated to: ", self.title)
+ if feedData.feed.has_key('image'):
+ self.log("HAS IMAGE!!!!")
+
+ def get_virtual_feed_articles(feed):
+ if feeds.has_key(feed):
+ return feeds[feed][1]
+ self.log("Adding new feed: ", feed)
+ articles = []
+ feeds[feed] = (feed, articles)
+ return articles
+
+ feeds = {}
+
+ #Iterate feed items and distribute articles using tags
+ for item in feedData.entries:
+ link = item.get('link', '');
+ title = item.get('title', '');
+ if '' == link or '' == title:
+ continue
+ article = {'title':title, 'url':link, 'description':item.get('description', ''), 'date':item.get('date', ''), 'content':''};
+ if not item.has_key('tags'):
+ get_virtual_feed_articles('_default').append(article)
+ continue
+ for tag in item.tags:
+ addedToDefault = False
+ term = tag.get('term', '')
+ if '' == term:
+ if (not addedToDefault):
+ get_virtual_feed_articles('_default').append(article)
+ continue
+ get_virtual_feed_articles(term).append(article)
+
+ #Get feed list
+ #Select sorted feeds first of all
+ result = []
+ for feedName in self.sortOrder:
+ if (not feeds.has_key(feedName)): continue
+ result.append(feeds[feedName])
+ del feeds[feedName]
+ result = result + feeds.values()
+
+ return result
+
+ except Exception, err:
+ self.log(err)
+ raise NotImplementedError
+
+ def preprocess_html(self, soup):
+ return self.adeify_images(soup)
+
+ def postprocess_html(self, soup, first_fetch):
+ #self.log('Original: ', soup.prettify())
+
+ contents = Tag(soup, 'div')
+
+ #Extract tags with given attributes
+ extractElements = {'div' : [{'id' : 'readers-block'}]}
+
+ #Remove all elements that were not extracted before
+ for tag, attrs in extractElements.iteritems():
+ for attr in attrs:
+ garbage = soup.findAll(tag, attr)
+ if garbage:
+ for pieceOfGarbage in garbage:
+ pieceOfGarbage.extract()
+
+ #Find article text using header
+ #and add all elements to contents
+ element = soup.find({'h1' : True, 'h2' : True})
+ if (element):
+ element.name = 'h1'
+ while element:
+ nextElement = element.nextSibling
+ element.extract()
+ contents.insert(len(contents.contents), element)
+ element = nextElement
+
+ #Place article date after header
+ dates = soup.findAll(text=re.compile('\d{2}\.\d{2}\.\d{4}, \d{2}:\d{2}:\d{2}'))
+ if dates:
+ for date in dates:
+ for string in date:
+ parent = date.parent
+ if (parent and isinstance(parent, Tag) and 'div' == parent.name and 'dt' == parent['class']):
+ #Date div found
+ parent.extract()
+ parent['style'] = 'font-size: 0.5em; color: gray; font-family: monospace;'
+ contents.insert(1, parent)
+ break
+
+ #Place article picture after date
+ pic = soup.find('img')
+ if pic:
+ picDiv = Tag(soup, 'div')
+ picDiv['style'] = 'width: 100%; text-align: center;'
+ pic.extract()
+ picDiv.insert(0, pic)
+ title = pic.get('title', None)
+ if title:
+ titleDiv = Tag(soup, 'div')
+ titleDiv['style'] = 'font-size: 0.5em;'
+ titleDiv.insert(0, title)
+ picDiv.insert(1, titleDiv)
+ contents.insert(2, picDiv)
+
+ body = soup.find('td', {'class':['statya','content']})
+ if body:
+ body.replaceWith(contents)
+
+ #self.log('Result: ', soup.prettify())
+ return soup
+
diff --git a/resources/recipes/nytimes_sub.recipe b/resources/recipes/nytimes_sub.recipe
index 1814132667..5452ae1c6e 100644
--- a/resources/recipes/nytimes_sub.recipe
+++ b/resources/recipes/nytimes_sub.recipe
@@ -4,149 +4,79 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal '
'''
nytimes.com
-V5 - One picture per article, moved to top:
-Headline
-Image
-Byline
-Story
'''
-import re, string, time
+import string, re, time
from calibre import strftime
from calibre.web.feeds.recipes import BasicNewsRecipe
-from calibre.ebooks.BeautifulSoup import BeautifulStoneSoup, NavigableString, Tag
+from calibre.ebooks.BeautifulSoup import BeautifulSoup
+
+def decode(self, src):
+ enc = 'utf-8'
+ if 'iso-8859-1' in src:
+ enc = 'cp1252'
+ return src.decode(enc, 'ignore')
class NYTimes(BasicNewsRecipe):
- title = 'The New York Times'
- __author__ = 'GRiker'
+ title = u'New York Times'
+ __author__ = 'Kovid Goyal/Nick Redding'
language = 'en'
- requires_version = (0, 7, 5)
+ requires_version = (0, 6, 36)
description = 'Daily news from the New York Times (subscription version)'
- allSectionKeywords = ['The Front Page', 'International','National','Obituaries','Editorials',
- 'New York','Business Day','Science Times','Sports','Dining','Arts',
- 'Home','Styles','Sunday Business','Week In Review','Travel','Magazine',
- 'Book Review','Weddings','Real Estate','Automobiles',"T Men's Fashion",
- "T Women's Fashion"]
-
- # List of sections to exclude
- # To add a section, copy the section name from the allSectionKeywords list above
- # For example, to exclude 'Dining' and 'Weddings':
- #excludeSectionKeywords = ['Dining','Weddings']
- excludeSectionKeywords = []
-
- # List of sections to include (test and debug only)
- # By default, any sections in today's paper that are not listed in excludeSectionKeywords
- # are downloaded. fetch_only specifies that only certain sections are to be downloaded.
- # This should only be used for testing and debugging.
- # For example, to download only 'The Front Page' section:
- # fetch_only = set(['The Front Page'])
- fetch_only = set([])
- if fetch_only:
- excludeSectionKeywords = list(set(allSectionKeywords) ^ fetch_only)
-
- # one_picture_per_article specifies that calibre should only use the first image
- # from an article (if one exists). If one_picture_per_article = True, the image
- # will be moved to a location between the headline and the byline.
- # If one_picture_per_article = False, all images from the article will be included
- # and shown in their original location.
- one_picture_per_article = True
-
- timefmt = ''
+ timefmt = ' [%b %d]'
needs_subscription = True
remove_tags_before = dict(id='article')
remove_tags_after = dict(id='article')
- remove_tags = [dict(attrs={'class':[
- 'articleFooter',
- 'articleTools',
- 'columnGroup doubleRule',
- 'columnGroup singleRule',
- 'columnGroup last',
- 'columnGroup last',
- 'doubleRule',
- 'dottedLine',
- 'entry-meta',
- 'entry-response module',
- 'icon enlargeThis',
- 'leftNavTabs',
- 'module box nav',
- 'nextArticleLink',
- 'nextArticleLink clearfix',
- 'post-tools',
- 'relatedSearchesModule',
- 'side_tool',
- 'singleAd',
- 'subNavigation clearfix',
- 'subNavigation tabContent active',
- 'subNavigation tabContent active clearfix',
- ]}),
- dict(id=[
- 'adxLeaderboard',
- 'archive',
- 'articleExtras',
- 'articleInline',
- 'blog_sidebar',
- 'businessSearchBar',
- 'cCol',
- 'entertainmentSearchBar',
- 'footer',
- 'header',
- 'header_search',
- 'login',
- 'masthead',
- 'masthead-nav',
- 'memberTools',
- 'navigation',
- 'portfolioInline',
- 'relatedArticles',
- 'respond',
- 'side_search',
- 'side_index',
- 'side_tool',
- 'toolsRight',
- ]),
- dict(name=['script', 'noscript', 'style'])]
- masthead_url = 'http://graphics8.nytimes.com/images/misc/nytlogo379x64.gif'
- cover_margins = (18,18,'grey99')
+ remove_tags = [dict(attrs={'class':['articleTools', 'post-tools', 'side_tool','nextArticleLink',
+ 'nextArticleLink clearfix','columnGroup doubleRule','doubleRule','entry-meta',
+ 'icon enlargeThis','columnGroup last','relatedSearchesModule']}),
+ dict({'class':re.compile('^subNavigation')}),
+ dict({'class':re.compile('^leaderboard')}),
+ dict({'class':re.compile('^module')}),
+ dict({'class':'metaFootnote'}),
+ dict(id=['inlineBox','footer', 'toolsRight', 'articleInline','login','masthead',
+ 'navigation', 'archive', 'side_search', 'blog_sidebar','cCol','portfolioInline',
+ 'side_tool', 'side_index','header','readerReviewsCount','readerReviews',
+ 'relatedArticles', 'relatedTopics', 'adxSponLink']),
+ dict(name=['script', 'noscript', 'style','form','hr'])]
+ encoding = decode
no_stylesheets = True
- extra_css = '.headline {text-align: left;}\n \
- .byline {font-family: monospace; \
- text-align: left; \
- margin-top: 0px; \
- margin-bottom: 0px;}\n \
- .dateline {font-size: small; \
- margin-top: 0px; \
- margin-bottom: 0px;}\n \
- .timestamp {font-size: small; \
- margin-top: 0px; \
- margin-bottom: 0px;}\n \
- .source {text-align: left;}\n \
- .image {text-align: center;}\n \
- .credit {text-align: right; \
- font-size: small; \
- margin-top: 0px; \
- margin-bottom: 0px;}\n \
- .articleBody {text-align: left;}\n \
- .authorId {text-align: left; \
- font-style: italic;}\n '
+ extra_css = '''
+ .articleHeadline { margin-top:0.5em; margin-bottom:0.25em; }
+ .credit { font-size: small; font-style:italic; line-height:1em; margin-top:5px; margin-left:0; margin-right:0; margin-bottom: 0; }
+ .byline { font-size: small; font-style:italic; line-height:1em; margin-top:10px; margin-left:0; margin-right:0; margin-bottom: 0; }
+ .dateline { font-size: small; line-height:1em;margin-top:5px; margin-left:0; margin-right:0; margin-bottom: 0; }
+ .kicker { font-size: small; line-height:1em;margin-top:5px; margin-left:0; margin-right:0; margin-bottom: 0; }
+ .timestamp { font-size: small; }
+ .caption { font-size: small; line-height:1em; margin-top:5px; margin-left:0; margin-right:0; margin-bottom: 0; }
+ a:link {text-decoration: none; }'''
def get_browser(self):
br = BasicNewsRecipe.get_browser()
if self.username is not None and self.password is not None:
- try:
- br.open('http://www.nytimes.com/auth/login')
- br.select_form(name='login')
- br['USERID'] = self.username
- br['PASSWORD'] = self.password
- raw = br.submit().read()
- if 'Sorry, we could not find the combination you entered. Please try again.' in raw:
- raise Exception('Your username and password are incorrect')
- #open('/t/log.html', 'wb').write(raw)
- except:
- self.log("\nFailed to login")
-
+ br.open('http://www.nytimes.com/auth/login')
+ br.select_form(name='login')
+ br['USERID'] = self.username
+ br['PASSWORD'] = self.password
+ raw = br.submit().read()
+ if 'Sorry, we could not find the combination you entered. Please try again.' in raw:
+ raise Exception('Your username and password are incorrect')
+ #open('/t/log.html', 'wb').write(raw)
return br
+ def get_masthead_url(self):
+ masthead = 'http://graphics8.nytimes.com/images/misc/nytlogo379x64.gif'
+ #masthead = 'http://members.cox.net/nickredding/nytlogo.gif'
+ br = BasicNewsRecipe.get_browser()
+ try:
+ br.open(masthead)
+ except:
+ self.log("\nMasthead unavailable")
+ masthead = None
+ return masthead
+
+
def get_cover_url(self):
cover = None
st = time.localtime()
@@ -162,316 +92,101 @@ class NYTimes(BasicNewsRecipe):
cover = None
return cover
- def get_masthead_title(self):
- return self.title
-
- def dump_ans(self, ans):
- total_article_count = 0
- for section in ans :
- if self.verbose:
- self.log("section %s: %d articles" % (section[0], len(section[1])) )
- for article in section[1]:
- total_article_count += 1
- if self.verbose:
- self.log("\t%-40.40s... \t%-60.60s..." % (article['title'].encode('mac-roman','replace'),
- article['url'].encode('mac-roman','replace')))
- self.log( "Queued %d articles" % total_article_count )
-
- def dump_hex(self, src, length=16):
- ''' Diagnostic '''
- FILTER=''.join([(len(repr(chr(x)))==3) and chr(x) or '.' for x in range(256)])
- N=0; result=''
- while src:
- s,src = src[:length],src[length:]
- hexa = ' '.join(["%02X"%ord(x) for x in s])
- s = s.translate(FILTER)
- result += "%04X %-*s %s\n" % (N, length*3, hexa, s)
- N+=length
- print result
-
- def fixChars(self,string):
- # Replace lsquo (\x91)
- fixed = re.sub("\x91","‘",string)
-
- # Replace rsquo (\x92)
- fixed = re.sub("\x92","’",fixed)
-
- # Replace ldquo (\x93)
- fixed = re.sub("\x93","“",fixed)
-
- # Replace rdquo (\x94)
- fixed = re.sub("\x94","”",fixed)
-
- # Replace ndash (\x96)
- fixed = re.sub("\x96","–",fixed)
-
- # Replace mdash (\x97)
- fixed = re.sub("\x97","—",fixed)
-
- return fixed
-
- def massageNCXText(self, description):
- # Kindle TOC descriptions won't render certain characters
- if description:
- massaged = unicode(BeautifulStoneSoup(description, convertEntities=BeautifulStoneSoup.HTML_ENTITIES))
- # Replace '&' with '&'
- massaged = re.sub("&","&", massaged)
- return self.fixChars(massaged)
- else:
- return description
+ def short_title(self):
+ return 'New York Times'
def parse_index(self):
+ self.encoding = 'cp1252'
soup = self.index_to_soup('http://www.nytimes.com/pages/todayspaper/index.html')
+ self.encoding = decode
def feed_title(div):
- return ''.join(div.findAll(text=True, recursive=False)).strip()
+ return ''.join(div.findAll(text=True, recursive=True)).strip()
articles = {}
key = None
ans = []
- # Find each instance of class="section-headline", class="story", class="story headline"
- for div in soup.findAll(True,
- attrs={'class':['section-headline', 'story', 'story headline']}):
+ url_list = []
- if div['class'] == 'section-headline':
- key = string.capwords(feed_title(div))
- if self.excludeSectionKeywords:
- excluded = re.compile('|'.join(self.excludeSectionKeywords))
- if excluded.search(key):
- self.log("Skipping section %s" % key)
- continue
- articles[key] = []
- ans.append(key)
-
- elif div['class'] in ['story', 'story headline'] :
- a = div.find('a', href=True)
- if not a:
- continue
- url = re.sub(r'\?.*', '', a['href'])
- url += '?pagewanted=all'
-
- title = self.massageNCXText(self.tag_to_string(a, use_alt=True).strip())
-
- description = ''
- pubdate = strftime('%a, %d %b')
- summary = div.find(True, attrs={'class':'summary'})
- if summary:
- description = self.massageNCXText(self.tag_to_string(summary, use_alt=False))
-
- author = ''
- authorAttribution = div.find(True, attrs={'class':'storyheadline-author'})
+ def handle_article(div):
+ a = div.find('a', href=True)
+ if not a:
+ return
+ url = re.sub(r'\?.*', '', a['href'])
+ if not url.startswith("http"):
+ return
+ if not url.endswith(".html"):
+ return
+ if 'podcast' in url:
+ return
+ url += '?pagewanted=all'
+ if url in url_list:
+ return
+ url_list.append(url)
+ title = self.tag_to_string(a, use_alt=True).strip()
+ #self.log("Title: %s" % title)
+ description = ''
+ pubdate = strftime('%a, %d %b')
+ summary = div.find(True, attrs={'class':'summary'})
+ if summary:
+ description = self.tag_to_string(summary, use_alt=False)
+ author = ''
+ authorAttribution = div.find(True, attrs={'class':'byline'})
+ if authorAttribution:
+ author = self.tag_to_string(authorAttribution, use_alt=False)
+ else:
+ authorAttribution = div.find(True, attrs={'class':'byline'})
if authorAttribution:
author = self.tag_to_string(authorAttribution, use_alt=False)
- else:
- authorAttribution = div.find(True, attrs={'class':'byline'})
- if authorAttribution:
- author = self.tag_to_string(authorAttribution, use_alt=False)
- # Kill commas - Kindle switches to '&'
- author = re.sub(',','',author)
+ feed = key if key is not None else 'Uncategorized'
+ if not articles.has_key(feed):
+ articles[feed] = []
+ articles[feed].append(
+ dict(title=title, url=url, date=pubdate,
+ description=description, author=author,
+ content=''))
- feed = key if key is not None else 'Uncategorized'
- if not articles.has_key(feed):
- articles[feed] = []
- if not 'podcasts' in url:
- articles[feed].append(
- dict(title=title, url=url, date=pubdate,
- description=description, author=author,
- content=''))
- ans = self.sort_index_by(ans, {'The Front Page':-1,
- 'Dining In, Dining Out':1,
- 'Obituaries':2})
+
+
+ # Find each instance of class="section-headline", class="story", class="story headline"
+ for div in soup.findAll(True,
+ attrs={'class':['section-headline', 'story', 'story headline','sectionHeader','headlinesOnly multiline flush']}):
+
+ if div['class'] in ['section-headline','sectionHeader']:
+ key = string.capwords(feed_title(div))
+ articles[key] = []
+ ans.append(key)
+ #self.log('Section: %s' % key)
+
+ elif div['class'] in ['story', 'story headline'] :
+ handle_article(div)
+ elif div['class'] == 'headlinesOnly multiline flush':
+ for lidiv in div.findAll('li'):
+ handle_article(lidiv)
+
+# ans = self.sort_index_by(ans, {'The Front Page':-1,
+# 'Dining In, Dining Out':1,
+# 'Obituaries':2})
ans = [(key, articles[key]) for key in ans if articles.has_key(key)]
- self.dump_ans(ans)
+
return ans
- def skip_ad_pages(self, soup):
- # Skip ad pages served before actual article
- skip_tag = soup.find(True, {'name':'skip'})
- if skip_tag is not None:
- self.log.warn("Found forwarding link: %s" % skip_tag.parent['href'])
- url = 'http://www.nytimes.com' + re.sub(r'\?.*', '', skip_tag.parent['href'])
- url += '?pagewanted=all'
- self.log.warn("Skipping ad to article at '%s'" % url)
- return self.index_to_soup(url, raw=True)
-
def preprocess_html(self, soup):
- return self.strip_anchors(soup)
+ kicker_tag = soup.find(attrs={'class':'kicker'})
+ if kicker_tag:
+ tagline = self.tag_to_string(kicker_tag)
+ #self.log("FOUND KICKER %s" % tagline)
+ if tagline=='Op-Ed Columnist':
+ img_div = soup.find('div','inlineImage module')
+ #self.log("Searching for photo")
+ if img_div:
+ img_div.extract()
+ #self.log("Photo deleted")
+ refresh = soup.find('meta', {'http-equiv':'refresh'})
+ if refresh is None:
+ return soup
+ content = refresh.get('content').partition('=')[2]
+ raw = self.browser.open_novisit('http://www.nytimes.com'+content).read()
+ return BeautifulSoup(raw.decode('cp1252', 'replace'))
- def postprocess_html(self,soup, True):
- print "\npostprocess_html()\n"
-
- if self.one_picture_per_article:
- # Remove all images after first
- largeImg = soup.find(True, {'class':'articleSpanImage'})
- inlineImgs = soup.findAll(True, {'class':'inlineImage module'})
- if largeImg:
- for inlineImg in inlineImgs:
- inlineImg.extract()
- else:
- if inlineImgs:
- firstImg = inlineImgs[0]
- for inlineImg in inlineImgs[1:]:
- inlineImg.extract()
- # Move firstImg after headline
- cgFirst = soup.find(True, {'class':'columnGroup first'})
- if cgFirst:
- # Strip all sibling NavigableStrings: noise
- navstrings = cgFirst.findAll(text=True, recursive=False)
- [ns.extract() for ns in navstrings]
- headline_found = False
- tag = cgFirst.find(True)
- insertLoc = 0
- while True:
- insertLoc += 1
- if hasattr(tag,'class') and tag['class'] == 'articleHeadline':
- headline_found = True
- break
- tag = tag.nextSibling
- if not tag:
- headline_found = False
- break
- if headline_found:
- cgFirst.insert(insertLoc,firstImg)
- else:
- self.log(">>> No class:'columnGroup first' found <<<")
- # Change class="kicker" to
- kicker = soup.find(True, {'class':'kicker'})
- if kicker and kicker.contents and kicker.contents[0]:
- h3Tag = Tag(soup, "h3")
- h3Tag.insert(0, self.fixChars(self.tag_to_string(kicker,
- use_alt=False)))
- kicker.replaceWith(h3Tag)
-
- # Change captions to italic -1
- for caption in soup.findAll(True, {'class':'caption'}) :
- if caption and caption.contents[0]:
- emTag = Tag(soup, "em")
- c = self.fixChars(self.tag_to_string(caption,use_alt=False)).strip()
- mp_off = c.find("More Photos")
- if mp_off >= 0:
- c = c[:mp_off]
- emTag.insert(0, c)
- #hrTag = Tag(soup, 'hr')
- #hrTag['class'] = 'caption_divider'
- hrTag = Tag(soup, 'div')
- hrTag['class'] = 'divider'
- emTag.insert(1, hrTag)
- caption.replaceWith(emTag)
-
- # Change to
- h1 = soup.find('h1')
- if h1:
- headline = h1.find("nyt_headline")
- if headline:
- tag = Tag(soup, "h2")
- tag['class'] = "headline"
- tag.insert(0, self.fixChars(headline.contents[0]))
- h1.replaceWith(tag)
- else:
- # Blog entry - replace headline, remove tags
- headline = soup.find('title')
- if headline:
- tag = Tag(soup, "h2")
- tag['class'] = "headline"
- tag.insert(0, self.fixChars(headline.contents[0]))
- soup.insert(0, tag)
- hrs = soup.findAll('hr')
- for hr in hrs:
- hr.extract()
-
- # Change
to
- used in editorial blogs
- masthead = soup.find("h1")
- if masthead:
- # Nuke the href
- if masthead.a:
- del(masthead.a['href'])
- tag = Tag(soup, "h3")
- tag.insert(0, self.fixChars(masthead.contents[0]))
- masthead.replaceWith(tag)
-
- # Change to
- for subhead in soup.findAll(True, {'class':'bold'}) :
- if subhead.contents:
- bTag = Tag(soup, "b")
- bTag.insert(0, subhead.contents[0])
- subhead.replaceWith(bTag)
-
- # Synthesize a section header
- dsk = soup.find('meta', attrs={'name':'dsk'})
- if dsk and dsk.has_key('content'):
- hTag = Tag(soup,'h3')
- hTag['class'] = 'section'
- hTag.insert(0,NavigableString(dsk['content']))
- articleTag = soup.find(True, attrs={'id':'article'})
- if articleTag:
- articleTag.insert(0,hTag)
-
- # Add class="articleBody" to
so we can format with CSS
- divTag = soup.find('div',attrs={'id':'articleBody'})
- if divTag:
- divTag['class'] = divTag['id']
-
- # Add class="authorId" to
so we can format with CSS
- divTag = soup.find('div',attrs={'id':'authorId'})
- if divTag and divTag.contents[0]:
- tag = Tag(soup, "p")
- tag['class'] = "authorId"
- tag.insert(0, self.fixChars(self.tag_to_string(divTag.contents[0],
- use_alt=False)))
- divTag.replaceWith(tag)
-
- return soup
-
- def populate_article_metadata(self,article,soup,first):
- '''
- Extract author and description from article, add to article metadata
- '''
- def extract_author(soup):
- byline = soup.find('meta',attrs={'name':['byl','CLMST']})
- if byline :
- author = byline['content']
- else :
- # Try for
- byline = soup.find('div', attrs={'class':'byline'})
- if byline:
- author = byline.renderContents()
- else:
- print soup.prettify()
- return None
- return author
-
- def extract_description(soup):
- description = soup.find('meta',attrs={'name':['description','description ']})
- if description :
- return self.massageNCXText(description['content'])
- else:
- # Take first paragraph of article
- articlebody = soup.find('div',attrs={'id':'articlebody'})
- if not articlebody:
- # Try again with class instead of id
- articlebody = soup.find('div',attrs={'class':'articlebody'})
- if not articlebody:
- print 'postprocess_book.extract_description(): Did not find
'])
@@ -243,6 +243,7 @@ class BrowseServer(object):
ans = ans.replace('{sort_select_label}', xml(_('Sort by')+':'))
ans = ans.replace('{sort_cookie_name}', scn)
+ ans = ans.replace('{prefix}', self.opts.url_prefix)
opts = ['' % (
'selected="selected" ' if k==sort else '',
xml(k), xml(n), ) for k, n in
@@ -258,15 +259,14 @@ class BrowseServer(object):
ans = ans.replace('{initial_search}', initial_search)
return ans
- return self.__browse_template__
-
@property
def browse_summary_template(self):
if not hasattr(self, '__browse_summary_template__') or \
self.opts.develop:
self.__browse_summary_template__ = \
P('content_server/browse/summary.html', data=True).decode('utf-8')
- return self.__browse_summary_template__
+ return self.__browse_summary_template__.replace('{prefix}',
+ self.opts.url_prefix)
@property
def browse_details_template(self):
@@ -274,7 +274,8 @@ class BrowseServer(object):
self.opts.develop:
self.__browse_details_template__ = \
P('content_server/browse/details.html', data=True).decode('utf-8')
- return self.__browse_details_template__
+ return self.__browse_details_template__.replace('{prefix}',
+ self.opts.url_prefix)
# }}}
@@ -334,11 +335,11 @@ class BrowseServer(object):
icon = 'blank.png'
cats.append((meta['name'], category, icon))
- cats = [('
'
+ cats = [('
'
'{0}'
- '/browse/category/{1}
')
+ '{3}/browse/category/{1}')
.format(xml(x, True), xml(quote(y)), xml(_('Browse books by')),
- src='/browse/icon/'+z)
+ self.opts.url_prefix, src='/browse/icon/'+z)
for x, y, z in cats]
main = '
'''.format(
xml(_('Browsing by')+': ' + category_name), items,
- xml(_('Up'), True))
+ xml(_('Up'), True), self.opts.url_prefix)
return self.browse_template(sort).format(title=category_name,
script=script, main=main)
@@ -449,19 +452,23 @@ class BrowseServer(object):
sort = self.browse_sort_categories(entries, sort)
entries = get_category_items(category, entries,
- self.search_restriction_name, datatype)
+ self.search_restriction_name, datatype,
+ self.opts.url_prefix)
return json.dumps(entries, ensure_ascii=False)
@Endpoint()
def browse_catalog(self, category=None, category_sort=None):
'Entry point for top-level, categories and sub-categories'
+ prefix = '' if self.is_wsgi else self.opts.url_prefix
if category == None:
ans = self.browse_toplevel()
elif category == 'newest':
- raise cherrypy.InternalRedirect('/browse/matches/newest/dummy')
+ raise cherrypy.InternalRedirect(prefix +
+ '/browse/matches/newest/dummy')
elif category == 'allbooks':
- raise cherrypy.InternalRedirect('/browse/matches/allbooks/dummy')
+ raise cherrypy.InternalRedirect(prefix +
+ '/browse/matches/allbooks/dummy')
else:
ans = self.browse_category(category, category_sort)
@@ -532,7 +539,8 @@ class BrowseServer(object):
list_sort = category
sort = self.browse_sort_book_list(items, list_sort)
ids = [x[0] for x in items]
- html = render_book_list(ids, suffix=_('in') + ' ' + category_name)
+ html = render_book_list(ids, self.opts.url_prefix,
+ suffix=_('in') + ' ' + category_name)
return self.browse_template(sort, category=False).format(
title=_('Books in') + " " +category_name,
@@ -580,17 +588,18 @@ class BrowseServer(object):
if fmts and fmt:
other_fmts = [x for x in fmts if x.lower() != fmt.lower()]
if other_fmts:
- ofmts = [u'{3}'\
- .format(f, fname, id_, f.upper()) for f in
+ ofmts = [u'{3}'\
+ .format(f, fname, id_, f.upper(),
+ self.opts.url_prefix) for f in
other_fmts]
ofmts = ', '.join(ofmts)
args['other_formats'] = u'%s: ' % \
_('Other formats') + ofmts
- args['details_href'] = '/browse/details/'+str(id_)
+ args['details_href'] = self.opts.url_prefix + '/browse/details/'+str(id_)
if fmt:
- href = '/get/%s/%s_%d.%s'%(
+ href = self.opts.url_prefix + '/get/%s/%s_%d.%s'%(
fmt, fname, id_, fmt)
rt = xml(_('Read %s in the %s format')%(args['title'],
fmt.upper()), True)
@@ -603,7 +612,8 @@ class BrowseServer(object):
args['comments'] = comments_to_html(mi.comments)
args['stars'] = ''
if mi.rating:
- args['stars'] = render_rating(mi.rating/2.0, prefix=_('Rating'))[0]
+ args['stars'] = render_rating(mi.rating/2.0,
+ self.opts.url_prefix, prefix=_('Rating'))[0]
if args['tags']:
args['tags'] = u'%s: '%xml(_('Tags')) + \
args['tags']
@@ -628,8 +638,9 @@ class BrowseServer(object):
args, fmt, fmts, fname = self.browse_get_book_args(mi, id_)
args['formats'] = ''
if fmts:
- ofmts = [u'{3}'\
- .format(fmt, fname, id_, fmt.upper()) for fmt in
+ ofmts = [u'{3}'\
+ .format(fmt, fname, id_, fmt.upper(),
+ self.opts.url_prefix) for fmt in
fmts]
ofmts = ', '.join(ofmts)
args['formats'] = ofmts
@@ -648,7 +659,8 @@ class BrowseServer(object):
continue
if m['datatype'] == 'rating':
r = u'%s: '%xml(m['name']) + \
- render_rating(mi.rating/2.0, prefix=m['name'])[0]
+ render_rating(mi.rating/2.0, self.opts.url_prefix,
+ prefix=m['name'])[0]
else:
r = u'%s: '%xml(m['name']) + \
args[field]
@@ -704,7 +716,8 @@ class BrowseServer(object):
items = [self.db.data._data[x] for x in ids]
sort = self.browse_sort_book_list(items, list_sort)
ids = [x[0] for x in items]
- html = render_book_list(ids, suffix=_('in search')+': '+query)
+ html = render_book_list(ids, self.opts.url_prefix,
+ suffix=_('in search')+': '+query)
return self.browse_template(sort, category=False, initial_search=query).format(
title=_('Matching books'),
script='booklist();', main=html)
diff --git a/src/calibre/library/server/content.py b/src/calibre/library/server/content.py
index 52a08e6175..670c31b9df 100644
--- a/src/calibre/library/server/content.py
+++ b/src/calibre/library/server/content.py
@@ -103,7 +103,11 @@ class ContentServer(object):
if self.opts.develop:
lm = fromtimestamp(os.stat(path).st_mtime)
cherrypy.response.headers['Last-Modified'] = self.last_modified(lm)
- return open(path, 'rb').read()
+ with open(path, 'rb') as f:
+ ans = f.read()
+ if path.endswith('.css'):
+ ans = ans.replace('/static/', self.opts.url_prefix + '/static/')
+ return ans
def index(self, **kwargs):
'The / URL'
@@ -127,7 +131,8 @@ class ContentServer(object):
return self.browse_toplevel()
def old(self, **kwargs):
- return self.static('index.html')
+ return self.static('index.html').replace('{prefix}',
+ self.opts.url_prefix)
# Actually get content from the database {{{
def get_cover(self, id, thumbnail=False, thumb_width=60, thumb_height=80):
diff --git a/src/calibre/library/server/main.py b/src/calibre/library/server/main.py
index 6d01080886..fbd811a1ab 100644
--- a/src/calibre/library/server/main.py
+++ b/src/calibre/library/server/main.py
@@ -24,8 +24,30 @@ def stop_threaded_server(server):
server.exit()
server.thread = None
+def create_wsgi_app(path_to_library=None, prefix=''):
+ 'WSGI entry point'
+ from calibre.library import db
+ cherrypy.config.update({'environment': 'embedded'})
+ db = db(path_to_library)
+ parser = option_parser()
+ opts, args = parser.parse_args(['calibre-server'])
+ opts.url_prefix = prefix
+ server = LibraryServer(db, opts, wsgi=True, show_tracebacks=True)
+ return cherrypy.Application(server, script_name=None, config=server.config)
+
def option_parser():
- parser = config().option_parser('%prog '+ _('[options]\n\nStart the calibre content server.'))
+ parser = config().option_parser('%prog '+ _(
+'''[options]
+
+Start the calibre content server. The calibre content server
+exposes your calibre library over the internet. The default interface
+allows you to browse you calibre library by categories. You can also
+access an interface optimized for mobile browsers at /mobile and an
+OPDS based interface for use with reading applications at /opds.
+
+The OPDS interface is advertised via BonJour automatically.
+'''
+))
parser.add_option('--with-library', default=None,
help=_('Path to the library folder to serve with the content server'))
parser.add_option('--pidfile', default=None,
diff --git a/src/calibre/library/server/mobile.py b/src/calibre/library/server/mobile.py
index 7c2f959131..a889089109 100644
--- a/src/calibre/library/server/mobile.py
+++ b/src/calibre/library/server/mobile.py
@@ -26,9 +26,9 @@ def CLASS(*args, **kwargs): # class is a reserved word in Python
return kwargs
-def build_search_box(num, search, sort, order): # {{{
+def build_search_box(num, search, sort, order, prefix): # {{{
div = DIV(id='search_box')
- form = FORM('Show ', method='get', action='mobile')
+ form = FORM('Show ', method='get', action=prefix+'/mobile')
form.set('accept-charset', 'UTF-8')
div.append(form)
@@ -89,11 +89,12 @@ def build_navigation(start, num, total, url_base): # {{{
# }}}
-def build_index(books, num, search, sort, order, start, total, url_base, CKEYS):
- logo = DIV(IMG(src='/static/calibre.png', alt=__appname__), id='logo')
+def build_index(books, num, search, sort, order, start, total, url_base, CKEYS,
+ prefix):
+ logo = DIV(IMG(src=prefix+'/static/calibre.png', alt=__appname__), id='logo')
- search_box = build_search_box(num, search, sort, order)
- navigation = build_navigation(start, num, total, url_base)
+ search_box = build_search_box(num, search, sort, order, prefix)
+ navigation = build_navigation(start, num, total, prefix+url_base)
bookt = TABLE(id='listing')
body = BODY(
@@ -107,7 +108,8 @@ def build_index(books, num, search, sort, order, start, total, url_base, CKEYS):
# Book list {{{
for book in books:
thumbnail = TD(
- IMG(type='image/jpeg', border='0', src='/get/thumb/%s' %
+ IMG(type='image/jpeg', border='0',
+ src=prefix+'/get/thumb/%s' %
book['id']),
CLASS('thumbnail'))
@@ -118,8 +120,8 @@ def build_index(books, num, search, sort, order, start, total, url_base, CKEYS):
s = SPAN(
A(
fmt.lower(),
- href='/get/%s/%s-%s_%d.%s' % (fmt, a, t,
- book['id'], fmt)
+ href=prefix+'/get/%s/%s-%s_%d.%s' % (fmt, a, t,
+ book['id'], fmt.lower())
),
CLASS('button'))
s.tail = u''
@@ -154,7 +156,7 @@ def build_index(books, num, search, sort, order, start, total, url_base, CKEYS):
TITLE(__appname__ + ' Library'),
LINK(rel='icon', href='http://calibre-ebook.com/favicon.ico',
type='image/x-icon'),
- LINK(rel='stylesheet', type='text/css', href='/mobile/style.css')
+ LINK(rel='stylesheet', type='text/css', href=prefix+'/mobile/style.css')
), # End head
body
) # End html
@@ -174,7 +176,9 @@ class MobileServer(object):
cherrypy.response.headers['Content-Type'] = 'text/css; charset=utf-8'
updated = utcfromtimestamp(os.stat(path).st_mtime)
cherrypy.response.headers['Last-Modified'] = self.last_modified(updated)
- return open(path, 'rb').read()
+ with open(path, 'rb') as f:
+ ans = f.read()
+ return ans.replace('{prefix}', self.opts.url_prefix)
def mobile(self, start='1', num='25', sort='date', search='',
_=None, order='descending'):
@@ -259,7 +263,8 @@ class MobileServer(object):
url_base = "/mobile?search=" + search+";order="+order+";sort="+sort+";num="+str(num)
return html.tostring(build_index(books, num, search, sort, order,
- start, len(ids), url_base, CKEYS),
+ start, len(ids), url_base, CKEYS,
+ self.opts.url_prefix),
encoding='utf-8', include_meta_content_type=True,
pretty_print=True)
diff --git a/src/calibre/library/server/opds.py b/src/calibre/library/server/opds.py
index 16e7d34cbf..4b5db63ac3 100644
--- a/src/calibre/library/server/opds.py
+++ b/src/calibre/library/server/opds.py
@@ -132,7 +132,7 @@ def CATALOG_GROUP_ENTRY(item, category, base_href, version, updated):
link
)
-def ACQUISITION_ENTRY(item, version, db, updated, CFM, CKEYS):
+def ACQUISITION_ENTRY(item, version, db, updated, CFM, CKEYS, prefix):
FM = db.FIELD_MAP
title = item[FM['title']]
if not title:
@@ -185,16 +185,16 @@ def ACQUISITION_ENTRY(item, version, db, updated, CFM, CKEYS):
for fmt in formats.split(','):
fmt = fmt.lower()
mt = guess_type('a.'+fmt)[0]
- href = '/get/%s/%s'%(fmt, item[FM['id']])
+ href = prefix + '/get/%s/%s'%(fmt, item[FM['id']])
if mt:
link = E.link(type=mt, href=href)
if version > 0:
link.set('rel', "http://opds-spec.org/acquisition")
ans.append(link)
- ans.append(E.link(type='image/jpeg', href='/get/cover/%s'%item[FM['id']],
+ ans.append(E.link(type='image/jpeg', href=prefix+'/get/cover/%s'%item[FM['id']],
rel="x-stanza-cover-image" if version == 0 else
"http://opds-spec.org/cover"))
- ans.append(E.link(type='image/jpeg', href='/get/thumb/%s'%item[FM['id']],
+ ans.append(E.link(type='image/jpeg', href=prefix+'/get/thumb/%s'%item[FM['id']],
rel="x-stanza-cover-image-thumbnail" if version == 0 else
"http://opds-spec.org/thumbnail"))
@@ -275,7 +275,7 @@ class NavFeed(Feed):
class AcquisitionFeed(NavFeed):
def __init__(self, updated, id_, items, offsets, page_url, up_url, version,
- db):
+ db, prefix):
NavFeed.__init__(self, id_, updated, version, offsets, page_url, up_url)
CFM = db.field_metadata
CKEYS = [key for key in sorted(custom_fields_to_display(db),
@@ -283,7 +283,7 @@ class AcquisitionFeed(NavFeed):
CFM[y]['name'].lower()))]
for item in items:
self.root.append(ACQUISITION_ENTRY(item, version, db, updated,
- CFM, CKEYS))
+ CFM, CKEYS, prefix))
class CategoryFeed(NavFeed):
@@ -360,7 +360,8 @@ class OPDSServer(object):
cherrypy.response.headers['Last-Modified'] = self.last_modified(updated)
cherrypy.response.headers['Content-Type'] = 'application/atom+xml;profile=opds-catalog'
return str(AcquisitionFeed(updated, id_, items, offsets,
- page_url, up_url, version, self.db))
+ page_url, up_url, version, self.db,
+ self.opts.url_prefix))
def opds_search(self, query=None, version=0, offset=0):
try:
diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst
index 220e7ff9e4..687c8480be 100644
--- a/src/calibre/manual/faq.rst
+++ b/src/calibre/manual/faq.rst
@@ -435,3 +435,35 @@ And since I'm sure someone will ask: The reason adding/saving books are in separ
Finally, the reason calibre keep workers alive and idle instead of launching on demand is to workaround the slow startup time of python processes.
+How do I run parts of |app| like news download and the content server on my own linux server?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+First, you must install |app| onto your linux server. If your server is using a modern linux distro, you should have no problems installing |app| onto it.
+
+.. note::
+ If you bought into the notion that a real server must run a decade old version of Debian, then you will have to jump through a few hoops. First, compile a newer version of glibc (>= 2.10) on your server from source. Then get the |app| linux binary tarball from the |app| google code page for your server architecture. Extract it into :file:`/opt/calibre`. Put your previously compiled glibc into :file:`/opt/calibre` as :file:`libc.so.6`. You can now run the calibre binaries from :file:`/opt/calibre`.
+
+You can run the |app| server via the command::
+
+ /opt/calibre/calibre-server --with-library /path/to/the/library/you/want/to/share
+
+You can download news and convert it into an ebook with the command::
+
+ /opt/calibre/ebook-convert "Title of news source.recipe" outputfile.epub
+
+If you want to generate MOBI, use outputfile.mobi instead.
+
+You can email downloaded news with the command::
+
+ /opt/calibre/calibre-smtp
+
+I leave figuring out the exact command line as an exercise for the reader.
+
+Finally, you can add downloaded news to the |app| library with::
+
+ /opt/calibre/calibredb add --with-library /path/to/library outfile.epub
+
+Remember to read the command line documentation section of the |app| User Manual to learn more about these, and other commands.
+
+.. note:: Some parts of calibre require a X server. If you're lucky, nothing you do will fall into this category, if not, you will have to look into using xvfb.
+
diff --git a/src/calibre/manual/server.rst b/src/calibre/manual/server.rst
new file mode 100644
index 0000000000..6d1adc88cd
--- /dev/null
+++ b/src/calibre/manual/server.rst
@@ -0,0 +1,108 @@
+.. include:: global.rst
+
+.. _servertutorial:
+
+Integrating the |app| content server into other servers
+==========================================================
+
+Here, we will show you how to integrate the |app| content server into another server. The most common reason for this is to make use of SSL or more sophisticated authentication. There are two main techniques: Running the |app| content server as a standalone process and using a reverse proxy to connect it with your main server or running the content server in process in your main server with WSGI. The examples below are all for Apache 2.x on linux, but should be easily adaptable to other platforms.
+
+.. contents:: Contents
+ :depth: 2
+ :local:
+
+.. note:: This only applies to calibre releases >= 0.7.25
+
+Using a reverse proxy
+-----------------------
+
+This is the simplest approach as it allows you to use the binary calibre install with no external dependencies/system integration requirements.
+
+First start the |app| content server as shown below::
+
+ calibre-server --url-prefix /calibre --port 8080
+
+Now suppose you are using Apache as your main server. First enable the proxy modules in apache, by adding the following to :file:`httpd.conf`::
+
+ LoadModule proxy_module modules/mod_proxy.so
+ LoadModule proxy_http_module modules/mod_proxy_http.so
+
+The exact technique for enabling the proxy modules will vary depending on your Apache installation. Once you have the proxy modules enabled, add the following rules to httpd.conf (or if you are using virtual hosts to the conf file for the virtual host in question::
+
+ RewriteEngine on
+ RewriteRule ^/calibre/(.*) http://localhost:8080/calibre/$1 [proxy]
+ RewriteRule ^/calibre http://localhost:8080 [proxy]
+
+That's all, you will now be able to access the |app| Content Server under the /calibre URL in your apache server.
+
+.. note:: If you are willing to devote an entire VirtualHost to the content server, then there is no need to use --url-prefix and RewriteRule, instead just use the ProxyPass directive.
+
+In process
+------------
+
+The calibre content server can be run directly, in process, inside a host server like Apache using the WSGI framework.
+
+.. note:: For this to work, all the dependencies needed by calibre must be installed on your system. On linux, this can be achieved fairly easily by installing the distribution provided calibre package (provided it is up to date).
+
+First, we have to create a WSGI *adapter* for the calibre content server. Here is a template you can use for the purpose. Replace the paths as directed in the comments
+
+.. code-block:: python
+
+ # WSGI script file to run calibre content server as a WSGI app
+
+ import sys, os
+
+
+ # You can get the paths referenced here by running
+ # calibre-debug --paths
+ # on your server
+
+ # The first entry from CALIBRE_PYTHON_PATH
+ sys.path.insert(0, '/home/kovid/work/calibre/src')
+
+ # CALIBRE_RESOURCES_PATH
+ sys.resources_location = '/home/kovid/work/calibre/resources'
+
+ # CALIBRE_EXTENSIONS_PATH
+ sys.extensions_location = '/home/kovid/work/calibre/src/calibre/plugins'
+
+ # Path to directory containing calibre executables
+ sys.executables_location = '/usr/bin'
+
+ # Path to a directory for which the server has read/write permissions
+ # calibre config will be stored here
+ os.environ['CALIBRE_CONFIG_DIRECTORY'] = '/var/www/localhost/calibre-config'
+
+ del sys
+ del os
+
+ from calibre.library.server.main import create_wsgi_app
+ application = create_wsgi_app(
+ # The mount point of this WSGI application (i.e. the first argument to
+ # the WSGIScriptAlias directive). Set to empty string is mounted at /
+ prefix='/calibre',
+
+ # Path to the calibre library to be served
+ # The server process must have write permission for all files/dirs
+ # in this directory or BAD things will happen
+ path_to_library='/home/kovid/documents/demo library'
+ )
+
+ del create_wsgi_app
+
+Save this adapter as :file:`calibre-wsgi-adpater.py` somewhere your server will have access to it.
+
+Let's suppose that we want to use WSGI in Apache. First enable WSGI in Apache by adding the following to :file:`httpd.conf`::
+
+ LoadModule proxy_module modules/mod_wsgi.so
+
+The exact technique for enabling the wsgi module will vary depending on your Apache installation. Once you have the proxy modules enabled, add the following rules to httpd.conf (or if you are using virtual hosts to the conf file for the virtual host in question::
+
+ WSGIScriptAlias /calibre /var/www/localhost/cgi-bin/calibre-wsgi-adapter.py
+
+Change the path to :file:`calibre-wsgi-adapter.py` to wherever you saved it previously (make sure Apache has access to it).
+
+That's all, you will now be able to access the |app| Content Server under the /calibre URL in your apache server.
+
+.. note:: For more help with using mod_wsgi in Apache, see `mod_wsgi `_.
+
diff --git a/src/calibre/manual/tutorials.rst b/src/calibre/manual/tutorials.rst
index 084c44ff64..ecd40222d4 100644
--- a/src/calibre/manual/tutorials.rst
+++ b/src/calibre/manual/tutorials.rst
@@ -16,4 +16,5 @@ Here you will find tutorials to get you started using |app|'s more advanced feat
template_lang
regexp
portable
+ server
diff --git a/src/calibre/ptempfile.py b/src/calibre/ptempfile.py
index 16a1ef4ce4..71ae9b0789 100644
--- a/src/calibre/ptempfile.py
+++ b/src/calibre/ptempfile.py
@@ -7,7 +7,7 @@ being closed.
"""
import tempfile, os, atexit, binascii, cPickle
-from calibre import __version__, __appname__
+from calibre.constants import __version__, __appname__
def cleanup(path):
try:
diff --git a/src/calibre/translations/bg.po b/src/calibre/translations/bg.po
index e04f3ea90b..81bbf86335 100644
--- a/src/calibre/translations/bg.po
+++ b/src/calibre/translations/bg.po
@@ -6,14 +6,14 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre 0.4.51\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-10-08 21:12+0000\n"
-"PO-Revision-Date: 2010-10-10 06:34+0000\n"
-"Last-Translator: Alexander Ivanov \n"
+"POT-Creation-Date: 2010-10-18 00:01+0000\n"
+"PO-Revision-Date: 2010-10-18 00:51+0000\n"
+"Last-Translator: Kovid Goyal \n"
"Language-Team: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-10-11 04:44+0000\n"
+"X-Launchpad-Export-Date: 2010-10-19 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Generated-By: pygettext.py 1.5\n"
@@ -55,7 +55,6 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:49
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:333
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:65
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66
@@ -67,6 +66,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/snb.py:16
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:65
@@ -120,15 +120,15 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:909
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1205
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:915
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:924
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1211
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:177
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:381
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:400
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:919
@@ -137,23 +137,23 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189
#: /home/kovid/work/calibre/src/calibre/library/cli.py:215
#: /home/kovid/work/calibre/src/calibre/library/database.py:913
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:396
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:408
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1269
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1373
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2147
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2149
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2281
-#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:219
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:399
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:411
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1279
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1383
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2157
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2159
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2291
+#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:223
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142
-#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:76
+#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:78
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:118
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:78
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47
-#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:50
+#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:55
msgid "Unknown"
msgstr "Неизвестно"
@@ -240,7 +240,8 @@ msgstr "Извличане на корица от comic файлове"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:279
#: /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:311
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321
msgid "Read metadata from %s files"
msgstr "Четене на метаданните от %s файлове"
@@ -248,188 +249,188 @@ msgstr "Четене на метаданните от %s файлове"
msgid "Read metadata from ebooks in RAR archives"
msgstr "Четене на метаданните от ebooks в RAR архиви"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:332
msgid "Read metadata from ebooks in ZIP archives"
msgstr "Четене на метаданните от ebooks в ZIP архиви"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:334
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:344
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:354
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:345
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:355
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:397
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:398
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:408
msgid "Set metadata in %s files"
msgstr "Задаване на метаданните в %s файлове"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376
msgid "Set metadata from %s files"
msgstr "Задаване на метаданните от %s файлове"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:691
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:706
msgid "Look and Feel"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:693
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:705
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:716
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:727
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:708
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:720
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742
msgid "Interface"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:697
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:712
msgid "Adjust the look and feel of the calibre interface to suit your tastes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:703
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:718
msgid "Behavior"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:709
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:724
msgid "Change the way calibre behaves"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:714
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:180
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:181
msgid "Add your own columns"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:720
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735
msgid "Add/remove your own columns to the calibre book list"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740
msgid "Customize the toolbar"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746
msgid ""
"Customize the toolbars and context menus, changing which actions are "
"available in each"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:737
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:752
msgid "Input Options"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:739
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:750
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:761
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:754
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776
msgid "Conversion"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:743
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:758
msgid "Set conversion options specific to each input format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:748
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763
msgid "Common Options"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:754
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769
msgid "Set conversion options common to all formats"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774
msgid "Output Options"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780
msgid "Set conversion options specific to each output format"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785
msgid "Adding books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:772
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:784
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:799
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:811
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:823
msgid "Import/Export"
msgstr "Внасяне/Изнасяне"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791
msgid "Control how calibre reads metadata from files when adding books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:782
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:797
msgid "Saving books to disk"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:788
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:803
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:794
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:809
msgid "Sending books to devices"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:800
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:815
msgid "Control how calibre transfers files to your ebook reader"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:806
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:821
msgid "Metadata plugboards"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:812
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:827
msgid "Change metadata fields before saving/sending"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832
msgid "Sharing books by email"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:819
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:831
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:846
msgid "Sharing"
msgstr "Споделяне"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:823
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838
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:829
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844
msgid "Sharing over the net"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:835
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:850
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:842
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857
msgid "Plugins"
msgstr "Добавки"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:856
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:867
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:859
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:871
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882
msgid "Advanced"
msgstr "Разширени"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:848
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:863
msgid "Add/remove/customize various bits of calibre functionality"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:854
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:869
msgid "Tweaks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:860
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:875
msgid "Fine tune how calibre behaves in various contexts"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:865
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880
msgid "Miscellaneous"
msgstr "Разни"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:871
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886
msgid "Miscellaneous advanced configuration"
msgstr ""
@@ -437,7 +438,7 @@ msgstr ""
msgid "Conversion Input"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:129
+#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:134
msgid ""
"Specify the character encoding of the input document. If set this option "
"will override any encoding declared by the document itself. Particularly "
@@ -445,11 +446,11 @@ msgid ""
"encoding declarations."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241
+#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:246
msgid "Conversion Output"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255
+#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:260
msgid ""
"If specified, the output plugin will try to create output that is as human "
"readable as possible. May not have any effect for some output plugins."
@@ -584,6 +585,10 @@ msgstr ""
msgid "This profile is intended for the Amazon Kindle DX."
msgstr "Този профил е предназначен за Amazon Kindle DX."
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:654
+msgid "This profile is intended for the Sanda Bambook."
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34
msgid "Installed plugins"
msgstr "Инсталирани добавки"
@@ -660,80 +665,86 @@ msgstr ""
msgid "Communicate with S60 phones."
msgstr "Комуникирай със S60 устройства"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:89
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:90
msgid "Apple device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:91
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:92
msgid "Communicate with iTunes/iBooks."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:97
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:98
msgid "Apple device detected, launching iTunes, please wait ..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:256
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:259
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:100
+msgid ""
+"Cannot copy books directly from iDevice. Drag from iTunes Library to "
+"desktop, then add to calibre's Library window."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:260
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:263
msgid "Updating device metadata listing..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:335
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:374
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:943
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:983
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2945
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2985
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:339
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:378
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:947
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:987
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2949
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2989
msgid "%d of %d"
msgstr "%d от %d"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:381
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:988
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2991
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:385
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:992
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2995
msgid "finished"
msgstr "завършено"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:556
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:560
msgid "Use Series as Category in iTunes/iBooks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:558
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:562
msgid "Cache covers from iTunes/iBooks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:570
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:574
msgid ""
"Some books not found in iTunes database.\n"
"Delete using the iBooks app.\n"
"Click 'Show Details' for a list."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:907
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:911
msgid ""
"Some cover art could not be converted.\n"
"Click 'Show Details' for a list."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2542
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:853
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:248
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:209
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:222
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2007
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:135
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2546
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:869
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:875
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:905
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:212
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:225
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2017
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149
msgid "News"
msgstr "Новини"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2543
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2547
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1970
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1988
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1980
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1998
msgid "Catalog"
msgstr "Каталог"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2849
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2853
msgid "Communicate with iTunes."
msgstr ""
@@ -850,6 +861,10 @@ msgstr ""
msgid "John Schember"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/devices/interface.py:44
+msgid "Cannot get files from this device"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16
msgid "Communicate with the IRex Digital Reader 1000 eBook reader."
msgstr ""
@@ -924,7 +939,7 @@ msgid "Adding books to device metadata listing..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:393
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:253
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258
msgid "Not Implemented"
msgstr "Не е изпълнено"
@@ -1026,47 +1041,53 @@ msgstr ""
msgid "Communicate with the Sovos reader."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:258
msgid "Unable to detect the %s disk drive. Try rebooting."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:438
msgid "Unable to detect the %s mount point. Try rebooting."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:503
msgid "Unable to detect the %s disk drive."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:595
msgid "Could not find mount helper: %s."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:607
msgid ""
"Unable to detect the %s disk drive. Your kernel is probably exporting a "
"deprecated version of SYSFS."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:615
msgid "Unable to mount main memory (Error code: %d)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:666
+msgid ""
+"The main memory of %s is read only. This usually happens because of file "
+"system errors."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:802
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:804
msgid "The reader has no storage card in this slot."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:806
msgid "Selected slot: %s is not supported."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:835
msgid "There is insufficient free space in main memory"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:837
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:839
msgid "There is insufficient free space on the storage card"
msgstr ""
@@ -1121,89 +1142,6 @@ msgstr ""
msgid "Sending metadata to device..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:41
-msgid "%prog [options] mybook.chm"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:42
-msgid "Output directory. Defaults to current directory"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:45
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589
-msgid "Set the book title"
-msgstr "Задаване на заглавие на книга"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:47
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591
-msgid "Set sort key for the title"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:49
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593
-msgid "Set the author"
-msgstr "Задаване на автор"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:51
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595
-msgid "Set sort key for the author"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:53
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597
-msgid "The category this book belongs to. E.g.: History"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:56
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600
-msgid "Path to a graphic that will be set as this files' thumbnail"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:59
-msgid "Path to a txt file containing a comment."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:62
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607
-msgid "Extract thumbnail from LRF file"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:63
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608
-msgid "Set the publisher"
-msgstr "Задаване на издател"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:64
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609
-msgid "Set the book classification"
-msgstr "Задаване на класификация на книгата"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:65
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610
-msgid "Set the book creator"
-msgstr "Задаване на създател на книгата"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:66
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611
-msgid "Set the book producer"
-msgstr "Задаване на производител на книгата"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:68
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613
-msgid ""
-"Extract cover from LRF file. Note that the LRF format has no defined cover, "
-"so we use some heuristics to guess the cover."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:70
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615
-msgid "Set book ID"
-msgstr "Задаване на ID на книгата"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:72
-msgid "Set font delta"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:182
msgid "Rendered %s"
msgstr ""
@@ -1729,11 +1667,11 @@ msgstr ""
msgid "Converting input to HTML..."
msgstr "Конвертиране на входните данни в HTML ..."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:853
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:854
msgid "Running transforms on ebook..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:940
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:941
msgid "Creating"
msgstr "Създаване"
@@ -1833,6 +1771,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:169
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:205
msgid "Start"
msgstr "Начало"
@@ -2036,11 +1975,65 @@ msgid ""
"\n"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589
+msgid "Set the book title"
+msgstr "Задаване на заглавие на книга"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591
+msgid "Set sort key for the title"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593
+msgid "Set the author"
+msgstr "Задаване на автор"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595
+msgid "Set sort key for the author"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597
+msgid "The category this book belongs to. E.g.: History"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600
+msgid "Path to a graphic that will be set as this files' thumbnail"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:603
msgid ""
"Path to a txt file containing the comment to be stored in the lrf file."
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607
+msgid "Extract thumbnail from LRF file"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608
+msgid "Set the publisher"
+msgstr "Задаване на издател"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609
+msgid "Set the book classification"
+msgstr "Задаване на класификация на книгата"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610
+msgid "Set the book creator"
+msgstr "Задаване на създател на книгата"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611
+msgid "Set the book producer"
+msgstr "Задаване на производител на книгата"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613
+msgid ""
+"Extract cover from LRF file. Note that the LRF format has no defined cover, "
+"so we use some heuristics to guess the cover."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615
+msgid "Set book ID"
+msgstr "Задаване на ID на книгата"
+
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90
msgid "Enable autorotation of images that are wider than the screen width."
msgstr ""
@@ -2130,8 +2123,8 @@ msgstr "Да"
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:378
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:924
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:289
-#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:589
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:303
+#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569
msgid "Title"
msgstr "Заглавие"
@@ -2163,6 +2156,7 @@ msgstr "Производител"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:332
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1132
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178
msgid "Comments"
msgstr "Коментари"
@@ -2173,7 +2167,8 @@ msgstr "Коментари"
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1128
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:146
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:588
msgid "Tags"
msgstr "Етикети"
@@ -2184,7 +2179,7 @@ msgstr "Етикети"
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:337
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1137
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:94
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:108
msgid "Series"
msgstr "Серии"
@@ -2201,7 +2196,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:151
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:244
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:258
msgid "Published"
msgstr "Публикувана"
@@ -2555,6 +2550,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:153
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:586
msgid "Rating"
msgstr "Рейтинг"
@@ -2846,11 +2842,35 @@ msgid ""
"%s"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:32
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23
msgid ""
"Specify the character encoding of the output document. The default is utf-8."
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:39
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38
+msgid ""
+"The maximum number of characters per line. This splits on the first space "
+"before the specified value. If no space is found the line will be broken at "
+"the space after and will exceed the specified value. Also, there is a "
+"minimum of 25 characters. Use 0 to disable line splitting."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:124
+msgid "Start Page"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:134
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:136
+msgid "Cover Pages"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:149
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:152
+msgid " (Preface)"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27
msgid ""
"Specify the compression level to use. Scale 1 - 10. 1 being the lowest "
@@ -2887,14 +2907,6 @@ msgid ""
"Note: This option is not honored by all formats."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38
-msgid ""
-"The maximum number of characters per line. This splits on the first space "
-"before the specified value. If no space is found the line will be broken at "
-"the space after and will exceed the specified value. Also, there is a "
-"minimum of 25 characters. Use 0 to disable line splitting."
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45
msgid ""
"Force splitting on the max-line-length value when no space is present. Also "
@@ -3073,7 +3085,7 @@ msgid "How many empty books should be added?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:201
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202
msgid "Uploading books to device."
msgstr ""
@@ -3115,40 +3127,45 @@ msgid "PDF Books"
msgstr "PDF книги"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169
+msgid "SNB Books"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170
msgid "Comics"
msgstr "Комикси"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171
msgid "Archives"
msgstr "Архиви"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175
msgid "Supported books"
msgstr "Поддържани книги"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:210
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211
msgid "Merged some books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212
msgid ""
"Some duplicates were found and merged into the following existing books:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:220
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221
msgid "Failed to read metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222
msgid "Failed to read metadata from the following"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:260
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265
msgid "Add to library"
msgstr "Добавяне към библиотеката"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246
#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56
#: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28
#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95
@@ -3156,12 +3173,12 @@ msgstr "Добавяне към библиотеката"
msgid "No book selected"
msgstr "Не е избрана книга"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:254
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259
msgid ""
"The following books are virtual and cannot be added to the calibre library:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:260
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265
msgid "No book files found"
msgstr ""
@@ -3293,6 +3310,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:135
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112
msgid "%d books"
msgstr "%d книги"
@@ -3428,7 +3446,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:700
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:703
msgid "Not allowed"
msgstr "Не е позволено"
@@ -3878,6 +3896,7 @@ msgid "Click the show details button to see which ones."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:593
msgid "Show book details"
msgstr "Показване на детайлите на книгата"
@@ -4015,7 +4034,7 @@ msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:229
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:851
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:857
msgid "No books"
msgstr "Няма книги"
@@ -4222,7 +4241,7 @@ msgstr "Път"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:326
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:103
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117
msgid "Formats"
msgstr "Формати"
@@ -4272,6 +4291,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13
#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18
#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13
#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17
msgid "Options specific to"
@@ -4287,6 +4307,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17
#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18
#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17
msgid "output"
msgstr ""
@@ -4918,7 +4939,7 @@ msgid "Change the title of this book"
msgstr "Промяна на заглавието на тази книга"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:315
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:333
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377
msgid "&Author(s): "
msgstr "&Автор(и): "
@@ -4934,7 +4955,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:324
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388
msgid "&Publisher: "
msgstr "&Издател: "
@@ -4945,7 +4966,7 @@ msgid "Ta&gs: "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:326
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390
msgid ""
"Tags categorize the book. This is particularly useful while searching. "
@@ -4953,15 +4974,15 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:333
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393
msgid "&Series:"
msgstr "&Серии:"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395
msgid "List of known series. You can add new series."
@@ -5154,6 +5175,10 @@ msgstr ""
msgid "Use &saved conversion settings for individual books"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:14
+msgid "SNB Output"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17
msgid ""
"Structure\n"
@@ -5446,7 +5471,7 @@ msgid "Automatically number books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:468
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364
msgid "Force numbers to start with "
msgstr ""
@@ -5566,124 +5591,124 @@ msgstr "Устройство: "
msgid " detected."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:852
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:858
msgid "selected to send"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:857
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:863
msgid "Choose format to send to device"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872
msgid "No device"
msgstr "Няма устройство"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873
msgid "Cannot send: No device is connected"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880
msgid "No card"
msgstr "Няма карта"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:877
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881
msgid "Cannot send: Device has no storage card"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:916
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:922
msgid "E-book:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925
msgid "Attached, you will find the e-book"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:920
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107
msgid "by"
msgstr "от"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:921
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927
msgid "in the %s format."
msgstr "в %s формат."
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:940
msgid "Sending email to"
msgstr "Изпращане на имейл на"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:964
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1065
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1127
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:970
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1071
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1133
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1252
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1260
msgid "No suitable formats"
msgstr "Няма подходящи формати"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:965
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971
msgid "Auto convert the following books before sending via email?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:973
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979
msgid ""
"Could not email the following books as no suitable formats were found:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997
msgid "Failed to email books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:992
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:998
msgid "Failed to email the following books:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:996
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1002
msgid "Sent by email:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1024
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1030
msgid "News:"
msgstr "Новини:"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1025
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1031
msgid "Attached is the"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1036
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042
msgid "Sent news to"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1066
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1128
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1247
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1072
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1134
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1253
msgid "Auto convert the following books before uploading to the device?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1096
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1102
msgid "Sending catalogs to device."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1166
msgid "Sending news to device."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1213
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1219
msgid "Sending books to device."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1255
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1261
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:1319
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1325
msgid "No space on device"
msgstr "Няма място на устройството"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1320
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1326
msgid ""
"
Cannot upload books to device there is no more free space available "
msgstr ""
@@ -5807,6 +5832,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:106
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:218
msgid "Name"
msgstr "Име"
@@ -5929,8 +5955,8 @@ msgstr "Местоположение"
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:31
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:280
-#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:588
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:294
+#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:568
msgid "Date"
msgstr "Дата"
@@ -5948,12 +5974,12 @@ msgid "Author sort"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:615
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590
msgid "Invalid author name"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:616
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591
msgid "Author names cannot contain & characters."
msgstr ""
@@ -6201,81 +6227,81 @@ msgid ""
"Phase {0} {1}%%."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:314
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:332
msgid "Edit Meta information"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:316
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334
msgid "A&utomatically set author sort"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:317
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335
msgid "Author s&ort: "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:318
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336
msgid ""
"Specify how the author(s) of this book should be sorted. For example Charles "
"Dickens should be sorted as Dickens, Charles."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:319
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384
msgid "&Rating:"
msgstr "&Рейтинг:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:320
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:321
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386
msgid "Rating of this book. 0-5 stars"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:322
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340
msgid "No change"
msgstr "Без промяна"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:323
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387
msgid " stars"
msgstr " звезди"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:325
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343
msgid "Add ta&gs: "
msgstr "Добавяне на &етикети: "
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:327
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:328
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392
msgid "Open Tag Editor"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:329
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347
msgid "&Remove tags:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:330
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348
msgid "Comma separated list of tags to remove from the books. "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:331
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349
msgid "Check this box to remove all tags from the books."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:332
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350
msgid "Remove all"
msgstr "Премахване на всичко"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354
msgid "If checked, the series will be cleared"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355
msgid "Clear series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356
msgid ""
"If not checked, the series number for the books will be set to 1.\n"
"If checked, selected books will be automatically numbered, in the order\n"
@@ -6283,110 +6309,110 @@ msgid ""
"Book A will have series number 1 and Book B series number 2."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:360
msgid "Automatically number books in this series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:361
msgid ""
"Series will normally be renumbered from the highest number in the database\n"
"for that series. Checking this box will tell calibre to start numbering\n"
"from the value in the box"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:365
msgid "Remove &format:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366
msgid "&Swap title and author"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349
-msgid "Change title to title case"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367
msgid ""
"Force the title to be in title case. If both this and swap authors are "
"checked,\n"
"title and author are swapped before the title case is set"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369
+msgid "Change title to title case"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370
msgid ""
"Remove stored conversion settings for the selected books.\n"
"\n"
"Future conversion of these books will use the default settings."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373
msgid "Remove &stored conversion settings for the selected books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:374
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424
msgid "&Basic metadata"
msgstr "&Основни метаданни"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425
msgid "&Custom metadata"
msgstr "&Потребителски метаданни"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376
msgid "Search &field:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377
msgid "The name of the field that you want to search"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:360
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378
msgid "Search mode:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:361
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379
msgid ""
"Choose whether to use basic text matching or advanced regular expression "
"matching"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380
msgid "&Search for:"
msgstr "&Търсене за:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381
msgid ""
"Enter the what you are looking for, either plain text or a regular "
"expression, depending on the mode"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382
msgid ""
"Check this box if the search string must match exactly upper and lower case. "
"Uncheck it if case is to be ignored"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:365
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383
msgid "Case sensitive"
msgstr "Чувствителност към големината на буквите"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384
msgid "&Replace with:"
msgstr "&Замяна с:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385
msgid ""
"The replacement text. The matched search text will be replaced with this "
"string"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386
msgid "Apply function after replace:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387
msgid ""
"Specify how the text is to be processed after matching and replacement. In "
"character mode, the entire\n"
@@ -6394,48 +6420,48 @@ msgid ""
"processed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389
msgid "&Destination field:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390
msgid ""
"The field that the text will be put into after all replacements. If blank, "
"the source field is used."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391
msgid "Mode:"
msgstr "Режим:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:374
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392
msgid "Specify how the text should be copied into the destination."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393
msgid ""
"If the replace mode is prepend or append, then this box indicates whether a "
"comma or\n"
"nothing should be put between the original text and the inserted text"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395
msgid "use comma"
msgstr "използване на запетая"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396
msgid "Test &text"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397
msgid "Test re&sult"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398
msgid "Your test:"
msgstr "Вашия тест:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399
msgid "&Search and replace (experimental)"
msgstr ""
@@ -6574,20 +6600,20 @@ msgstr "Възникнаха грешки"
msgid "There were errors downloading social metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:733
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:735
msgid "Cannot fetch metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:734
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:736
msgid "You must specify at least one of ISBN, Title, Authors or Publisher"
msgstr ""
"Трябва да посочите поне един от ISBN номерата, Заглавие, Автор или Издател"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:820
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:823
msgid "Permission denied"
msgstr "Достъпът е отказан"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:821
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:824
msgid "Could not open %s. Is it being used by another program?"
msgstr ""
@@ -6760,48 +6786,60 @@ msgstr ""
msgid "Change the contents of the saved search"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:124
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:126
msgid "Need username and password"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:125
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:127
msgid "You must provide a username and/or password to use this news source."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:166
+msgid "Account"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:167
+msgid "(optional)"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:168
+msgid "(required)"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:185
msgid "Created by: "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:183
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:192
msgid "Last downloaded: never"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:198
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:207
msgid "%d days, %d hours and %d minutes ago"
msgstr "преди %d дни, %d часа и %d минути"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:200
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:209
msgid "Last downloaded"
msgstr "Последно свалено"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:224
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:233
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197
msgid "Schedule news download"
msgstr "График за сваляне на новини"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:227
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:236
msgid "Add a custom news source"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:241
msgid "Download all scheduled new sources"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:332
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:341
msgid "No internet connection"
msgstr "Няма интернет връзка"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:333
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:342
msgid "Cannot download news as no internet connection is active"
msgstr ""
@@ -6995,12 +7033,12 @@ msgid "Choose formats"
msgstr "Избор на формати"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:83
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:97
msgid "Authors"
msgstr "Автори"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:114
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:128
msgid "Publishers"
msgstr "Издатели"
@@ -7117,12 +7155,12 @@ msgid "%s (was %s)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:605
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580
msgid "Item is blank"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:606
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581
msgid "An item cannot be set to nothing. Delete it instead."
msgstr ""
@@ -7609,7 +7647,7 @@ msgid "Show books in the main memory of the device"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:841
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:844
msgid "Card A"
msgstr ""
@@ -7618,7 +7656,7 @@ msgid "Show books in storage card A"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:843
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:846
msgid "Card B"
msgstr ""
@@ -7674,12 +7712,12 @@ msgid "Y"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:226
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:240
msgid "On Device"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:68
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:271
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:285
msgid "Size (MB)"
msgstr "Размер (MB)"
@@ -7690,7 +7728,7 @@ msgstr "Книга %s от %s."
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:698
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1237
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:505
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407
msgid "The lookup/search name is \"{0}\""
msgstr ""
@@ -7715,47 +7753,47 @@ msgstr ""
msgid "Double click to edit me
"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:118
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:119
msgid "Hide column %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:123
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:124
msgid "Sort on %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:124
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:125
msgid "Ascending"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:127
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:128
msgid "Descending"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:139
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:140
msgid "Change text alignment for %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:141
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:142
msgid "Left"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:141
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:142
msgid "Right"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:142
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:143
msgid "Center"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:161
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:162
msgid "Show column"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:173
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:174
msgid "Restore default layout"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:701
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:704
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@@ -7786,7 +7824,7 @@ msgid "No matches for the search phrase %s were found."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:441
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:442
msgid "No matches found"
msgstr "Не са намерени съвпадения"
@@ -7803,12 +7841,12 @@ msgid "LRF Viewer toolbar"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487
msgid "Next Page"
msgstr "Следваща страница"
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488
msgid "Previous Page"
msgstr "Предишна страница"
@@ -8009,6 +8047,7 @@ msgid "Successfully downloaded metadata for %d out of %d books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:592
msgid "Details"
msgstr ""
@@ -9039,25 +9078,25 @@ msgstr ""
msgid "&Current tweaks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:95
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:261
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:263
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:573
msgid "Search"
msgstr "Търсене"
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:313
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:315
msgid "The selected search will be permanently deleted. Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:355
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:357
msgid "Search (For Advanced Search click the button to the left)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:397
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:399
msgid "Saved Searches"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:405
+#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:407
msgid "Choose saved search or enter name for new saved search"
msgstr ""
@@ -9138,97 +9177,97 @@ msgstr "Изчистване"
msgid "&Alternate shortcut:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:163
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200
+msgid "Rename '%s'"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204
+msgid "Edit sort for '%s'"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209
+msgid "Hide category %s"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212
+msgid "Show category"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216
+msgid "Show all categories"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227
+msgid "Manage %s"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:230
+msgid "Manage Saved Searches"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:237
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:241
+msgid "Manage User Categories"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451
msgid ""
"Changing the authors for several books can take a while. Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:168
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456
msgid ""
"Changing the metadata for that many books can take a while. Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:295
-msgid "Rename '%s'"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:299
-msgid "Edit sort for '%s'"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:304
-msgid "Hide category %s"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:307
-msgid "Show category"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:311
-msgid "Show all categories"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:318
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:322
-msgid "Manage %s"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:325
-msgid "Manage Saved Searches"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:332
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:336
-msgid "Manage User Categories"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:537
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:317
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:320
msgid "Searches"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:620
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595
msgid "Duplicate search name"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:621
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596
msgid "The saved search name %s is already used."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:870
msgid "Sort by name"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:870
msgid "Sort by popularity"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:889
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871
msgid "Sort by average rating"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:892
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:874
msgid "Set the sort order for entries in the Tag Browser"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:898
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:880
msgid "Match all"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:898
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:880
msgid "Match any"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:903
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:885
msgid ""
"When selecting multiple entries in the Tag Browser match any or all of them"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:907
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:889
msgid "Manage &user categories"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:910
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:892
msgid "Add your own categories to the Tag Browser"
msgstr ""
@@ -9505,7 +9544,7 @@ msgid "Options to customize the ebook viewer"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:699
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:703
msgid "Remember last used window size"
msgstr ""
@@ -9560,36 +9599,36 @@ msgstr ""
msgid "The standard font type"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:453
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463
msgid "&Lookup in dictionary"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:456
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138
msgid "Go to..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:468
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478
msgid "Next Section"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:469
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479
msgid "Previous Section"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481
msgid "Document Start"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:472
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482
msgid "Document End"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484
msgid "Section Start"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:475
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485
msgid "Section End"
msgstr ""
@@ -9665,72 +9704,77 @@ msgstr ""
msgid "Connecting to dict.org to lookup: %s…"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:408
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:409
msgid "Choose ebook"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:409
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410
msgid "Ebooks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:442
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443
msgid "No matches found for: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:479
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:480
msgid "Loading flow..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:515
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516
msgid "Laying out %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:546
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:547
msgid "Bookmark #%d"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:550
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551
msgid "Add bookmark"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552
msgid "Enter title for bookmark:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:561
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:562
msgid "Manage Bookmarks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:598
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:599
msgid "Loading ebook..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:606
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607
msgid "DRM Error"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608
msgid "
This book is protected by DRM"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:611
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612
msgid "Could not open ebook"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:689
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:690
msgid "Options to control the ebook viewer"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:696
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:697
msgid ""
"If specified, viewer window will try to come to the front when started."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:701
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:700
+msgid ""
+"If specified, viewer window will try to open full screen when started."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705
msgid "Print javascript alert and console messages to the console"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:707
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711
msgid ""
"%prog [options] file\n"
"\n"
@@ -10859,43 +10903,43 @@ msgid ""
"start with a letter"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:81
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:82
msgid "%sAverage rating is %3.1f"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:839
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:842
msgid "Main"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2307
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2317
msgid "
Migrating old database to ebook library in %s
"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2336
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2346
msgid "Copying %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2353
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2363
msgid "Compacting database"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2446
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2456
msgid "Checking SQL integrity..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2485
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2495
msgid "Checking for missing files."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2507
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2517
msgid "Checked id"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:125
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:139
msgid "Ratings"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:262
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:276
msgid "Title Sort"
msgstr ""
@@ -11071,10 +11115,118 @@ msgid ""
"disable grouping."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/server/base.py:94
+#: /home/kovid/work/calibre/src/calibre/library/server/base.py:96
msgid "Password to access your calibre library. Username is "
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:50
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:390
+msgid "Loading, please wait"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:79
+msgid "First"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:79
+msgid "Last"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:79
+msgid "Previous"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80
+msgid "Next"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:82
+msgid "Browsing %d books"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:98
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:217
+msgid "Average rating"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99
+msgid "%s: %.1f stars"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:128
+msgid "%d stars"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:218
+msgid "Popularity"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:237
+msgid "Sort by"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:300
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:489
+#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:568
+msgid "Newest"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332
+msgid "Browse books by"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:337
+msgid "Choose a category to browse by:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:409
+msgid "Browsing by"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:410
+msgid "Up"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:515
+msgid "in"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:518
+msgid "Books in"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:568
+msgid "Other formats"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:575
+msgid "Read %s in the %s format"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:580
+msgid "Get"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:594
+msgid "Permalink"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:595
+msgid "A permanent link to this book"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:606
+msgid "This book has been deleted"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:687
+msgid "in search"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:689
+msgid "Matching books"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/library/server/main.py:28
msgid ""
"[options]\n"
@@ -11128,10 +11280,6 @@ msgstr ""
msgid "Books sorted by "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:588
-msgid "Newest"
-msgstr ""
-
#: /home/kovid/work/calibre/src/calibre/utils/config.py:32
msgid "%sUsage%s: %s\n"
msgstr ""
@@ -11210,6 +11358,14 @@ msgstr ""
msgid "How and when calibre updates metadata on the device."
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/utils/formatter.py:32
+msgid "lookup requires either 2 or an odd number of arguments"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/utils/formatter.py:55
+msgid "switch requires an odd number of arguments"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43
msgid "Waiting..."
msgstr ""
@@ -11372,7 +11528,7 @@ msgstr ""
msgid "Failed to authenticate with server: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:230
+#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234
msgid "Control email delivery"
msgstr ""
@@ -11416,93 +11572,93 @@ msgstr ""
msgid "Unknown News Source"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:612
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:615
msgid "The \"%s\" recipe needs a username and password."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:711
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:714
msgid "Download finished"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:713
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:716
msgid "Failed to download the following articles:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:719
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:722
msgid "Failed to download parts of the following articles:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:721
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:724
msgid " from "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:723
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:726
msgid "\tFailed links:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:812
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:815
msgid "Could not fetch article. Run with -vv to see the reason"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:833
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:836
msgid "Fetching feeds..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:838
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:841
msgid "Got feeds from index page"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:844
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:847
msgid "Trying to download cover..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:846
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:849
msgid "Generating masthead..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:927
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:930
msgid "Starting download [%d thread(s)]..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:943
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:946
msgid "Feeds downloaded to %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:952
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:955
msgid "Could not download cover: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:959
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:962
msgid "Downloading cover from %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1004
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1007
msgid "Masthead image downloaded"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1172
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1175
msgid "Untitled Article"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1243
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1246
msgid "Article downloaded: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1254
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1257
msgid "Article download failed: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1274
msgid "Fetching feed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1418
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1421
msgid ""
"Failed to log in, check your username and password for the calibre "
"Periodicals service."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1433
+#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1436
msgid ""
"You do not have permission to download this issue. Either your subscription "
"has expired or you have exceeded the maximum allowed downloads for today."
diff --git a/src/calibre/translations/ca.po b/src/calibre/translations/ca.po
index 82fcb7fec2..4f28756ac2 100644
--- a/src/calibre/translations/ca.po
+++ b/src/calibre/translations/ca.po
@@ -10,14 +10,14 @@ msgid ""
msgstr ""
"Project-Id-Version: ca\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-10-08 21:12+0000\n"
-"PO-Revision-Date: 2010-10-16 19:56+0000\n"
+"POT-Creation-Date: 2010-10-28 00:31+0000\n"
+"PO-Revision-Date: 2010-10-28 02:48+0000\n"
"Last-Translator: FerranRius \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-10-17 04:52+0000\n"
+"X-Launchpad-Export-Date: 2010-10-29 05:22+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43
@@ -30,16 +30,17 @@ msgstr "No fa absolutament res"
#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74
#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76
#: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:413
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444
#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70
#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71
#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267
-#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:526
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:399
+#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:643
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401
#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97
#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56
#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:407
+#: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72
#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:336
@@ -58,18 +59,18 @@ msgstr "No fa absolutament res"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:49
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:333
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:65
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:124
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:126
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1017
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1129
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1022
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1134
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/snb.py:16
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:65
@@ -81,9 +82,9 @@ msgstr "No fa absolutament res"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:909
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:914
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:980
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:911
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64
@@ -123,40 +124,40 @@ msgstr "No fa absolutament res"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:909
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1205
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:915
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:924
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1231
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1234
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:177
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:381
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:400
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:919
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1113
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:383
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:402
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1119
#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189
#: /home/kovid/work/calibre/src/calibre/library/cli.py:215
#: /home/kovid/work/calibre/src/calibre/library/database.py:913
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:396
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:408
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1269
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1373
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2147
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2149
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2281
-#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:219
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:399
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:411
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295
+#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:224
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142
-#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:76
+#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:78
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:118
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:78
#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47
-#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:50
+#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:55
msgid "Unknown"
msgstr "Desconegut"
@@ -170,11 +171,11 @@ msgstr "Tipus de fitxer"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:208
msgid "Metadata reader"
-msgstr "Lector de metainformació"
+msgstr "Lector de metadades"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:238
msgid "Metadata writer"
-msgstr "Escriptor de metainformació"
+msgstr "Escriptor de metadades"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:268
msgid "Catalog generator"
@@ -209,7 +210,7 @@ msgid ""
"Character encoding for the input HTML files. Common choices include: cp1252, "
"latin1, iso-8859-1 and utf-8."
msgstr ""
-"Joc de caràcters dels fitxer HTML d'entrada. Les opcions comuns inclouen: "
+"Joc de caràcters dels fitxers HTML d'entrada. Les opcions comunes inclouen: "
"cp1252, latin1, iso-8859-1 i utf-8."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60
@@ -218,8 +219,8 @@ msgid ""
"directory pmlname_img or images. This plugin is run every time you add a PML "
"file to the library."
msgstr ""
-"Crea un arxiu PMLZ que conté el fitxer PML i totes les imatges dels "
-"directoris pmlname_ing o images. Aquest connector s'executa cada vegada que "
+"Crea un arxiu PMLZ que conté el fitxer PML i totes les imatges de les "
+"carpetes pmlname_ing o images. Aquest connector s'executa cada vegada que "
"afegiu un fitxer PML a la biblioteca."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94
@@ -243,70 +244,72 @@ msgstr "Extreu la portada dels fitxers de còmic"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:279
#: /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:311
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321
msgid "Read metadata from %s files"
-msgstr "Llegeix la metainformació dels fitxers %s"
+msgstr "Llegeix les metadades dels fitxers %s"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:269
msgid "Read metadata from ebooks in RAR archives"
-msgstr "Llegeix la metainformació dels llibres electrònics en arxius RAR"
+msgstr "Llegeix les metadades dels llibres en arxius RAR"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:332
msgid "Read metadata from ebooks in ZIP archives"
-msgstr "Llegeix la metainformació dels llibres electrònics en arxius ZIP"
-
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:334
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:344
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:354
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:397
-msgid "Set metadata in %s files"
-msgstr "Estableix la metainformació als fitxers %s"
+msgstr "Llegeix les metadades dels llibres en arxius ZIP"
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:345
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:355
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365
-msgid "Set metadata from %s files"
-msgstr "Estableix metainformació des dels fitxers %s"
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:398
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:408
+msgid "Set metadata in %s files"
+msgstr "Estableix les metadades als fitxers %s"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:691
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376
+msgid "Set metadata from %s files"
+msgstr "Estableix les metadades des dels fitxers %s"
+
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:706
msgid "Look and Feel"
msgstr "Aspecte i comportament"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:693
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:705
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:716
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:727
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:708
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:720
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742
msgid "Interface"
msgstr "Interfície"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:697
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:712
msgid "Adjust the look and feel of the calibre interface to suit your tastes"
msgstr ""
-"Ajusta l'aspecte i el comportament de la interfície de calibre per tal que "
-"s'adapti al teu gust"
+"Ajusta l'aspecte i el comportament de la interfície del calibre adaptar-lo "
+"al vostre gust"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:703
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:718
msgid "Behavior"
msgstr "Comportament"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:709
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:724
msgid "Change the way calibre behaves"
-msgstr "Canvia el comportament de calibre"
+msgstr "Canvia el comportament del calibre"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:714
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:180
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202
msgid "Add your own columns"
msgstr "Afegeix les teves columnes"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:720
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735
msgid "Add/remove your own columns to the calibre book list"
-msgstr "Afegeix/elimina les teves columnes a la llista de llibres de calibre"
+msgstr ""
+"Afegeix/elimina les teves columnes a la llista de llibres del calibre"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740
msgid "Customize the toolbar"
msgstr "Personalitza la barra d'eines"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746
msgid ""
"Customize the toolbars and context menus, changing which actions are "
"available in each"
@@ -314,141 +317,141 @@ msgstr ""
"Personalitza les barres d'eines i els menús de context, canviant quines "
"accions estan disponibles"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:737
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:752
msgid "Input Options"
msgstr "Opcions d'entrada"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:739
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:750
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:761
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:754
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776
msgid "Conversion"
msgstr "Conversió"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:743
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:758
msgid "Set conversion options specific to each input format"
msgstr ""
"Ajusta les opcions de conversió específiques per a cada format d'entrada"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:748
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763
msgid "Common Options"
msgstr "Opcions comunes"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:754
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769
msgid "Set conversion options common to all formats"
msgstr "Ajusta les opcions de conversió comunes a tots els formats"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774
msgid "Output Options"
msgstr "Opcions de sortida"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780
msgid "Set conversion options specific to each output format"
msgstr ""
"Ajusta les opcions de conversió específiques de cada format de sortida"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785
msgid "Adding books"
msgstr "Afegint llibres"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:772
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:784
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:799
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:811
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:823
msgid "Import/Export"
msgstr "Importa/exporta"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791
msgid "Control how calibre reads metadata from files when adding books"
msgstr ""
-"Controla com calibre llegeix les metadades dels arxius quan s'afegeixen "
+"Controla com el calibre llegeix les metadades dels arxius quan s'afegeixen "
"llibres"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:782
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:797
msgid "Saving books to disk"
msgstr "Desant els llibres al disc"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:788
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:803
msgid ""
"Control how calibre exports files from its database to disk when using Save "
"to disk"
msgstr ""
-"Controla com calibre exporta arxius de la seva base de dades al disc quan "
-"s'utilitza Desa al disc"
+"Controla com el calibre exporta fitxers de la seva base de dades al disc en "
+"utilitzar «Desa al disc»"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:794
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:809
msgid "Sending books to devices"
-msgstr "Enviant llibres als dispositius"
+msgstr "S'està enviant llibres als dispositius"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:800
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:815
msgid "Control how calibre transfers files to your ebook reader"
-msgstr "Controla com calibre envia arxius al teu lector d'ebooks"
+msgstr "Controla com el calibre envia fitxers al lector de llibres"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:806
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:821
msgid "Metadata plugboards"
-msgstr "Metadades dels taulers de connexions"
+msgstr "Metadades dels quadres de connexions"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:812
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:827
msgid "Change metadata fields before saving/sending"
msgstr "Canvia els camps de les metadades abans de desar/enviar"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832
msgid "Sharing books by email"
msgstr "Compartint llibres via correu electrònic"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:819
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:831
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:846
msgid "Sharing"
msgstr "Compartint"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:823
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838
msgid ""
"Setup sharing of books via email. Can be used for automatic sending of "
"downloaded news to your devices"
msgstr ""
-"Configura compartir llibres via correu electrònic. Es pot utilitzar per "
-"enviar notícies descarregades als teus dispositius"
+"Configura la compartició de llibres per correu electrònic. Es pot utilitzar "
+"per enviar notícies descarregades als vostres dispositius"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844
msgid "Sharing over the net"
msgstr "Compartint en xarxa"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:835
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:850
msgid ""
"Setup the calibre Content Server which will give you access to your calibre "
"library from anywhere, on any device, over the internet"
msgstr ""
-"Configura el Servidor de Continguts que et donarà accés a la teva llibreria "
-"des de qualsevol lloc i dispositiu, a través d'internet"
+"Configura el Servidor de Continguts donarà accés a la biblioteca des de "
+"qualsevol lloc i dispositiu, a través d'internet"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:842
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857
msgid "Plugins"
msgstr "Plugins"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:856
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:867
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:859
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:871
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882
msgid "Advanced"
msgstr "Avançat"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:848
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:863
msgid "Add/remove/customize various bits of calibre functionality"
msgstr ""
-"Afegeix/eliminina/personalitza diversos bits de la funcionalitat de calibre"
+"Afegeix/suprimeix/personalitza diversos bits de la funcionalitat del calibre"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:854
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:869
msgid "Tweaks"
msgstr "Ajustos"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:860
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:875
msgid "Fine tune how calibre behaves in various contexts"
msgstr ""
-"Configuració detallada del comportament de calibre en diversos contextos"
+"Configura en detall el comportament del calibre en diversos contextos"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:865
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880
msgid "Miscellaneous"
msgstr "Miscel·lània"
-#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:871
+#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886
msgid "Miscellaneous advanced configuration"
msgstr "Configuració avançada"
@@ -456,7 +459,7 @@ msgstr "Configuració avançada"
msgid "Conversion Input"
msgstr "Entrada per a la conversió"
-#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:129
+#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:134
msgid ""
"Specify the character encoding of the input document. If set this option "
"will override any encoding declared by the document itself. Particularly "
@@ -468,11 +471,11 @@ msgstr ""
"document. És particularment útil per a documents que no indiquen cap joc de "
"caràcters o ho fan incorrectament."
-#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241
+#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:246
msgid "Conversion Output"
msgstr "Sortida de la conversió"
-#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255
+#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:260
msgid ""
"If specified, the output plugin will try to create output that is as human "
"readable as possible. May not have any effect for some output plugins."
@@ -481,11 +484,11 @@ msgstr ""
"sigui el més llegible possible. Potser no tingui cap efecte en alguns "
"connectors de sortida."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:46
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:47
msgid "Input profile"
msgstr "Perfil d'entrada"
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:50
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:51
msgid ""
"This profile tries to provide sane defaults and is useful if you know "
"nothing about the input document."
@@ -493,122 +496,129 @@ msgstr ""
"Aquest perfil intenta proporcionar valors predeterminats i és útil si no "
"sabeu res del document d'entrada."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:58
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:433
msgid ""
"This profile is intended for the SONY PRS line. The 500/505/600/700 etc."
msgstr ""
-"Aquest perfil és adient per al la línia PRS de SONY. Els models "
-"500/505/600/700, etc."
+"Aquest perfil és adient per a la línia PRS de SONY. Models 500/505/600/700..."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:70
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:71
msgid "This profile is intended for the SONY PRS 300."
msgstr "Aquest perfil és adient per al SONY PRS-300."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:79
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:470
msgid "This profile is intended for the SONY PRS-900."
msgstr "Aquest perfil és adient per al SONY PRS-900."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:87
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:492
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:500
msgid "This profile is intended for the Microsoft Reader."
msgstr "Aquest perfil és adient per al Microsoft Reader."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:98
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:511
msgid "This profile is intended for the Mobipocket books."
msgstr "Aquest perfil és adient per a llibres Mobipocket."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:111
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:516
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524
msgid "This profile is intended for the Hanlin V3 and its clones."
msgstr "Aquest perfil és adient per al Hanlin V3 i els seus clons."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:123
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:528
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536
msgid "This profile is intended for the Hanlin V5 and its clones."
msgstr "Aquest perfil és adient per al Hanlin V5 i els seus clons."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:133
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:544
msgid "This profile is intended for the Cybook G3."
msgstr "Aquest perfil és adient per al Cybook G3."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:146
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557
msgid "This profile is intended for the Cybook Opus."
msgstr "Aquest perfil és adient per al Cybook Opus"
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:158
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:560
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:568
msgid "This profile is intended for the Amazon Kindle."
msgstr "Aquest perfil és adient per a l'Amazon Kindle."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:170
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:600
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609
msgid "This profile is intended for the Irex Illiad."
msgstr "Aquest perfil és adient per a l'Irex Illiad"
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:182
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:613
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:622
msgid "This profile is intended for the IRex Digital Reader 1000."
-msgstr "Aquest perfil és adient per al IRex Digital Reader 1000."
+msgstr "Aquest perfil és adient per a l'IRex Digital Reader 1000."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:195
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:627
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:636
msgid "This profile is intended for the IRex Digital Reader 800."
-msgstr "Aquest perfil és adient per al IRex Digital Reader 800."
+msgstr "Aquest perfil és adient per a l'IRex Digital Reader 800."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:207
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:641
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:650
msgid "This profile is intended for the B&N Nook."
msgstr "Aquest perfil és adient per al B&N Nook."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:229
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:230
msgid "Output profile"
msgstr "Perfil de sortida"
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:233
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:234
msgid ""
"This profile tries to provide sane defaults and is useful if you want to "
"produce a document intended to be read at a computer or on a range of "
"devices."
msgstr ""
-"Aquest perfil intentat proporcionar valors predeterminats adients i és útil "
+"Aquest perfil intenta proporcionar valors predeterminats adients i és útil "
"si voleu generar un document que es pugui llegir en un PC o en un conjunt "
"ampli de dispositius diferents."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:269
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:270
msgid ""
"Intended for the iPad and similar devices with a resolution of 768x1024"
msgstr ""
"Destinats als dispositius d'IPAD i similars amb una resolució de 768x1024"
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440
-msgid "This profile is intended for the Kobo Reader."
-msgstr "Aquest perfil és adient per al lector Kobo Reader."
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:424
+msgid "Intended for generic tablet devices, does no resizing of images"
+msgstr ""
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:453
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:448
+msgid "This profile is intended for the Kobo Reader."
+msgstr "Aquest perfil és adient per al Kobo Reader."
+
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:461
msgid "This profile is intended for the SONY PRS-300."
msgstr "Aquest perfil és adient per al SONY PRS-300."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:471
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479
msgid "This profile is intended for the 5-inch JetBook."
msgstr "Aquest perfil és adient per al 5-inch JetBook"
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:480
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488
msgid ""
"This profile is intended for the SONY PRS line. The 500/505/700 etc, in "
"landscape mode. Mainly useful for comics."
msgstr ""
-"Aquest perfil és adient per al la línia PRS de SONY. Els models 500/505/700, "
-"etc., en mode apaïsat. Sobretot és útil per als còmics."
+"Aquest perfil és adient per a la línia PRS de SONY. Models 500/505/700... en "
+"mode apaïsat. Sobretot és útil per als còmics."
-#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:581
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:589
msgid "This profile is intended for the Amazon Kindle DX."
msgstr "Aquest perfil és adient per a l'Amazon Kindle DX."
+#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:663
+msgid "This profile is intended for the Sanda Bambook."
+msgstr "Aquest perfil és adient per al Sanda Bambook."
+
#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34
msgid "Installed plugins"
msgstr "Connectors instal·lats"
@@ -684,60 +694,70 @@ msgstr "Inhabilita el connector anomenat"
msgid "Communicate with Android phones."
msgstr "Estableix comunicació amb telèfons Android"
-#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:52
+#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53
msgid ""
"Comma separated list of directories to send e-books to on the device. The "
"first one that exists will be used"
msgstr ""
-"Llistat de directoris, separats per comes, on emmagatzemar els llibres al "
-"dispositiu. S'usarà el primer directori del llistat que ja existeixi al "
-"dispositiu"
+"Llista de carpetes del dispositiu separades per comes on s'enviaran els "
+"llibres. Es farà servir la primera que ja existeixi al dispositiu."
-#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:94
+#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95
msgid "Communicate with S60 phones."
msgstr "Estableix comunicació amb els telèfons S60."
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:89
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:90
msgid "Apple device"
msgstr "Dispositiu Apple"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:91
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:92
msgid "Communicate with iTunes/iBooks."
msgstr "Comunicar-se amb iTunes/iBooks."
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:97
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:98
msgid "Apple device detected, launching iTunes, please wait ..."
-msgstr "Dispositiu Apple detectat, engegant iTunes, esperi si us plau ..."
+msgstr ""
+"S'ha detectat un dispositiu Apple detectat, s'està engegant l'iTunes, "
+"espereu ..."
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:256
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:259
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:100
+msgid ""
+"Cannot copy books directly from iDevice. Drag from iTunes Library to "
+"desktop, then add to calibre's Library window."
+msgstr ""
+"No es poden copiar els llibres directament des de l'iPhone/iPod. Arrossegueu-"
+"los des de la biblioteca de l'iTunes a l'escriptori i després afegiu-los a "
+"la finestra de la biblioteca del calibre."
+
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:260
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:263
msgid "Updating device metadata listing..."
-msgstr "Actualitzant la llista de metadades del dispositiu..."
+msgstr "S'està actualitzant el llistat de metadades del dispositiu..."
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:335
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:374
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:943
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:983
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2945
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2985
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:339
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:378
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:947
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:987
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2949
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2989
msgid "%d of %d"
msgstr "%d de %d"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:381
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:988
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2991
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:385
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:992
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2995
msgid "finished"
msgstr "finalitzat"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:556
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:560
msgid "Use Series as Category in iTunes/iBooks"
msgstr "Fes servir Sèries com a categoria a l'iTunes/iBooks"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:558
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:562
msgid "Cache covers from iTunes/iBooks"
-msgstr "Cau de caràtules des de l'iTunes/iBooks"
+msgstr "Memòria cau de portades de l'iTunes/iBooks"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:570
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:574
msgid ""
"Some books not found in iTunes database.\n"
"Delete using the iBooks app.\n"
@@ -747,35 +767,37 @@ msgstr ""
"Elimina'ls utilitzant l'aplicació de l'iBooks.\n"
"Clic a 'Veure Detalls' per a més informació."
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:907
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:911
msgid ""
"Some cover art could not be converted.\n"
"Click 'Show Details' for a list."
msgstr ""
-"Varies portades no s'han pogut convertir.\n"
-"Clic a 'Veure Detalls' per a més informació."
+"No s'ha pogut convertir algunes portades.\n"
+"Feu clic a «Veure Detalls» per a la llista."
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2542
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:853
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:248
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:209
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:222
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:2007
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:135
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2546
+#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:444
+#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:467
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:882
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:212
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:225
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149
msgid "News"
msgstr "Notícies"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2543
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2547
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1970
-#: /home/kovid/work/calibre/src/calibre/library/database2.py:1988
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984
+#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002
msgid "Catalog"
msgstr "Catàleg"
-#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2849
+#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2853
msgid "Communicate with iTunes."
msgstr "Comunica't amb iTunes"
@@ -832,7 +854,7 @@ msgstr "Comunicar amb el Sigmatek eBook reader."
#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:16
#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:32
msgid "Use an arbitrary folder as a device."
-msgstr "Utilitzar un directori arbitrari per al dispositiu."
+msgstr "Fes servir una carpeta arbitrària com a dispositiu."
#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:28
#: /home/kovid/work/calibre/src/calibre/devices/interface.py:14
@@ -858,8 +880,8 @@ msgid ""
"Comma separated list of directories to send e-books to on the device. The "
"first one that exists will be used."
msgstr ""
-"Llista separada per comes dels directoris als quals enviar llibres "
-"electrònics en el dispositiu. S'usarà el primer que existeixi."
+"Llista de carpetes del dispositiu separades per comes on s'enviaran els "
+"llibres. Es farà servir la primera que ja existeixi."
#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:22
msgid "Communicate with the Hanvon N520 eBook reader."
@@ -877,10 +899,10 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102
#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:248
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:280
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:254
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:272
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274
msgid "Removing books from device..."
msgstr "S'estan suprimint els llibres del dispositiu..."
@@ -904,6 +926,10 @@ msgstr ""
msgid "John Schember"
msgstr "John Schember"
+#: /home/kovid/work/calibre/src/calibre/devices/interface.py:44
+msgid "Cannot get files from this device"
+msgstr "No es poden aconseguir els fitxers d'aquest dispositiu"
+
#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16
msgid "Communicate with the IRex Digital Reader 1000 eBook reader."
msgstr ""
@@ -949,7 +975,7 @@ msgstr "Estableix comunicació amb el lector de llibres electrònics Kindle DX"
msgid "Communicate with the Kobo Reader"
msgstr "Comunica amb el lector Kobo Reader"
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:47
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:49
msgid ""
"The Kobo supports only one collection currently: the \"Im_Reading\" list. "
"Create a tag called \"Im_Reading\" "
@@ -957,10 +983,10 @@ msgstr ""
"El Kobo de moment només dóna suport a una col·lecció: la llista "
"\"Im_Reading\". Creeu una etiqueta amb el nom \"Im_Reading\" "
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:63
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:66
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:69
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:188
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:65
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:68
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:71
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:204
#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68
#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71
#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74
@@ -970,33 +996,32 @@ msgstr ""
msgid "Getting list of books on device..."
msgstr "S'està obtenint el llistat de llibres disponibles al dispositiu..."
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:284
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:291
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:279
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:284
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286
msgid "Removing books from device metadata listing..."
msgstr "S'estan suprimint llibres del llistat de metadades del dispositiu..."
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:331
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:248
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250
msgid "Adding books to device metadata listing..."
msgstr "S'estan afegint llibres al llistat de metadades del dispositiu..."
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:393
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:253
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258
msgid "Not Implemented"
msgstr "No implementat"
-#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:394
+#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425
msgid ""
"\".kobo\" files do not exist on the device as books instead, they are rows "
"in the sqlite database. Currently they cannot be exported or viewed."
msgstr ""
-"No existeixen arxius \".kobo\" de llibres al dispositiu, per contra hi ha "
-"files a la base de dades sqlite. Ara mateix no es poden exportar ni "
-"visualitzar"
+"No existeixen fitxers «.kobo» de llibres al dispositiu, però hi ha files a "
+"la base de dades sqlite. De moment no es poden exportar ni visualitzar"
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:17
msgid "Communicate with the Palm Pre"
@@ -1032,8 +1057,8 @@ msgid "Communicate with the Nokia 770 internet tablet."
msgstr "Estableix comunicació amb la tauleta d'Internet Nokia 770."
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40
-msgid "Communicate with the Nokia 810 internet tablet."
-msgstr "Estableix comunicació amb la tauleta d'Internet Nokia 810."
+msgid "Communicate with the Nokia 810/900 internet tablet."
+msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:74
msgid "Communicate with the Nokia E52"
@@ -1068,7 +1093,7 @@ msgstr ""
"Llistat on apareixen, separats per coma, els camps de metadades per "
"traslladar a les col·leccions del dispositiu. Les possibilitats inclouen: "
-#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:149
+#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:190
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68
msgid "Unnamed"
msgstr "Sense nom"
@@ -1094,23 +1119,23 @@ msgstr "Comunicar-se amb el lector iPapyrus."
msgid "Communicate with the Sovos reader."
msgstr "Comunicar-se amb el lector Sovos."
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:258
msgid "Unable to detect the %s disk drive. Try rebooting."
msgstr "No s'ha pogut detectar la unitat de disc %s. Proveu a reiniciar."
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:438
msgid "Unable to detect the %s mount point. Try rebooting."
msgstr "No s'ha pogut detectar el punt de muntatge %s. Proveu a reiniciar."
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:503
msgid "Unable to detect the %s disk drive."
msgstr "No s'ha pogut detectar la unitat de disc %s."
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:596
msgid "Could not find mount helper: %s."
msgstr "No s'ha pogut trobar l'assistent de muntatge: %s"
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:608
msgid ""
"Unable to detect the %s disk drive. Your kernel is probably exporting a "
"deprecated version of SYSFS."
@@ -1118,25 +1143,33 @@ msgstr ""
"No s'ha pogut detectar la unitat de disc %s. El kernel probablement utilitza "
"una versió obsoleta de SYSFS."
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:616
msgid "Unable to mount main memory (Error code: %d)"
msgstr "No s'ha pogut muntar la memòria principal (Codi d'error: %d)"
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:667
+msgid ""
+"The main memory of %s is read only. This usually happens because of file "
+"system errors."
+msgstr ""
+"La memòria principal de %s és només de lectura. Sol passar per errors al "
+"sistema de fitxers."
+
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:815
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817
msgid "The reader has no storage card in this slot."
msgstr "El lector no té cap targeta de memòria en aquesta ranura."
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:819
msgid "Selected slot: %s is not supported."
msgstr "Ranura seleccionada: %s no és compatible."
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:848
msgid "There is insufficient free space in main memory"
msgstr "No hi ha espai lliure suficient a la memòria principal"
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:850
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:852
msgid "There is insufficient free space on the storage card"
msgstr "No hi ha espai lliure suficient a la targeta de memòria"
@@ -1154,7 +1187,7 @@ msgstr "Llistat ordenat de formats que el dispositiu accepta"
#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:41
msgid "Place files in sub directories if the device supports them"
-msgstr "Posa els fitxers a subdirectoris si el dispostiu ho permet"
+msgstr "Posa els fitxers a subcarpetes si el dispositiu ho permet"
#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:43
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:86
@@ -1182,100 +1215,15 @@ msgstr "Estableix comunicació amb el lector de llibres electrònics."
msgid "Get device information..."
msgstr "Obté informació del dispositiu..."
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:194
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:196
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:195
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:197
msgid "Transferring books to device..."
msgstr "S'estan transferint llibres al dispositiu..."
-#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:314
+#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:316
msgid "Sending metadata to device..."
msgstr "S'estan enviant metadades al dispositiu..."
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:41
-msgid "%prog [options] mybook.chm"
-msgstr "%prog [opcions] mybook.chm"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:42
-msgid "Output directory. Defaults to current directory"
-msgstr "Directori de sortida. Per defecte el directori actual"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:45
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589
-msgid "Set the book title"
-msgstr "Indiqueu el nom del llibre"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:47
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591
-msgid "Set sort key for the title"
-msgstr "Indiqueu la clau d'ordenació per títol"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:49
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593
-msgid "Set the author"
-msgstr "Indiqueu l'autor"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:51
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595
-msgid "Set sort key for the author"
-msgstr "Indiqueu la clau d'ordenació per autor"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:53
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597
-msgid "The category this book belongs to. E.g.: History"
-msgstr "Categoria a la que pertany el llibre. Per exemple, Història"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:56
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600
-msgid "Path to a graphic that will be set as this files' thumbnail"
-msgstr "Ruta al fitxer d'imatge que s'utilitzarà com a miniatura"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:59
-msgid "Path to a txt file containing a comment."
-msgstr "Ruta a l'arxiu txt que conté el comentari."
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:62
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607
-msgid "Extract thumbnail from LRF file"
-msgstr "Extreu la miniatura del fitxer LRF"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:63
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608
-msgid "Set the publisher"
-msgstr "Establiu l'editorial"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:64
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609
-msgid "Set the book classification"
-msgstr "Establiu la classificació del llibre"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:65
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610
-msgid "Set the book creator"
-msgstr "Establiu el creador del llibre"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:66
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611
-msgid "Set the book producer"
-msgstr "Establiu el productor del llibre"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:68
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613
-msgid ""
-"Extract cover from LRF file. Note that the LRF format has no defined cover, "
-"so we use some heuristics to guess the cover."
-msgstr ""
-"Extreure la portada de l'arxiu LRF. Adoneu-vos que l'arxiu LRF no disposa de "
-"portada, de forma que s'hi aplicarà l'heurística per a extreure'n una."
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:70
-#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615
-msgid "Set book ID"
-msgstr "Indiqueu l'ID (identificador) del llibre"
-
-#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:72
-msgid "Set font delta"
-msgstr "Indiqueu la font delta"
-
#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:182
msgid "Rendered %s"
msgstr "%s renderitzat"
@@ -1363,8 +1311,8 @@ msgid ""
"Don't sort the files found in the comic alphabetically by name. Instead use "
"the order they were added to the comic."
msgstr ""
-"No ordenis alfabèticament els arxius trobats al còmic. Empra l'ordre en el "
-"qual hi foren afegits al còmic."
+"No ordenis alfabèticament els fitxers que hi ha còmic. Utilitza l'ordre en "
+"què es van afegir al còmic."
#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288
msgid ""
@@ -1414,30 +1362,29 @@ msgid ""
"\n"
"For full documentation of the conversion system see\n"
msgstr ""
-"arxiu_inicial arxiu_final [opcions]\n"
+"fitxer_inicial fitxer_final [opcions]\n"
"\n"
-"Convertiu un llibre electrònic d'un format a un altre.\n"
+"Converteix un llibre d'un format a un altre.\n"
"\n"
-"arxiu_inicial és l'entrada i arxiu_final és la sortida. Ambdós han de ser "
-"especificats com el primers dos arguments del comandament.\n"
+"fitxer_inicial és l'entrada i fitxer_final és la sortida. S'han "
+"d'especificar com als dos primers arguments de l'ordre.\n"
"\n"
-"El format de llibre electrònic de sortida serà el mateix que l'extensió "
-"consignada a arxiu_final. arxiu_final també pot estar en el format especial "
-".EXT, on EXT es l'extensió de l'arxiu de sortida. En aquest cas, el nom de "
-"l'arxiu de sortida es deriva del nom de l'arxiu d'entrada. Adoneu-vos que "
-"els noms dels arxius no poden començar amb un guionet. Per acabar, si al "
-"arxiu_final no consigna cap extensió, aleshores és tractat com un directori "
-"i com un \"llibre obert\" (OEB), que consisteix en arxius HTML escrits al "
-"directori creat. Aquests arxius són els que normalment haurien passat al "
-"connector de sortida.\n"
+"El format de llibre de sortida serà el mateix que l'extensió consignada a "
+"fitxer_final. fitxer_final també pot estar en el format especial .EXT, on "
+"EXT es l'extensió del fitxer de sortida. En aquest cas, el nom del fitxer de "
+"sortida es deriva del nom del fitxer d'entrada. Els noms dels fitxers no "
+"poden començar amb un guionet. Per acabar, si al fitxer_final no consigna "
+"cap extensió, aleshores es tracta com una carpeta i com un \"llibre obert\" "
+"(OEB), que consisteix en fitxer HTML que es desen a la carpeta. Aquests "
+"fitxers són els que normalment haurien passat al connector de sortida.\n"
"\n"
-"Després d'especificar l'arxiu d'entrada i el de sortida, podeu personalitzar "
-"la conversió especificant-ne diverses opcions. Les opcions disponibles "
-"depenen de dels formats seleccionats dels arxius d'entrada i sortida. Per "
-"obtenir ajuda sobre aquestes opcions, especifiqueu els arxiu d'entrada i de "
-"sortida i empreu l'opció -h.\n"
+"Després d'especificar el fitxer d'entrada i el de sortida, podeu "
+"personalitzar la conversió especificant-ne diverses opcions. Les opcions "
+"disponibles depenen dels formats seleccionats als fitxer d'entrada i "
+"sortida. Per obtenir ajuda sobre aquestes opcions, especifiqueu els fitxers "
+"d'entrada i de sortida i amb l'opció -h.\n"
"\n"
-"Per consultar la documentació completa del sistema de conversió vegeu\n"
+"Si voleu tota la documentació del sistema de conversió vegeu\n"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97
msgid "INPUT OPTIONS"
@@ -1469,9 +1416,8 @@ msgid ""
"source file has a Table of Contents, it will be used in preference to the "
"automatically generated one."
msgstr ""
-"Control de generació automàtica de l'Índex de Continguts. Si el fitxer "
-"d'origen conté un Índex de Continguts, aquest serà emprat com a primera "
-"opció en la seva generació automàtica de forma predeterminada."
+"Controla la generació automàtica de l'índex. Si el fitxer d'origen conté un "
+"índex, s'utilitzarà preferentment aquest en lloc del generat automàticament."
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:155
msgid "Options to set metadata in the output"
@@ -1489,21 +1435,21 @@ msgstr "Llista les receptes incorporades"
msgid "Output saved to"
msgstr "S'ha desat la sortida a"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:95
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99
msgid "Level of verbosity. Specify multiple times for greater verbosity."
msgstr "Nivell de detall. Especifiqueu diverses vegades per a més detall."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:102
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:106
msgid ""
"Save the output from different stages of the conversion pipeline to the "
"specified directory. Useful if you are unsure at which stage of the "
"conversion process a bug is occurring."
msgstr ""
-"Desa la sortida de les diferents fases del canal de la conversió al "
-"directori especificat. Això és útil si no esteu segurs de a quina fase de la "
+"Desa la sortida de les diferents fases del canal de la conversió a la "
+"carpeta que s'indica. Això és útil si no esteu segurs de a quina fase de la "
"conversió es produeix l'errada."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:111
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:115
msgid ""
"Specify the input profile. The input profile gives the conversion system "
"information on how to interpret various information in the input document. "
@@ -1515,20 +1461,20 @@ msgstr ""
"d'entrada. Per exemple, la resolució que depèn de la mida (quan la mida està "
"en píxels). Les possibilitats són:"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:122
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:126
msgid ""
"Specify the output profile. The output profile tells the conversion system "
"how to optimize the created document for the specified device. In some "
"cases, an output profile is required to produce documents that will work on "
"a device. For example EPUB on the SONY reader. Choices are:"
msgstr ""
-"Especifica el perfil de sortida. El perfil de sortida proporciona informació "
-"al sistema de conversió sobre com optimitzar el document creat per al "
-"dispositiu especificat. En alguns casos, el perfil de sortida es requereix "
-"per a produir documents compatibles amb el dispositiu. Per exemple el format "
-"EPUB al lector de SONY. Les possibilitats són:"
+"Indica el perfil de sortida. El perfil de sortida proporciona informació al "
+"sistema de conversió sobre com optimitzar el document creat per al "
+"dispositiu indicat. En alguns casos, el perfil de sortida es requereix per a "
+"produir documents compatibles amb el dispositiu. Per exemple el format EPUB "
+"al lector de SONY. Les possibilitats són:"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:133
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:137
msgid ""
"The base font size in pts. All font sizes in the produced book will be "
"rescaled based on this size. By choosing a larger size you can make the "
@@ -1541,7 +1487,7 @@ msgstr ""
"viceversa. La mida de la font base predeterminada es selecciona en funció "
"del perfil de sortida que hagueu triat."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:143
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:147
msgid ""
"Mapping from CSS font names to font sizes in pts. An example setting is "
"12,12,14,16,18,20,22,24. These are the mappings for the sizes xx-small to xx-"
@@ -1556,11 +1502,11 @@ msgstr ""
"un escalat de les fonts intel·ligent. De forma predeterminada s'empra una "
"configuració basada en el perfil de sortida que hagueu triat."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:155
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159
msgid "Disable all rescaling of font sizes."
msgstr "Inhabilita el reescalat de les mides de lletra."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:162
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:166
msgid ""
"The line height in pts. Controls spacing between consecutive lines of text. "
"By default no line height manipulation is performed."
@@ -1569,7 +1515,7 @@ msgstr ""
"línies consecutives del text. No s'hi aplica cap línia d'alçada de forma "
"predeterminada."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:170
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:174
msgid ""
"Some badly designed documents use tables to control the layout of text on "
"the page. When converted these documents often have text that runs off the "
@@ -1582,7 +1528,7 @@ msgstr ""
"Aquesta opció extreu el contingut de les taules i el presenta de forma "
"lineal."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:180
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:184
msgid ""
"XPath expression that specifies all tags that should be added to the Table "
"of Contents at level one. If this is specified, it takes precedence over "
@@ -1592,7 +1538,7 @@ msgstr ""
"nivell 1 de l'Índex de Continguts. Si es configura així, s'hi aplica abans "
"que altres formes d'autodetecció."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:189
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:193
msgid ""
"XPath expression that specifies all tags that should be added to the Table "
"of Contents at level two. Each entry is added under the previous level one "
@@ -1602,7 +1548,7 @@ msgstr ""
"nivell 2 de l'Índex de Continguts. Cada entrada s'hi afegeix sota l'entrada "
"prèvia de nivell 1."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:197
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:201
msgid ""
"XPath expression that specifies all tags that should be added to the Table "
"of Contents at level three. Each entry is added under the previous level two "
@@ -1612,50 +1558,49 @@ msgstr ""
"nivell 3 de l'Índex de Continguts. Cada entrada s'hi afegeix sota l'entrada "
"prèvia de nivell 2."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:205
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:209
msgid ""
"Normally, if the source file already has a Table of Contents, it is used in "
"preference to the auto-generated one. With this option, the auto-generated "
"one is always used."
msgstr ""
-"Normalment, si el fitxer d'origen ja disposa d'un Índex de Continguts, "
-"aquest és utilitzat amb preferència a l'autogenerat. Amb aquesta opció "
-"sempre s'utilitza l'auto-generat."
+"Normalment, si el fitxer d'origen ja disposa d'un índex, aquest és utilitzat "
+"amb preferència a l'autogenerat. Amb aquesta opció sempre s'utilitza l'auto-"
+"generat."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:213
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217
msgid "Don't add auto-detected chapters to the Table of Contents."
msgstr ""
"No afegeixis els capítols detectats automàticament a l'índex de continguts"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:220
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224
msgid ""
"If fewer than this number of chapters is detected, then links are added to "
"the Table of Contents. Default: %default"
msgstr ""
-"Si el número de capítols detectats és menor que aquest, aleshores són "
-"afegits els enllaços a l'Índex de Continguts. Per defecte %default"
+"Si el nombre de capítols detectats és menor que aquest s'afegeixen els "
+"enllaços a l'índex. Per defecte %default"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:227
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:231
msgid ""
"Maximum number of links to insert into the TOC. Set to 0 to disable. Default "
"is: %default. Links are only added to the TOC if less than the threshold "
"number of chapters were detected."
msgstr ""
-"Número màxim d'enllaços per afegir a l'Índex de Continguts. Seleccioneu 0 "
-"per a inhabilitar-ho. Per defecte és: %default. Els enllaços són afegits a "
-"l'Índex de Continguts si són detectats menys capítols que el número del "
-"llindar."
+"Nombre màxim d'enllaços per afegir a l'índex. Establiu-lo a 0 per a "
+"inhabilitar-ho. Per defecte és: %default. Els enllaços s'afegeixen a l'índex "
+"si es detecta menys capítols que el nombre d'aquest llindar."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:235
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:239
msgid ""
"Remove entries from the Table of Contents whose titles match the specified "
"regular expression. Matching entries and all their children are removed."
msgstr ""
"Elimina les entrades de l'Índex de Continguts quan els seus títols "
-"coincideixin amb l'expressió especificada. Les entrades coincidents i els "
-"seus subapartats seran eliminades."
+"coincideixin amb l'expressió indicada. Les entrades coincidents i els seus "
+"subapartats seran eliminades."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:246
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:250
msgid ""
"An XPath expression to detect chapter titles. The default is to consider "
"
or
tags that contain the words \"chapter\",\"book\",\"section\" or "
@@ -1669,10 +1614,10 @@ msgstr ""
"\"llibre\", \"secció\" o \"part\" com a títols de capítol a l'igual que les "
"etiquetes que indiquen class=\"capítol\". L'expressió emprada ha d'avaluar "
"un llistat d'elements. Per a inhabilitar aquesta opció, empreu l'opció "
-"\"/\". Veieu el tutorial de XPath al Llibre d'Instruccions de calibre per a "
-"més informació sobre aquesta característica."
+"\"/\". Vegeu el tutorial de XPath al Manual de l'usuari del calibre per a "
+"més informació quant a aquesta característica."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:260
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:264
msgid ""
"Specify how to mark detected chapters. A value of \"pagebreak\" will insert "
"page breaks before chapters. A value of \"rule\" will insert a line before "
@@ -1685,51 +1630,51 @@ msgstr ""
"dels capítols i un valor de \"ambdós\" inserirà un salt de pàgina i una "
"línia per a marcar els capítols."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:270
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:274
msgid ""
"Either the path to a CSS stylesheet or raw CSS. This CSS will be appended to "
"the style rules from the source file, so it can be used to override those "
"rules."
msgstr ""
-"Qualsevol ruta cap a un full d'estil CSS o CSS en brut. Aquest CSS serà "
-"afegit a les pautes d'estil de l'arxiu d'origen, de forma que es pugui "
-"emprar per a modificar aquelles pautes."
+"Qualsevol ruta cap a un full d'estil CSS o CSS en brut. Aquest CSS s'afegirà "
+"a les pautes d'estil del fitxer d'origen, de forma que es pugui emprar per "
+"modificar aquelles pautes."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:279
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:283
msgid ""
"An XPath expression. Page breaks are inserted before the specified elements."
msgstr ""
"Una expressió XPath. Insereix un salt de pàgina abans dels elements definits."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:285
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:289
msgid ""
"Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch"
msgstr ""
"Defineix el marge superior en punts (pts). El valor predeterminat és "
"%default. Nota: 72 pts equival a 1 polzada (2,54 cm)"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:290
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:294
msgid ""
"Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch"
msgstr ""
"Defineix el marge inferior en punts (pts). El valor prederminat són "
"%default. Nota: 72 pts equivalen a 1 polzada (2,54 cm)"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:295
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:299
msgid ""
"Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch"
msgstr ""
"Estableix el marge esquerre en punts (pts). El valor predeterminat són "
"%default. Nota: 72 pt equivalent a 1 polzada (2,54 cm)"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:300
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:304
msgid ""
"Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch"
msgstr ""
"Estableix el marge dret en punts (pts). El valor predeterminat són %default. "
"Nota: 72 pt equivalen a 1 polzada (2,54 cm)"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:306
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:310
msgid ""
"Change text justification. A value of \"left\" converts all justified text "
"in the source to left aligned (i.e. unjustified) text. A value of "
@@ -1737,42 +1682,42 @@ msgid ""
"\"original\" (the default) does not change justification in the source file. "
"Note that only some output formats support justification."
msgstr ""
-"Modifica el valor d'alineament del text. El valor de \"esquerra\" converteix "
-"l'alineament de tot el text de l'arxiu d'origen en text alineat a l'esquerra "
-"(no justificat). Una valor de \"justificat\"converteix tot el text no "
-"justificat en text justificat. Un valor de \"original\" (predeterminat) no "
-"modifica l'alineament de l'arxiu d'origen. Tingueu en compte que només "
-"alguns format de sortida suporten canvis en l'alineament."
+"Modifica el valor d'alineació del text. El valor «esquerra» converteix "
+"l'alineació de tot el text de l'origen en text alineat a l'esquerra (no "
+"justificat). El valor «justificat» converteix tot el text no justificat en "
+"text justificat. El valor «original» (per defecte) no modifica l'alineació "
+"del fitxer d'origen. Només alguns format de sortida donen suporta canvis "
+"d'alineació."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:320
msgid ""
"Remove spacing between paragraphs. Also sets an indent on paragraphs of "
"1.5em. Spacing removal will not work if the source file does not use "
"paragraphs (
or
tags)."
msgstr ""
"Elimina l'espaiament entre paràgrafs. També insereix un sagnat als paràgrafs "
-"d'1.5em. L'eliminació de l'espaiament no funcionarà si l'arxiu d'origen no "
+"d'1.5em. L'eliminació de l'espaiament no funcionarà si el fitxer d'origen no "
"conté paràgrafs (amb les etiquetes
o
)."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:327
msgid ""
"When calibre removes inter paragraph spacing, it automatically sets a "
"paragraph indent, to ensure that paragraphs can be easily distinguished. "
"This option controls the width of that indent."
msgstr ""
-"Quan calibre elimina l'espaiament entre paràgrafs, automàticament insereix "
-"un sagnat als paràgrafs, per tal de garantir que els paràgrafs es podran "
+"Quan el calibre suprimeix l'espaiaat entre paràgrafs, automàticament "
+"insereix un sagnat, per tal de garantir que els paràgrafs es podran "
"distingir fàcilment. Aquesta opció controla l'amplada del sagnat."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:330
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:334
msgid ""
"Use the cover detected from the source file in preference to the specified "
"cover."
msgstr ""
"Estableix la portada detectada a l'arxiu d'origen de forma preferent a la "
-"portada especificada."
+"portada indicada."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:340
msgid ""
"Insert a blank line between paragraphs. Will not work if the source file "
"does not use paragraphs (
or
tags)."
@@ -1780,34 +1725,32 @@ msgstr ""
"Insereix una línia en blanc entre paràgrafs. No funciona si el fitxer "
"d'origen no indica els paràgrafs (amb les etiquetes
o
)."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:343
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:347
msgid ""
"Remove the first image from the input ebook. Useful if the first image in "
"the source file is a cover and you are specifying an external cover."
msgstr ""
"Elimina la primera imatge del llibre electrònic seleccionat. És útil si la "
-"primera imatge de l'arxiu d'origen és una portada i voleu especificar una "
+"primera imatge del fitxer d'origen és una portada i voleu especificar una "
"altra portada."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:351
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:355
msgid ""
"Insert the book metadata at the start of the book. This is useful if your "
"ebook reader does not support displaying/searching metadata directly."
msgstr ""
-"Insereix les metadades del llibre a l'inici del llibre. És útil si el seu "
-"dispositiu lector de llibres electrònics no és compatible amb mostra/cerca "
-"les metadades de forma directa."
+"Insereix les metadades del llibre a l'inici del llibre. És útil si el vostre "
+"lector no permet mostrar/cercar les metadades de forma directa."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:363
msgid ""
"Attempt to detect and correct hard line breaks and other problems in the "
"source file. This may make things worse, so use with care."
msgstr ""
"Intenta detectar i corregir errades greus i altres problemes al fitxer "
-"d'origen. Això podria empitjorar les coses, de manera que empreu aquesta "
-"opció amb compte."
+"d'origen. Compte, podria empitjorar les coses."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:371
msgid ""
"Scale used to determine the length at which a line should be unwrapped if "
"preprocess is enabled. Valid values are a decimal between 0 and 1. The "
@@ -1821,7 +1764,7 @@ msgstr ""
"llibres típics amb salts de línia dura, però s'ha de reduir si la longitud "
"de línia és variable."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:376
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380
msgid ""
"Convert plain quotes, dashes and ellipsis to their typographically correct "
"equivalents. For details, see http://daringfireball.net/projects/smartypants"
@@ -1830,31 +1773,31 @@ msgstr ""
"tipogràfics correctes. Vegeu http://daringfireball.net/projects/smartypants "
"per a més detalls"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:384
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:388
msgid "Use a regular expression to try and remove the header."
msgstr "Usa una expressió regular per a tractar i suprimir la capçalera"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:391
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:395
msgid "The regular expression to use to remove the header."
msgstr "L'expressió per a substituir la capçalera."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:397
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401
msgid "Use a regular expression to try and remove the footer."
msgstr "usa una expressió regular per a tractar i suprimir el peu de pàgina."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:404
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:408
msgid "The regular expression to use to remove the footer."
msgstr "L'expressió per a substituir el peu de pàgina."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:411
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:415
msgid ""
"Read metadata from the specified OPF file. Metadata read from this file will "
"override any metadata in the source file."
msgstr ""
-"Llegeix les metadades de l'arxiu OPF especificat. Les metadades extretes "
-"d'aquest arxiu substituiran les metadades de l'arxiu d'origen."
+"Llegeix les metadades de l'arxiu OPF indicat. Les metadades extretes "
+"d'aquest fitxer substituiran les metadades del fitxer d'origen."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422
msgid ""
"Transliterate unicode characters to an ASCII representation. Use with care "
"because this will replace unicode characters with ASCII. For instance it "
@@ -1871,7 +1814,7 @@ msgstr ""
"emprada per la població més nombrosa serà seleccionada (el Xinès a l'exemple "
"anterior)."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:433
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437
msgid ""
"Preserve ligatures present in the input document. A ligature is a special "
"rendering of a pair of characters like ff, fi, fl et cetera. Most readers do "
@@ -1880,115 +1823,115 @@ msgid ""
"corresponding pair of normal characters. This option will preserve them "
"instead."
msgstr ""
-"Preservar les lligadures presents en el document d'entrada. Una lligadura es "
-"un render especial de parells de caràcters tipus ff, fi, fl etc. Molts "
-"lectors, a les seves fonts per defecte, no ten suport per a dites "
-"lligadures, pel qual és poc probable que les renderitze correctament. Per "
-"defecte, calibre canviarà la lligadura per el seu parell de caràcters "
-"normals corresponents. Aquesta opció serà conservada en el seu lloc."
+"Conserva les lligadures del document d'entrada. Una lligadura es una "
+"renderització especial de parells de caràcters tipus ff, fi, fl.... Molts "
+"lectors, a les seves fonts per defecte, no són compatibles amb les "
+"lligadures i és poc probable que les renderitzin correctament. Per defecte, "
+"el calibre canvia la lligadura pel seu parell de caràcters normals "
+"corresponents. Aquesta opció fa que les lligadures en conservin."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38
msgid "Set the title."
msgstr "Establiu el títol"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453
msgid "Set the authors. Multiple authors should be separated by ampersands."
msgstr ""
"Establiu els autors. Si hi ha diversos autors, haurieu de separar-los amb el "
"caràcter \"&\"."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458
msgid "The version of the title to be used for sorting. "
msgstr "La versió del títol a emprar per classificar. "
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462
msgid "String to be used when sorting by author. "
msgstr "Text que s'usarà en l'ordenació per autor. "
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462
-msgid "Set the cover to the specified file or URL"
-msgstr "Col·locar la portada des del fitxer especificat o URL"
-
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:466
+msgid "Set the cover to the specified file or URL"
+msgstr "Estableix la portada des del fitxer o URL indicats"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:470
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54
msgid "Set the ebook description."
msgstr "Establiu la descripció del llibre electrònic."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:470
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:474
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56
msgid "Set the ebook publisher."
msgstr "Establiu l'editorial del llibre electrònic."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:474
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:478
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60
msgid "Set the series this ebook belongs to."
msgstr "Establiu la sèria a la que pertany el llibre electrònic."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:478
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62
msgid "Set the index of the book in this series."
msgstr "Col·locar l'index del llibre a aquesta serie."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64
msgid "Set the rating. Should be a number between 1 and 5."
msgstr "Establiu la valoració. Ha de ser un nombre entre 1 i 5."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:490
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66
msgid "Set the ISBN of the book."
msgstr "Establiu el codi ISBN del llibre."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:490
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:494
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:68
msgid "Set the tags for the book. Should be a comma separated list."
msgstr ""
"Col·locar les etiquetes al llibre. Ha de ser una llista separada per comes."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:494
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:498
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70
msgid "Set the book producer."
msgstr "Establiu el productor del llibre."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:498
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:502
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72
msgid "Set the language."
msgstr "Establiu la llengua."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:502
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:506
msgid "Set the publication date."
msgstr "Col·locar la data de publicació."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:506
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:510
msgid "Set the book timestamp (used by the date column in calibre)."
msgstr ""
-"Col·locar la data i l'hora al llibre (utilitzat per la columna data al "
+"Estableix la marca horària al llibre (utilitzat per la columna data al "
"calibre)."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:606
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:610
msgid "Could not find an ebook inside the archive"
msgstr "No s'ha pogut trobar cap llibre electrònic dins de l'arxiu"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:664
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:668
msgid "Values of series index and rating must be numbers. Ignoring"
msgstr ""
-"Els valors de l'índex de la serie i la seva puntuació han de ser números. "
-"Ignorant"
+"Els valors de l'índex de la serie i la seva valoració han de ser nombres. "
+"S'ignora"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:671
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:675
msgid "Failed to parse date/time"
msgstr "No s'ha pogut analitzar la data/hora"
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:826
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:830
msgid "Converting input to HTML..."
msgstr "S'està convertint l'entrada a HTML..."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:853
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:858
msgid "Running transforms on ebook..."
msgstr "S'estàn transformant el llibre electrònic..."
-#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:940
+#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:945
msgid "Creating"
msgstr "S'està creant"
@@ -2029,16 +1972,16 @@ msgid ""
msgstr ""
"%prog [opcions] fitxer.epub\n"
"\n"
-"Arregla els problemes més comuns als fitxers EPUB que poden causar ésser "
-"rebutjats per un servei de publicació amb pobre disseny.\n"
+"Arregla els problemes més comuns als fitxers EPUB que poden fer que se'ls "
+"rebutgi en serveis de publicació mal dissenyats.\n"
"\n"
-"De manera predeterminada, no arreglant és correcte i els missatges són "
-"impresos per cada error detectat. Faci servir les opcions per controlar "
-"quins errors han estat automàticament arreglats."
+"Per defecte, no s'arregla i els missatges s'imprimeixen per a cada error "
+"detectat. Feu servir les opcions per controlar quins errors s'arreglaran "
+"automàticament."
#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:52
msgid "You must specify an epub file"
-msgstr "Ha d'especificar un fitxer epub."
+msgstr "Heu d'especificar un fitxer epub."
#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:17
msgid "Fix unmanifested files"
@@ -2050,20 +1993,19 @@ msgid ""
"delete them as specified by the delete unmanifested option."
msgstr ""
"Corregeix fitxers sense declarar. epub-fix pot afegir-los al manifest o "
-"esborrar-los tal com s'especifiqui a l'opció \"esborra fitxers sense "
-"declarar\""
+"esborrar-los tal com s'indiqui a l'opció \"esborra fitxers sense declarar\""
#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:32
msgid "Delete unmanifested files instead of adding them to the manifest"
-msgstr "Elimina arxius no manifestats enlloc de afegir-los al manifest"
+msgstr "Suprimeix fitxers no manifestats en lloc d'afegir-los al manifest"
#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:56
msgid ""
"Extract the contents of the generated EPUB file to the specified directory. "
"The contents of the directory are first deleted, so be careful."
msgstr ""
-"Extregui el contingut del fitxer generat EPUB al directori especificat. Els "
-"continguts del directori s'esborraran en primer lloc, tingui compte."
+"Extreu el contingut del fitxer generat EPUB a la carpeta indicada. Compte, "
+"abans s'esborraran els continguts de la carpeta."
#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:62
msgid ""
@@ -2073,12 +2015,11 @@ msgid ""
"if your source file contains a very large number of page breaks, you should "
"turn off splitting on page breaks."
msgstr ""
-"Desactivi les divisions als salts de línia. Normalment, els fitxers "
-"d'entrada es divideixen en dos automàticament a cada salt de pàgina. Això li "
-"dóna un llibre electrònic (e-book) de sortida que es pot analitzar més ràpid "
-"i amb menys recursos. Si més no, la divisió és lenta i si el seu fitxer "
-"d'origen conté un gran número de salts de pàgina, vostè ha de desactivar la "
-"divisió dels salts de pàgina."
+"Desactiva les divisions als salts de línia. Normalment, els fitxers "
+"d'entrada es divideixen en dos automàticament a cada salt de pàgina. Així "
+"s'obté un llibre que es pot analitzar més ràpid i amb menys recursos. La "
+"divisió però, és lenta i si el vostre fitxer d'origen conté un gran nombre "
+"de salts de pàgina, hauríeu de desactivar la divisió als salts de pàgina."
#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:73
msgid ""
@@ -2086,10 +2027,10 @@ msgid ""
"most EPUB readers cannot handle large file sizes. The default of %defaultKB "
"is the size required for Adobe Digital Editions."
msgstr ""
-"Divideix tots els fitxers HTML majors d'aquesta mida (en KB). Això es "
-"necessari perquè la majoria de lectors EPUB no poden manegar els fitxers de "
-"gran mida. El valor predeterminat de %defaultKB es la mida requerida per "
-"Adobe Digital Editions."
+"Divideix tots els fitxers HTML més grans d'aquesta mida (en KB). Això és "
+"necessari perquè la majoria de lectors EPUB no poden gestionar fitxers "
+"grans. El valor per defecte de %defaultKB és la mida que l'Adobe Digital "
+"Editions requereix."
#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:80
msgid ""
@@ -2097,9 +2038,9 @@ msgid ""
"default cover is generated with the title, authors, etc. This option "
"disables the generation of this cover."
msgstr ""
-"Normalment, si el fitxer d'entrada no te tapa i no s'especifica una, es "
-"genera una tapa per defecte amb el títol, autors, etc. Aquesta opció "
-"deshabilita la generació d'aquesta tapa."
+"Normalment, si el fitxer d'entrada no té portada i no n'especifiqueu cap, es "
+"genera una portada per defecte amb el títol, autors, etc. Aquesta opció "
+"inhabilita la generació d'aquesta portada."
#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:86
msgid ""
@@ -2108,10 +2049,10 @@ msgid ""
"JetBook Lite. Without this option, such devices will display the cover as a "
"blank page."
msgstr ""
-"No fer servir una caràtula SVG. Faci servir aquesta opció si el seu EPUB "
-"serà fet servir a un dispositiu que no té suport per a SVG, com per exemple "
-"l'iPhone o bé JetBook Lite. Sense aquesta opció, aquests dispositius "
-"mostrarà la caràtula com una pàgina en blanc."
+"No facis servir una portada SVG. Feu servir aquesta opció si el vostre EPUB "
+"es farà servir a un dispositiu que no té suport per a SVG, com l'iPhone o el "
+"JetBook Lite. Sense aquesta opció, aquests dispositius mostraran una portada "
+"en blanc."
#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:94
msgid ""
@@ -2121,14 +2062,15 @@ msgid ""
"and bottom of the image, but the image will never be distorted. Without this "
"option the image may be slightly distorted, but there will be no borders."
msgstr ""
-"Quan s'utilitza una tapa SVG, aquesta opció farà que s'escali la tapa per "
-"cobrir l'àrea de pantalla disponible, però encara conservarà la seva relació "
+"Quan s'utilitza una portada SVG, aquesta opció fa que s'escali per cobrir "
+"l'àrea de pantalla disponible, però encara conservarà la seva relació "
"d'aspecte (relació entre l'amplada i l'altura). Això significa que pot haver "
-"cantons blancs als costats o a la part superior i inferior de la imatge, "
+"bores blanques als costats o a la part superior i inferior de la imatge, "
"però la imatge mai es distorsiona. Sense aquesta opció, la imatge pot estar "
-"una mica distorsionada, però no hi haurà fronteres."
+"una mica distorsionada, però no hi haurà bores."
-#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:169
+#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:170
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:205
msgid "Start"
msgstr "Inici"
@@ -2165,8 +2107,8 @@ msgid ""
"Traverse links in HTML files breadth first. Normally, they are traversed "
"depth first."
msgstr ""
-"Travessia d'enllaços en fitxers HTML primerament per extensió. Normalment, "
-"són primerament travessats per profunditat."
+"Recorre els enllaços dels fitxers HTML primer per amplitud. Normalment es "
+"recorren primer per profunditat."
#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:256
msgid ""
@@ -2185,10 +2127,10 @@ msgid ""
"can result in various nasty side effects in the rest of of the conversion "
"pipeline."
msgstr ""
-"Normalment aquest complement d'entrada recol.loca tots els arxius d'entrada "
-"en un arbre de carpetes estàndard. Utilitza aquesta opció només si sap el "
-"que està fent, ja que pot ocasionar diversos efectes desagradables a la "
-"resta del procés de conversió."
+"Normalment aquest complement d'entrada recol·loca tots els fitxers d'entrada "
+"en un arbre de carpetes estàndard. Aquesta opció només s'ha de fer servir si "
+"es té clar el que s'està fent, ja que pot ocasionar diversos efectes "
+"desagradables a la resta del procés de conversió."
#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273
msgid ""
@@ -2196,8 +2138,8 @@ msgid ""
"conversion of a PDF file. Default is %default which disables this."
msgstr ""
"Longitud de línia mitjana per a la divisió de línies si l'HTML ve d'una "
-"conversió parcial prèvia d'un arxiu PDF. El valor per defecte és %default, "
-"que desactiva aquesta opció."
+"conversió parcial prèvia d'un fitxer PDF. El valor per defecte és %default, "
+"que ho desactiva."
#: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47
msgid "Creating LIT file from EPUB..."
@@ -2347,7 +2289,7 @@ msgstr "Converteix LRS a LRS, és útil per a fer depuració."
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:457
msgid "Invalid LRF file. Could not set metadata."
-msgstr "Fitxer LRF no vàlid. No s'ha pogut assignar metadades."
+msgstr "Fitxer LRF no vàlid. No s'ha pogut assignar les metadades."
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:582
msgid ""
@@ -2363,11 +2305,67 @@ msgstr ""
"Visualitza o edita les metadades d'un fitxer LRF.\n"
"\n"
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589
+msgid "Set the book title"
+msgstr "Indiqueu el nom del llibre"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591
+msgid "Set sort key for the title"
+msgstr "Indiqueu la clau d'ordenació per títol"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593
+msgid "Set the author"
+msgstr "Indiqueu l'autor"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595
+msgid "Set sort key for the author"
+msgstr "Indiqueu la clau d'ordenació per autor"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597
+msgid "The category this book belongs to. E.g.: History"
+msgstr "Categoria a la que pertany el llibre. Per exemple, Història"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600
+msgid "Path to a graphic that will be set as this files' thumbnail"
+msgstr "Camí al fitxer d'imatge que s'utilitzarà com a miniatura"
+
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:603
msgid ""
"Path to a txt file containing the comment to be stored in the lrf file."
msgstr "Camí al fitxer txt que conté el comentari a desar en el fitxer LRF"
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607
+msgid "Extract thumbnail from LRF file"
+msgstr "Extreu la miniatura del fitxer LRF"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608
+msgid "Set the publisher"
+msgstr "Establiu l'editorial"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609
+msgid "Set the book classification"
+msgstr "Establiu la classificació del llibre"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610
+msgid "Set the book creator"
+msgstr "Establiu el creador del llibre"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611
+msgid "Set the book producer"
+msgstr "Establiu el productor del llibre"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613
+msgid ""
+"Extract cover from LRF file. Note that the LRF format has no defined cover, "
+"so we use some heuristics to guess the cover."
+msgstr ""
+"Extreu la portada del fitxer LRF. Tingueu en compte el format LRF no té "
+"definida portada i s'aplicarà l'heurística per endevinar-la."
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615
+msgid "Set book ID"
+msgstr "Indiqueu l'ID (identificador) del llibre"
+
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90
msgid "Enable autorotation of images that are wider than the screen width."
msgstr ""
@@ -2435,17 +2433,13 @@ msgstr "Família de lletres monoespaiades per a incrustar."
msgid "Comic"
msgstr "Còmic"
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:85
-msgid "EDITORIAL REVIEW"
-msgstr "REVISIÓ EDITORIAL"
-
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:41
msgid ""
"Extract common e-book formats from archives (zip/rar) files. Also try to "
"autodetect if they are actually cbz/cbr files."
msgstr ""
-"Extreure els formats de llibre digital comuns de fitxers (zip / rar). També "
-"intenta detectar automàticament si es tracta de fitxers cbz/cbr."
+"Extreu els formats de llibre habituals d'arxius (zip /rar). També intenta "
+"detectar automàticament si són fitxers cbz/cbr."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:114
msgid "TEMPLATE ERROR"
@@ -2453,33 +2447,35 @@ msgstr "ERROR A LA PLANTILLA"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:533
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448
msgid "No"
msgstr "No"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:533
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448
msgid "Yes"
msgstr "Sí"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:378
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:924
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:289
-#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:589
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:380
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:930
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:303
+#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569
msgid "Title"
msgstr "Títol"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:383
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:385
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:931
msgid "Author(s)"
msgstr "Autor(s)"
@@ -2499,10 +2495,11 @@ msgstr "Productor"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:213
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:332
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1132
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1138
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178
msgid "Comments"
msgstr "Comentaris"
@@ -2512,8 +2509,9 @@ msgstr "Comentaris"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1128
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:146
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1134
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:608
msgid "Tags"
msgstr "Etiquetes"
@@ -2523,8 +2521,8 @@ msgstr "Etiquetes"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:337
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1137
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:94
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1143
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:108
msgid "Series"
msgstr "Sèries"
@@ -2533,7 +2531,7 @@ msgid "Language"
msgstr "Llengua"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:616
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1120
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1126
msgid "Timestamp"
msgstr "Marca de temps"
@@ -2541,7 +2539,7 @@ msgstr "Marca de temps"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:151
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:244
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:258
msgid "Published"
msgstr "Publicat"
@@ -2567,11 +2565,11 @@ msgid ""
"silently ignored.\n"
msgstr ""
"\n"
-"Llegir / escriure metadades de / a fitxers de llibre electrònic.\n"
+"Llegeix /desa metadades de/en fitxers de llibre electrònic.\n"
"\n"
-"Formats suportats per llegir metadades: %s\n"
+"Formats compatibles per llegir metadades: %s\n"
"\n"
-"Formats suportats per escriure metadades: %s\n"
+"Formats compatibles per desar metadades: %s\n"
"\n"
"Els diferents tipus de fitxer admeten diferents tipus de metadades. Si "
"s'intenten establir metadades en un tipus de fitxer que no els suporta, les "
@@ -2590,20 +2588,20 @@ msgid ""
"The version of the title to be used for sorting. If unspecified, and the "
"title is specified, it will be auto-generated from the title."
msgstr ""
-"La versió del títol que es fes servir per ordenar. Si no s'especifica "
-"aquesta opció i sí el títol, es generarà automàticament a partir del títol."
+"La versió del títol que es farà servir per ordenar. Si no s'indica aquesta "
+"opció i el títol sí, es generarà automàticament a partir del títol."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:48
msgid ""
"String to be used when sorting by author. If unspecified, and the author(s) "
"are specified, it will be auto-generated from the author(s)."
msgstr ""
-"Text que es farà servir per ordenar per autor. Si no s'especifica aquesta "
-"opció i si l'autor (s), es generarà automàticament a partir de l'autor (s)."
+"Text que es farà servir per ordenar per autor. Si no s'indica aquesta opció "
+"i l'autor(s) sí, es generarà automàticament a partir de l'autor(s)."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:52
msgid "Set the cover to the specified file."
-msgstr "Estableix el fitxer especificiat com a portada"
+msgstr "Estableix el fitxer indicat com a portada"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:58
msgid "Set the book category."
@@ -2616,15 +2614,14 @@ msgstr "Establir la data de publicació."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77
msgid "Get the cover from the ebook and save it at as the specified file."
msgstr ""
-"Aconsegueix caràtules del ebook i guarda-les com el fitxer especificat."
+"Aconsegueix portades del llibre i desa-les en el fitxer que s'indica."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:80
msgid ""
"Specify the name of an OPF file. The metadata will be written to the OPF "
"file."
msgstr ""
-"Especifica el nom d'un fitxer OPF. La metainformació serà escrita juntament "
-"al fitxer OPF."
+"Especifica el nom d'un fitxer OPF. Les metadades es desen al fitxer OPF."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:83
msgid ""
@@ -2632,17 +2629,17 @@ msgid ""
"ebook. Metadata specified on the command line will override metadata read "
"from the OPF file"
msgstr ""
-"Llegeix la metainformació des d'un fitxer OPF específic i la fa servir com a "
-"metainfornació al ebook. La metainformació especificada a la línia d'ordres "
-"serà sobreescriurà la metainformació llegida del fitxer OPF."
+"Llegeix la metadades des d'un fitxer OPF determinat i la fa servir com a "
+"metadades al llibre. Les metadades indicades a la línia d'ordres "
+"substituiran les del fitxer OPF."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:88
msgid "Set the BookID in LRF files"
-msgstr "Establiu el BookID en fitxers LRF"
+msgstr "Estableix el BookID en fitxers LRF"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:153
msgid "No file specified"
-msgstr "No s'ha especificat cap fitxer"
+msgstr "No s'ha indicat cap fitxer"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:168
msgid "Original metadata"
@@ -2658,19 +2655,19 @@ msgstr "OPF creat en"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:203
msgid "Cover saved to"
-msgstr "Portada desada a"
+msgstr "S'ha desat la portada a"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:205
msgid "No cover found"
-msgstr "No s'ha trobat cap caràtula"
+msgstr "No s'ha trobat cap portada"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28
msgid "Cover download"
-msgstr "Caràtula descarregada."
+msgstr "Descàrrega de portades"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:80
msgid "Download covers from openlibrary.org"
-msgstr "Descarrega les portades desde openlibrary.org"
+msgstr "Descarrega portades des d'openlibrary.org"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:108
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:137
@@ -2679,7 +2676,7 @@ msgstr "ISBN: no s'ha trobat %s"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:118
msgid "Download covers from librarything.com"
-msgstr "Descarrega les portades desde librarything.com"
+msgstr "Descarrega portades des de librarything.com"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:129
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:69
@@ -2692,8 +2689,8 @@ msgid ""
"Could not fetch cover as server is experiencing high load. Please try again "
"later."
msgstr ""
-"No s'ha pogut aconseguir la caràtula, el servidor està experimentant una "
-"càrrega molt alta. Si us plau, provi-ho de nou més tard."
+"No s'ha pogut aconseguir la portada, el servidor està experimentant una "
+"càrrega molt alta. Torneu a intentar-ho més tard."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:140
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:80
@@ -2711,15 +2708,15 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42
msgid "Downloads metadata from Douban.com"
-msgstr "Descarrega metainformació des de Douban.com"
+msgstr "Descarrega les metadades des de Douban.com"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:51
msgid "Metadata download"
-msgstr "Metadades baixades"
+msgstr "Metadades descarregades"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128
msgid "ratings"
-msgstr "classificació"
+msgstr "valoracions"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128
msgid "tags"
@@ -2735,28 +2732,28 @@ msgstr "Descarrega %s des de %s"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156
msgid "Downloads metadata from Google Books"
-msgstr "Descarrega metainformació des de Google Books."
+msgstr "Descarrega metadades des de Google Books."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:173
msgid "Downloads metadata from isbndb.com"
-msgstr "Descarrega metainformació des de isbndb.com"
+msgstr "Descarrega les metadades des d'isbndb.com"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:201
msgid ""
"To use isbndb.com you must sign up for a %sfree account%s and enter your "
"access key below."
msgstr ""
-"Per a fes servir isbndb.com hauria de identificar-se a %sfree compte%s i "
-"desprès introduir-hi la seva clau d'accés a sota."
+"Registreu un %scompte gratuït%s i introduïu la vostra clau d'accés a "
+"continuació per fer servir isbndb.com"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:211
msgid "Downloads social metadata from amazon.com"
-msgstr "Descarrega metainformació social des d'amazon.com"
+msgstr "Descarrega metadades socials des d'amazon.com"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230
msgid "Downloads series/tags/rating information from librarything.com"
msgstr ""
-"Descarrega informació de series, etiquetes i qualificacions des de "
+"Descarrega informació de sèries, etiquetes i valoracions des de "
"librarything.com"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109
@@ -2775,9 +2772,9 @@ msgstr ""
"\n"
"%prog [opcions] clau\n"
"\n"
-"Obté metainformació de llibres des de isndb.com. Pot especificar "
-"l'identificador ISBN del llibre o bé el seu títol i autor. Si vostè "
-"especifica el títol i l'autor, serà retornat més d'un llibre.\n"
+"Aconsegueix metadades de llibres des d'isndb.com. Podeu especificar "
+"l'identificador ISBN del llibre o bé el seu títol i autor. Si especifiqueu "
+"el títol i l'autor podeu obtenir més d'un llibre.\n"
"\n"
"La clau, és la clau del compte que vostè genera desprès de registrar-ne un "
"compte gratuit a isbndb.com.\n"
@@ -2785,8 +2782,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120
msgid "The ISBN ID of the book you want metadata for."
-msgstr ""
-"L'identificador ISBN del llibre del qual vostè en vol la metainformació."
+msgstr "L'ISBN del llibre que voleu les metadades."
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122
msgid "The author whose book to search for."
@@ -2815,11 +2811,11 @@ msgstr ""
"\n"
"%prog [opcions] ISBN\n"
"\n"
-"Aconsegueix una portada imatge o bé metainformació social per al llibre "
-"identificat mitjançant ISBN des de LibrqaryThing.com\n"
+"Aconsegueix una imatge de portada o bé metadades socials per al llibre "
+"identificat amb ISBN des de LibraryThing.com\n"
-#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1303
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1397
+#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399
msgid "Cover"
msgstr "Portada"
@@ -2848,13 +2844,14 @@ msgstr "Títol per qualsevol índex generat en línia."
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37
msgid "Disable compression of the file contents."
-msgstr "Desactiva la compressió del contigut de l'arxiu"
+msgstr "Desactiva la compressió del contingut del fitxer"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:40
msgid "Tag marking book to be filed with Personal Docs"
-msgstr "Etiquetar el llibre marcat per a ser arxivat com documents personals"
+msgstr ""
+"Marca el llibre amb etiquetes per arxivar-lo amb els documents personals"
-#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:108
+#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:107
msgid "All articles"
msgstr "Tots els articles"
@@ -2862,70 +2859,70 @@ msgstr "Tots els articles"
msgid "This is an Amazon Topaz book. It cannot be processed."
msgstr "Aquest és un llibre Amazon Topaz. No es pot processar"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1398
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400
msgid "Title Page"
msgstr "Pàgina del títol"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:199
msgid "Table of Contents"
msgstr "Índex"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402
msgid "Index"
msgstr "Índex"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403
msgid "Glossary"
msgstr "Glossari"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404
msgid "Acknowledgements"
msgstr "Reconeixements"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405
msgid "Bibliography"
msgstr "Bibliografia"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406
msgid "Colophon"
msgstr "Colofó"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407
msgid "Copyright"
msgstr "Drets d'autor"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408
msgid "Dedication"
msgstr "Dedicatòria"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409
msgid "Epigraph"
msgstr "Epígraf"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410
msgid "Foreword"
msgstr "Prefaci"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411
msgid "List of Illustrations"
msgstr "Índex d'il·lustracions"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412
msgid "List of Tables"
msgstr "Índex de taules"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413
msgid "Notes"
msgstr "Anotacions"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414
msgid "Preface"
msgstr "Pròleg"
-#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413
+#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415
msgid "Main Text"
msgstr "Text principal"
@@ -2944,6 +2941,7 @@ msgstr "Opcions de generació del HTML TOC."
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:153
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:606
msgid "Rating"
msgstr "Valoració"
@@ -2983,9 +2981,9 @@ msgid ""
"Normally calibre treats blank lines as paragraph markers. With this option "
"it will assume that every line represents a paragraph instead."
msgstr ""
-"Habitualment, calibre tracta les línies en blanc com a indicador de "
-"paràgraf. Aquesta opció assumeix que cada línia representa un paràgraf "
-"pròpiament."
+"Habitualment el calibre tracta les línies en blanc com a indicador de "
+"paràgraf. En canvi, aquesta opció assumeix que cada línia representa un "
+"paràgraf."
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27
@@ -2996,10 +2994,10 @@ msgid ""
"spaces) represents a paragraph. Paragraphs end when the next line that "
"starts with an indent is reached."
msgstr ""
-"Habitualment, calibre tracta les línies en blanc com a indicador de "
-"paràgraf. Amb aquesta opció s'assumeix que cada línia començada amb sagnat "
-"(ja sigui una tabulació o més de dos espais) representa un paràgraf. El "
-"paràgraf acaba quan la següent línia comença amb un sagnat assolit."
+"Habitualment, el calibre tracta les línies en blanc com a indicador de "
+"paràgraf. Aquesta opció assumeix que cada línia començada amb sagnat (ja "
+"sigui una tabulació o més de dos espais) representa un paràgraf. El paràgraf "
+"acaba quan es troba la següent línia que comença amb un sagnat."
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23
msgid "Format to use inside the pdb container. Choices are:"
@@ -3058,9 +3056,9 @@ msgid ""
msgstr ""
"[options] arxiu.pdf\n"
"\n"
-"Divideix un arxiu PDF.\n"
+"Talla un fitxer PDF.\n"
"representa un salt de línia. Comença una nova línia en la posició equivalent "
-"de la traducció\n"
+"de la traducció.\n"
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:38
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:32
@@ -3072,30 +3070,30 @@ msgstr ""
msgid ""
"Path to output file. By default a file is created in the current directory."
msgstr ""
-"Ruta de l'arxiu de sortida. Per defecte l'arxiu es crea en la carpeta actual."
+"Camí al fitxer de sortida. Per defecte el fitxer es crea a la carpeta actual."
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:41
msgid "Number of pixels to crop from the left most x (default is %s)"
msgstr ""
-"Número de píxels que s'ha de retallar de l'extrem esquerre de la x (%s per "
+"Nombre de píxels que s'ha de retallar de l'extrem esquerre de la x (%s per "
"defecte)"
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:44
msgid "Number of pixels to crop from the left most y (default is %s)"
msgstr ""
-"Número de píxels que s'ha de retallar de l'extrem esquerre de la y (%s per "
+"Nombre de píxels que s'ha de retallar de l'extrem esquerre de la y (%s per "
"defecte)"
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:47
msgid "Number of pixels to crop from the right most x (default is %s)"
msgstr ""
-"Número de píxels que s'ha de retallar de l'extrem dret de la x (%s per "
+"Nombre de píxels que s'ha de retallar de l'extrem dret de la x (%s per "
"defecte)"
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:50
msgid "Number of pixels to crop from the right most y (default is %s)"
msgstr ""
-"Número de píxels que s'ha de retallar de l'extrem dret de la y (%s per "
+"Nombre de píxels que s'ha de retallar de l'extrem dret de la y (%s per "
"defecte)"
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:53
@@ -3103,8 +3101,8 @@ msgid ""
"A file generated by ghostscript which allows each page to be individually "
"cropped `gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox file.pdf 2> bounding`"
msgstr ""
-"Un arxiu generat per ghostscript que permet retallar cada pàgina per separat "
-"`gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox arxiu.pdf 2> bounding`"
+"Un fitxer generat per ghostscript que permet retallar cada pàgina per "
+"separat «gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox arxiu.pdf 2> bounding»"
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73
msgid "Crop Options:"
@@ -3126,7 +3124,7 @@ msgid ""
"\n"
"Decrypt a PDF.\n"
msgstr ""
-"[opcions] arxiu.pdf password\n"
+"[opcions] fitxer.pdf password\n"
"\n"
"Desencripta un PDF.\n"
@@ -3140,7 +3138,7 @@ msgid ""
"\n"
"Encrypt a PDF.\n"
msgstr ""
-"[opcions] arxiu.pdf password\n"
+"[opcions] fitxer.pdf password\n"
"\n"
"Encripta un PDF.\n"
@@ -3154,7 +3152,7 @@ msgid ""
"\n"
"Get info about a PDF.\n"
msgstr ""
-"arxiu.pdf ...\n"
+"fitxer.pdf ...\n"
"\n"
"Obté informació sobre un PDF.\n"
@@ -3192,9 +3190,9 @@ msgid ""
"\n"
"Merges individual PDFs.\n"
msgstr ""
-"[opcions] arxiu1.pdf arxiu2.pdf ...\n"
+"[opcions] fitxer1.pdf fitxer2.pdf ...\n"
"\n"
-"S'utilitzaran les metadades del primer PDF especificat.\n"
+"S'utilitzaran les metadades del primer PDF indicat.\n"
"\n"
"Uneix PDFs individuals.\n"
@@ -3208,7 +3206,7 @@ msgid ""
"\n"
"Reverse a PDF.\n"
msgstr ""
-"[opcions] arxiu.pdf\n"
+"[opcions] fitxer.pdf\n"
"\n"
"Inverteix un PDF.\n"
@@ -3222,7 +3220,7 @@ msgid ""
"\n"
"Rotate pages of a PDF clockwise.\n"
msgstr ""
-"arxiu.pdf graus\n"
+"fitxer.pdf graus\n"
"\n"
"Rota les pàgines d'un PDF en sentit horari\n"
@@ -3273,17 +3271,17 @@ msgid ""
"The size of the paper. This size will be overridden when an output profile "
"is used. Default is letter. Choices are %s"
msgstr ""
-"Tamany de paper. Aquest tamany serà sobreescrit quan s'utilitzi un perfil de "
-"sortida. Per defecte és letter. Les opcions són %s"
+"Mida del paper. Es sobreescriu quan es fa servir un perfil de sortida. Per "
+"defecte és Letter. Les opcions són %s"
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:40
msgid ""
"Custom size of the document. Use the form widthxheight EG. `123x321` to "
"specify the width and height. This overrides any specified paper-size."
msgstr ""
-"Mida personalitzada del document. Utilitza el format ampladaxalçada, per "
-"exemple `123x321`per especificar l'amplada i l'alçada. Això sobreescriu "
-"qualsevol mida de paper especificada."
+"Mida personalitzada del document. Feu servir el format amplada x alçada, per "
+"exemple «123 x 321» per indicar l'amplada i l'alçada. Això substitueix "
+"qualsevol mida de paper que s'hagi indicat abans."
#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:45
msgid "The orientation of the page. Default is portrait. Choices are %s"
@@ -3316,10 +3314,11 @@ msgid ""
"first and then try it.\n"
"%s"
msgstr ""
-"Aquest arxiu RTF té una característica que calibre no suporta. Primer "
-"converteix-lo a HTML i després prova-ho.\n"
+"Aquest fitxer RTF té una característica que no és compatible amb el calibre. "
+"Convertiu-lo abans HTML i proveu-ho.\n"
"%s"
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:32
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23
msgid ""
"Specify the character encoding of the output document. The default is utf-8."
@@ -3327,6 +3326,33 @@ msgstr ""
"Especifica la condificació de caracters del document de sortida. Per defecte "
"és utf-8"
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:39
+#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38
+msgid ""
+"The maximum number of characters per line. This splits on the first space "
+"before the specified value. If no space is found the line will be broken at "
+"the space after and will exceed the specified value. Also, there is a "
+"minimum of 25 characters. Use 0 to disable line splitting."
+msgstr ""
+"El nombre màxim de caràcters per línia. Això divideix la línia al primer "
+"espai abans del valor que s'indica. Si no hi ha cap espai la línia es "
+"dividirà a l'espai següent i sobrepassarà el valor que s'indiqui. El valor "
+"mínim és de 25 caràcters. Feu servir 0 per desactivar la divisió de línies."
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:124
+msgid "Start Page"
+msgstr "Pàgina d'inici"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:134
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:136
+msgid "Cover Pages"
+msgstr "Pàgines de portada"
+
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:149
+#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:152
+msgid " (Preface)"
+msgstr " (Pròleg)"
+
#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27
msgid ""
"Specify the compression level to use. Scale 1 - 10. 1 being the lowest "
@@ -3375,19 +3401,6 @@ msgstr ""
"Especifica la codificació de caracters del document de sortida. Per defecte "
"és utf-8. Nota: aquesta opció l'utilitzaran tots els formats."
-#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38
-msgid ""
-"The maximum number of characters per line. This splits on the first space "
-"before the specified value. If no space is found the line will be broken at "
-"the space after and will exceed the specified value. Also, there is a "
-"minimum of 25 characters. Use 0 to disable line splitting."
-msgstr ""
-"El número màxim de caràcters per línia. Això divideix la línia al primer "
-"espai abans del valor que s'especifica. Si no hi ha cap espai la línia es "
-"dividirà a l'espai següent i sobrepassarà el valor que s'especifiqui. El "
-"valor mínim és de 25 caràcters. Feu servir 0 per desactivar la divisió de "
-"línies."
-
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45
msgid ""
"Force splitting on the max-line-length value when no space is present. Also "
@@ -3399,8 +3412,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67
msgid "Send file to storage card instead of main memory by default"
msgstr ""
-"Envia l'arxiu a la targeta de memòria enlloc de a la memòria principal per "
-"defecte."
+"Per defecte envia el fitxer a la targeta de memòria en lloc de fer-ho a la "
+"memòria principal."
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:69
msgid "Confirm before deleting"
@@ -3420,12 +3433,12 @@ msgstr "Utilitza números romans per a sèries de números"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:77
msgid "Sort tags list by name, popularity, or rating"
-msgstr "Ordena la llista d'etiquetes per nom, popularitat o per rànquing"
+msgstr "Ordena la llista d'etiquetes per nom, popularitat o per valoració"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:79
msgid "Number of covers to show in the cover browsing mode"
msgstr ""
-"Número de portades que es mostraran en el mode de navegació per portades"
+"Nombre de portades que es mostraran en el mode de navegació per portades"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:81
msgid "Defaults for conversion to LRF"
@@ -3478,11 +3491,11 @@ msgstr "Inhabilita els missatges des de la icona de la safata del sistema"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:101
msgid "Default action to perform when send to device button is clicked"
msgstr ""
-"Acció per defecte per a quan el faci clic al botó d'enviar al dispositiu"
+"Acció per defecte per a quan es faci clic al botó d'enviar al dispositiu"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:121
msgid "Maximum number of waiting worker processes"
-msgstr "Número màxim de processos en espera"
+msgstr "Nombre màxim de processos en espera"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:123
msgid "Download social metadata (tags/rating/etc.)"
@@ -3494,7 +3507,7 @@ msgstr "Sobreescriu l'autor i el títol amb les noves metadades"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:127
msgid "Limit max simultaneous jobs to number of CPUs"
-msgstr "Limita el màxim de tasques simultànies al número de CPUs"
+msgstr "Limita el màxim de tasques simultànies al nombre de CPUs"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:129
msgid "tag browser categories not to display"
@@ -3507,7 +3520,7 @@ msgstr "Disposició de la interfície de l'usuari"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133
msgid "Show the average rating per item indication in the tag browser"
msgstr ""
-"Mostra la mitjana de les qualificacions per a cada element de l'explorador "
+"Mostra la mitjana de les valoracions per a cada element de l'explorador "
"d'etiquetes"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:135
@@ -3529,7 +3542,7 @@ msgstr "Copia al porta-retalls"
#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466
msgid "Choose Files"
-msgstr "Escull fitxers"
+msgstr "Tria fitxers"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:25
msgid "Add books"
@@ -3538,7 +3551,7 @@ msgstr "Afegeix llibres"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:26
msgid "Add books to the calibre library/device from files on your computer"
msgstr ""
-"Afegeix llibres a la biblioteca o al dispositiu des d'arxius de l'ordinador"
+"Afegeix llibres a la biblioteca/dispositiu des de fitxers de l'ordinador"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:27
msgid "A"
@@ -3546,23 +3559,24 @@ msgstr "A"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:33
msgid "Add books from a single directory"
-msgstr "Afegeix llibres d'un directori"
+msgstr "Afegeix llibres des d'una carpeta"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:35
msgid ""
"Add books from directories, including sub-directories (One book per "
"directory, assumes every ebook file is the same book in a different format)"
msgstr ""
-"Afegeix llibres de directoris, incloent els subdirectoris (un llibre per "
-"directori, s'assumeix que cada arxiu és el mateix llibre en diferent format)"
+"Afegeix llibres de carpetes, incloent les subcarpetes (un llibre per "
+"carpeta, assumint que cada fitxer de llibre és el mateix llibre en diferents "
+"formats)"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:39
msgid ""
"Add books from directories, including sub directories (Multiple books per "
"directory, assumes every ebook file is a different book)"
msgstr ""
-"Afegeix llibres de directoris, incloent els subdirectoris (varis llibres per "
-"directori, s'assumeix que cada arxiu és llibre diferent)"
+"Afegeix llibres de carpetes, incloent les subcarpetes (diversos llibres per "
+"carpeta, assumint que cada fitxer de llibre és un llibre diferent)"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:43
msgid "Add Empty book. (Book entry with no formats)"
@@ -3570,7 +3584,7 @@ msgstr "Afegeix un llibre buit (entrada de llibre sense format)"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:45
msgid "Add from ISBN"
-msgstr "Afegeix desde ISBN"
+msgstr "Afegeix a partir de l'ISBN"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:84
msgid "How many empty books?"
@@ -3581,7 +3595,7 @@ msgid "How many empty books should be added?"
msgstr "Quants llibres buits haurien d'afegir-se?"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:201
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202
msgid "Uploading books to device."
msgstr "Pujant llibres a l'aparell."
@@ -3623,41 +3637,46 @@ msgid "PDF Books"
msgstr "Llibres PDF"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169
+msgid "SNB Books"
+msgstr "Llibres SNB"
+
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170
msgid "Comics"
msgstr "Còmics"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171
msgid "Archives"
msgstr "Arxius"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175
msgid "Supported books"
msgstr "Llibres admesos"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:210
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211
msgid "Merged some books"
msgstr "S'han unit els llibres"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212
msgid ""
"Some duplicates were found and merged into the following existing books:"
msgstr ""
"S'han trobat duplicats i s'han unit als següents llibres que ja existien:"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:220
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221
msgid "Failed to read metadata"
msgstr "No s'ha pogut llegir les metadades"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222
msgid "Failed to read metadata from the following"
msgstr "No s'ha pogut llegir les metadades del següent"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:260
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265
msgid "Add to library"
msgstr "Afegeix a la biblioteca"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246
#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56
#: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28
#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95
@@ -3665,12 +3684,12 @@ msgstr "Afegeix a la biblioteca"
msgid "No book selected"
msgstr "Cap llibre seleccionat"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:254
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259
msgid ""
"The following books are virtual and cannot be added to the calibre library:"
msgstr "Aquests llibres són virtuals i no es poden afegir a la biblioteca:"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:260
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265
msgid "No book files found"
msgstr "No s'han trobat llibres"
@@ -3770,7 +3789,7 @@ msgstr "Catàleg generat"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:72
msgid "Export Catalog Directory"
-msgstr "Directori d'exportació del catàleg"
+msgstr "Carpeta d'exportació del catàleg"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:73
msgid "Select destination for %s.%s"
@@ -3809,6 +3828,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:139
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112
msgid "%d books"
msgstr "%d llibres"
@@ -3846,9 +3866,7 @@ msgstr "Estat de la còpia de seguretat de la biblioteca"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:192
msgid "Start backing up metadata of all books"
-msgstr ""
-"S'està començant a fer la còpia de seguretat de les metadades de tots els "
-"llibres"
+msgstr "Fes una còpia de seguretat de les metadades de tots els llibres"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:196
msgid "Check library"
@@ -3959,7 +3977,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101
-#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:700
+#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:734
msgid "Not allowed"
msgstr "No està permès"
@@ -3997,7 +4015,7 @@ msgstr "Copia a la biblioteca"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:84
msgid "Copy selected books to the specified library"
-msgstr "Copia els llibres seleccionats a la biblioteca que s'ha especificat"
+msgstr "Copia els llibres seleccionats a la biblioteca que s'indica"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:114
msgid "(delete after copy)"
@@ -4026,7 +4044,7 @@ msgstr "No s'ha pogut copiar els llibres: "
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:708
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:675
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:679
#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189
msgid "Failed"
msgstr "Ha fallat"
@@ -4206,7 +4224,7 @@ msgstr "Edita metadades en massa"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:36
msgid "Download metadata and covers"
-msgstr "Descarrega metadades i cobertes"
+msgstr "Descarrega metadades i portades"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:39
msgid "Download only metadata"
@@ -4234,7 +4252,7 @@ msgstr "No es poden descarregar les metadades"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:94
msgid "social metadata"
-msgstr "Metadades socials"
+msgstr "metadades socials"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96
msgid "covers"
@@ -4252,7 +4270,7 @@ msgstr "S'està descarregant %s per a %d llibre(s)"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:121
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:159
msgid "Cannot edit metadata"
-msgstr "No puc editar les meta-dades"
+msgstr "No es poden editar les metadades"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:188
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:191
@@ -4273,7 +4291,7 @@ msgstr ""
"S'afegiran els formats i les metadades dels llibres seleccionats al "
"primer dels llibres seleccionats. L'ISBN no es fusionarà. El "
"segon llibre i els seleccionats a continuació no s'esborraran ni canviaran "
-"
Si us plau confirmeu que voleu continuar."
+"
Confirmeu que voleu continuar."
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:208
msgid ""
@@ -4299,19 +4317,19 @@ msgstr ""
"Esteu a punt de fusionar més de 5 llibres. Esteu segur que voleu "
"continuar?"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:18
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:17
msgid "F"
msgstr "F"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:18
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:17
msgid "Fetch news"
-msgstr "Recull notícies (RSS)"
+msgstr "Notícies (RSS)"
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:53
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:52
msgid "Fetching news from "
msgstr "S'està aconseguint notícies de "
-#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:67
+#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:66
msgid " fetched."
msgstr " s'han obtingut"
@@ -4398,7 +4416,7 @@ msgstr "No puc desar al disc"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:94
msgid "Choose destination directory"
-msgstr "Tria el directori de destí"
+msgstr "Tria la carpeta de destí"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:102
msgid ""
@@ -4428,6 +4446,7 @@ msgid "Click the show details button to see which ones."
msgstr "Feu clic al botó \"Mostra detalls\" per veure quins són."
#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:613
msgid "Show book details"
msgstr "Mostra detalls del llibre"
@@ -4566,10 +4585,10 @@ msgstr "Error al camí"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:225
msgid "The specified directory could not be processed."
-msgstr "La carpeta que s'ha especificat no es pot processar."
+msgstr "La carpeta que s'ha indicat no es pot processar."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:229
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:851
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:857
msgid "No books"
msgstr "Cap llibre"
@@ -4643,20 +4662,20 @@ msgstr "no és una carpeta arrel vàlida"
msgid "Add books to calibre"
msgstr "Afegeix llibres al calibre"
-#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21
+#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:26
#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:62
-#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:41
-#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41
-#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49
-#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41
+#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46
+#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:46
+#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54
+#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46
msgid "WizardPage"
msgstr "Pàgina de l'assistent"
-#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:22
+#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:27
msgid "Scanning root folder for books"
msgstr "S'estan buscant llibres a la carpeta arrel"
-#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:23
+#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:28
msgid "This may take a few minutes"
msgstr "Pot trigar uns quants minuts"
@@ -4703,7 +4722,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:71
#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:57
#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:58
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176
#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:58
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:84
@@ -4777,31 +4796,31 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:313
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:327
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1118
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1124
msgid "Path"
msgstr "Camí"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:50
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:326
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:103
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117
msgid "Formats"
msgstr "Formats"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:928
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1121
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:934
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127
msgid "Collections"
msgstr "Col·leccions"
@@ -4814,8 +4833,8 @@ msgstr "Clica per obrir"
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1133
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1137
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78
#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83
@@ -4845,6 +4864,7 @@ msgstr "Opcions de BibTeX"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13
#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18
#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13
#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17
msgid "Options specific to"
@@ -4860,37 +4880,39 @@ msgstr "Opcions específiques per"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17
#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18
#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17
msgid "output"
msgstr "sortida"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:48
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:31
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:33
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:36
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:66
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:42
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:71
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:36
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:40
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:43
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:47
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:33
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:28
#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:80
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:50
#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:55
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67
+#: /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:82
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:40
#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:111
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:48
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:136
@@ -4908,68 +4930,68 @@ msgstr "sortida"
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49
-#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107
+#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112
msgid "Form"
msgstr "Forma"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87
msgid "Bib file encoding:"
msgstr "Codificació del fitxer bib:"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:43
msgid "Fields to include in output:"
msgstr "Camps que s'inclouran a la sortida:"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89
msgid "ascii/LaTeX"
msgstr "ascii/LaTeX"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90
msgid "Encoding configuration (change if you have errors) :"
msgstr "Configuració de la codificació (canvieu-ho si hi ha errors):"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91
msgid "strict"
msgstr "estricte"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92
msgid "replace"
msgstr "reemplaça"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93
msgid "ignore"
msgstr "ignora"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94
msgid "backslashreplace"
msgstr "substitució de la barra invertida"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95
msgid "BibTeX entry type:"
msgstr "Tipus d'entrada BibTeX:"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96
msgid "mixed"
msgstr "mixt"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:97
msgid "misc"
msgstr "misc"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:98
msgid "book"
msgstr "llibre"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:99
msgid "Create a citation tag?"
msgstr "S'ha de crear una etiqueta de cita?"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:100
msgid "Expression to form the BibTeX citation tag:"
msgstr "Expressió per crear l'etiqueta de cita BibTeX:"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:101
msgid ""
"Some explanation about this template:\n"
" -The fields availables are 'author_sort', 'authors', 'id',\n"
@@ -4993,7 +5015,7 @@ msgstr "Opcions de CSV/XML"
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17
msgid "E-book options"
-msgstr "Opcions de llibre electrònic"
+msgstr "Opcions dels llibres"
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77
msgid "'Don't include this book' tag:"
@@ -5043,7 +5065,7 @@ msgstr "Ordena els números com a text"
msgid "Include 'Series' Section"
msgstr "Inclou la secció 'Sèries'"
-#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28
+#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33
msgid "Tab template for catalog.ui"
msgstr "Platilla de fitxa per al catalog.ui"
@@ -5053,9 +5075,9 @@ msgid ""
"in a previous conversion (if they exist) instead of using the defaults "
"specified in the Preferences"
msgstr ""
-"Per als paràmetres que no es poden especificar en aquest quadre, feu servir "
-"els valors desats d'una conversió prèvia (si existeix) en comptes de fer "
-"servir els valors per defecte que s'especifiquen a les Preferències"
+"Per als paràmetres que no es poden indicar en aquest quadre, feu servir els "
+"valors desats d'una conversió prèvia (si existeix) en comptes de fer servir "
+"els valors per defecte que s'indiquen a les Preferències"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68
msgid "Bulk Convert"
@@ -5078,66 +5100,66 @@ msgstr "Entrada de còmic"
msgid "input"
msgstr "entrada"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99
msgid "&Number of Colors:"
msgstr "&Nombre de colors"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101
msgid "Disable &normalize"
msgstr "Inhabilita i &normalitza"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102
msgid "Keep &aspect ratio"
msgstr "Manté la relació d'&aspecte"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:97
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103
msgid "Disable &Sharpening"
msgstr "Desactiva l'&enfoc"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:98
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:109
msgid "Disable &Trimming"
msgstr "Desactiva el &retallat"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:108
msgid "&Wide"
msgstr "A&mplada"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104
msgid "&Landscape"
msgstr "A&païsat"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:106
msgid "&Right to left"
msgstr "De dreta a es&querra"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:97
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:102
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:105
msgid "Don't so&rt"
msgstr "No &ordenis"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:98
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:103
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:107
msgid "De&speckle"
msgstr "Nete&ja artefactes"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:104
msgid "&Disable comic processing"
msgstr "&Inhabilita el processament de còmics"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:105
#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:120
msgid "&Output format:"
msgstr "F&ormat de sortida:"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:106
msgid "Disable conversion of images to &black and white"
msgstr "Inhabilita la conversió d'imatges a &blanc i negre"
@@ -5189,27 +5211,27 @@ msgstr ""
msgid "EPUB Output"
msgstr "Sortida EPUB"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:49
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54
msgid "Do not &split on page breaks"
msgstr "No ÷ixis en els salts de pàgina"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:50
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:55
msgid "No default &cover"
msgstr "Sense &portada predeterminada"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:51
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:56
msgid "No &SVG cover"
msgstr "&Sense portada SVG"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:52
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:57
msgid "Preserve cover &aspect ratio"
msgstr "Conserva la relació d'&aspecte de la portada"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:58
msgid "Split files &larger than:"
msgstr "Divideix fitxers més &grans que:"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:59
msgid " KB"
msgstr " KB"
@@ -5217,7 +5239,7 @@ msgstr " KB"
msgid "FB2 Input"
msgstr "Entrada FB2"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:34
msgid "Do not insert a &Table of Contents at the beginning of the book."
msgstr "No &insereixis un Índex al començament del llibre"
@@ -5225,14 +5247,14 @@ msgstr "No &insereixis un Índex al començament del llibre"
msgid "FB2 Output"
msgstr "Sortida FB2"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:32
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:37
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:42
+#: /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:52
msgid "&Inline TOC"
msgstr "Afege&ix l'índex"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:33
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:38
msgid "Sectionize Chapters (Use with care!)"
msgstr "Fes seccions dels capítols (feu-ho amb compte!)"
@@ -5262,7 +5284,7 @@ msgstr ""
"l'algoritme si canvieu la mida de lletra base de sortida i la mida de "
"referència més avall. Quan trobeu els valors adequats feu clic a OK.\n"
"
Por defecte, si la mida de la lletra base de sortida és zero o no "
-"especifiqueu cap mida de referència, el calibre farà servir els valors del "
+"indiqueu cap mida de referència, el calibre farà servir els valors del "
"perfil de sortida actual.
Markdown is a simple markup language for text files, that allows for "
"advanced formatting. To learn more visit markdown."
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:56
msgid "Do not insert Table of Contents into output text when using markdown"
msgstr ""
"No insertar la Taula de Continguts en text de sortida quan s'utilitzi "
"Markdown"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:52
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:57
msgid "Preserve &spaces"
msgstr "Preservar &espais"
@@ -5931,15 +5957,15 @@ msgstr "Preservar &espais"
msgid "TXT Output"
msgstr "Sortida TXT"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:51
msgid "&Line ending style:"
msgstr "&Estil de final de línia:"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:53
msgid "&Maximum line length:"
msgstr "Longitud de línia &màxima"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:54
msgid "Force maximum line length"
msgstr "Forçar la longitud de línia màxima"
@@ -5958,71 +5984,71 @@ msgstr "TextLabel"
msgid "Use a wizard to help construct the XPath expression"
msgstr "Utilitzar un assistent per ajudar a construir l'expressió XPath"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73
msgid "Match HTML &tags with tag name:"
msgstr "Seleccionar &etiquetes HTML amb nom:"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74
msgid "*"
msgstr "*"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75
msgid "a"
msgstr "a"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:71
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76
msgid "br"
msgstr "br"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77
msgid "div"
msgstr "div"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78
msgid "h1"
msgstr "h1"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79
msgid "h2"
msgstr "h2"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80
msgid "h3"
msgstr "h3"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81
msgid "h4"
msgstr "h4"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82
msgid "h5"
msgstr "h5"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83
msgid "h6"
msgstr "h6"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84
msgid "hr"
msgstr "hr"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:85
msgid "span"
msgstr "interval"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:86
msgid "Having the &attribute:"
msgstr "Amb &atribut"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:87
msgid "With &value:"
msgstr "Amb &valor"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:88
msgid "(A regular expression)"
msgstr "(Una expressió regular)"
-#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84
+#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:89
msgid ""
"
For example, to match all h2 tags that have class=\"chapter\", set tag to "
"h2, attribute to class and value to "
@@ -6053,6 +6079,7 @@ msgstr "No s'ha pogut carregar l'explorador de portades"
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:145
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:164
#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:270
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:111
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:131
#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:206
@@ -6077,28 +6104,28 @@ msgstr "Establir data d'avui per '%s'"
msgid " index:"
msgstr " índex:"
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:462
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:493
msgid "Remove series"
msgstr "Elimina la sèrie"
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:465
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:496
msgid "Automatically number books"
msgstr "Numera els llibres automàticament"
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:468
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364
msgid "Force numbers to start with "
msgstr "Força començar la numeració amb "
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:531
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:562
msgid "Remove all tags"
msgstr "Elimina totes les etiquetes"
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:552
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:583
msgid "tags to add"
msgstr "etiquetes per afegir"
-#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:557
+#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:588
msgid "tags to remove"
msgstr "etiquetes per eliminar"
@@ -6125,11 +6152,11 @@ msgstr "Obtenir anotacions del dispositiu"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340
msgid "Send metadata to device"
-msgstr "Enviar metadades al dispositiu"
+msgstr "Envia les metadades al dispositiu"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345
msgid "Send collections to device"
-msgstr "Enviar col·leccions al dispositiu"
+msgstr "Envia les col·leccions al dispositiu"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380
msgid "Upload %d books to device"
@@ -6149,19 +6176,19 @@ msgstr "Veure llibre en el dispositiu"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456
msgid "Set default send to device action"
-msgstr "Assignar acció d'enviar al dispositiu per defecte"
+msgstr "Configura l'acció d'enviar al dispositiu"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462
msgid "Send to main memory"
-msgstr "Envia a la memòria interna"
+msgstr "Envia a la memòria principal"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464
msgid "Send to storage card A"
-msgstr "Enviar a la targeta de memòria A"
+msgstr "Envia a la targeta de memòria A"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466
msgid "Send to storage card B"
-msgstr "Enviar a la targeta de memòria B"
+msgstr "Envia a la targeta de memòria B"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480
@@ -6170,11 +6197,11 @@ msgstr "Memòria principal"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:491
msgid "Send and delete from library"
-msgstr "Enviar i esborrar de la biblioteca"
+msgstr "Envia i suprimeix de la biblioteca"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492
msgid "Send specific format"
-msgstr "Enviar format específic"
+msgstr "Envia un format específic"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:528
msgid "Eject device"
@@ -6197,8 +6224,8 @@ msgid ""
"There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot."
msgstr ""
-"Hi ha hagut un error de comunicació amb el dispositiu. Lleve, torne a "
-"connectar el dispositiu i torne a iniciar el programa"
+"Hi ha hagut un error de comunicació amb el dispositiu. Lleveu-lo i torneu-lo "
+"a connectar i/o torneu a iniciar el programa"
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:758
msgid "Device: "
@@ -6208,120 +6235,120 @@ msgstr "Dispositiu: "
msgid " detected."
msgstr " detectat"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:852
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:858
msgid "selected to send"
msgstr "seleccionat per enviar"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:857
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:863
msgid "Choose format to send to device"
msgstr "Escull format per enviar al dispositiu"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872
msgid "No device"
msgstr "No hi ha cap dispositiu"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873
msgid "Cannot send: No device is connected"
-msgstr "No s'ha pogut enviar: no hi ha cap dispositiu enviat"
+msgstr "No s'ha pogut enviar: no hi ha cap dispositiu connectat"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880
msgid "No card"
msgstr "Sense targeta"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:877
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881
msgid "Cannot send: Device has no storage card"
msgstr "No s'ha pogut enviar: el dispositiu no té targeta de memòria"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:916
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:922
msgid "E-book:"
-msgstr "Llibre electrònic:"
+msgstr "Llibre:"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925
msgid "Attached, you will find the e-book"
-msgstr "Trobaràs, adjunt, el llibre electrònic"
+msgstr "Hi trobareu el llibre adjunt"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:920
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107
msgid "by"
msgstr "per"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:921
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927
msgid "in the %s format."
msgstr "en el format %s"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:940
msgid "Sending email to"
-msgstr "Enviant correu electrònic a"
+msgstr "S'està enviant correu electrònic a"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:964
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1065
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1127
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:970
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1071
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1275
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1283
msgid "No suitable formats"
msgstr "No hi ha formats adequats"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:965
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971
msgid "Auto convert the following books before sending via email?"
msgstr ""
"S'ha de convertir automàticament els llibres següents abans d'enviar-los per "
"correu electrònic?"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:973
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979
msgid ""
"Could not email the following books as no suitable formats were found:"
msgstr ""
"No s'han pogut enviar els llibres següents perquè no s'han trobat formats "
"adequats:"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997
msgid "Failed to email books"
msgstr "Error en enviar llibres per email"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:992
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:998
msgid "Failed to email the following books:"
msgstr "Error en enviar els següents llibres per email:"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:996
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1002
msgid "Sent by email:"
msgstr "S'ha enviat per correu electrònic:"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1024
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1030
msgid "News:"
msgstr "Notícies:"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1025
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1031
msgid "Attached is the"
msgstr "S'adjunta el"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1036
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042
msgid "Sent news to"
msgstr "S'ha enviat notícies a"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1066
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1128
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1247
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1072
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1157
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1276
msgid "Auto convert the following books before uploading to the device?"
msgstr ""
"Abans de pujar-los al dispositiu s'ha de convertir automàticament els "
"següents llibres?"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1096
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1102
msgid "Sending catalogs to device."
msgstr "S'estan enviant els catàlegs al dispositiu."
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1189
msgid "Sending news to device."
msgstr "S'estan enviant les notícies al dispositiu."
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1213
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1242
msgid "Sending books to device."
msgstr "S'estan enviant els llibres al dispositiu."
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1255
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1284
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."
@@ -6330,11 +6357,11 @@ msgstr ""
"trobat un format adequat. Convertiu primer el(s) llibre(s) a un format "
"compatible amb el vostre dispositiu."
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1319
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1348
msgid "No space on device"
msgstr "Sense espai al dispositiu"
-#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1320
+#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1349
msgid ""
"
Cannot upload books to device there is no more free space available "
msgstr "
No puc desar llibres al dispositiu perquè no hi ha espai restant "
@@ -6407,67 +6434,69 @@ msgstr "&Següent"
msgid "My Books"
msgstr "Els meus llibres"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:74
#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:304
msgid "Generate catalog"
msgstr "Genera el catàleg"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:75
msgid "Generate catalog for {0} books"
msgstr "Genera el catàleg per a {0} llibres"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:76
msgid "Catalog &format:"
msgstr "&Format del catàleg:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:77
msgid ""
"Catalog &title (existing catalog with the same title will be replaced):"
msgstr ""
"&Títol del catàleg (es sobreescriurà qualsevol catàleg amb el mateix títol):"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:73
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:78
msgid "&Send catalog to device automatically"
msgstr "&Envia automàticament el catàleg al dispositiu"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:74
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:79
msgid "Catalog options"
msgstr "Opcions del catàleg"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:21
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:26
msgid "Check Library"
msgstr "Comprova la biblioteca"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:29
-msgid "Run the check"
-msgstr "Executa la comprobació"
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:35
+msgid "&Run the check"
+msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:32
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205
-msgid "Copy to clipboard"
-msgstr "Copia-ho al porta-retalls"
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:38
+msgid "Copy &to clipboard"
+msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:48
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:54
msgid "Names to ignore:"
msgstr "Noms que s'ignoraran:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:54
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:60
msgid "Extensions to ignore"
msgstr "Extensions que s'ignoraran"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:106
-msgid "Additional Information"
-msgstr "Informació addicional"
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:106
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:115
msgid "Path from library"
msgstr "Camí de la biblioteca"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:106
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:115
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89
+#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225
msgid "Name"
msgstr "Nom"
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:132
+msgid ""
+"The marked files and folders will be permanently deleted. Are you "
+"sure?"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:45
msgid "Choose Format"
msgstr "Trieu format"
@@ -6498,7 +6527,7 @@ msgstr "No està buit"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:57
msgid "The folder %s is not empty. Please choose an empty folder"
-msgstr "La carpeta %s no està buida. Trieu una altra carpeta si us plau."
+msgstr "La carpeta %s no està buida. Trieu una altra carpeta."
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80
msgid "No location"
@@ -6563,7 +6592,7 @@ msgstr "&Autor(s)"
msgid "&Profile:"
msgstr "&Perfil:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:41
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:46
msgid "Edit Comments"
msgstr "Edita els comentaris"
@@ -6581,7 +6610,7 @@ msgid ""
"Please verify the list."
msgstr ""
"Tots els llibres que s'ha seleccionat s'esborraran permanentment del "
-"vostre dispositiu. Comproveu la llista si us plau."
+"vostre dispositiu. Comproveu la llista."
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75
msgid "Location"
@@ -6589,19 +6618,19 @@ msgstr "Ubicació"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:932
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:31
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:280
-#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:588
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:294
+#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:568
msgid "Date"
msgstr "Data"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1123
msgid "Format"
msgstr "Format"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:55
msgid "Delete from device"
msgstr "Suprimeix del dispositiu"
@@ -6610,28 +6639,28 @@ msgid "Author sort"
msgstr "Ordre per autor"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:615
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590
msgid "Invalid author name"
msgstr "El nom de l'autor no és vàlid"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:616
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591
msgid "Author names cannot contain & characters."
msgstr "Els noms d'autor no poden contenir caràcters &."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:66
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:71
msgid "Manage authors"
msgstr "Administra els autors"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:67
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:72
msgid "Sort by author"
msgstr "Ordena per autor"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:68
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:73
msgid "Sort by author sort"
msgstr "Ordena per ordre d'autor"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:69
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:74
msgid ""
"Reset all the author sort values to a value automatically generated from the "
"author. Exactly how this value is automatically generated can be controlled "
@@ -6641,7 +6670,7 @@ msgstr ""
"automàticament a partir de l'autor. Es pot controlar la manera exacta com es "
"genera automàticament aquest valor a Preferències->Avançat->Ajustos"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:70
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:75
msgid "Recalculate all author sort values"
msgstr "Torna a calcular tots els valors d'ordre d'autor"
@@ -6680,13 +6709,13 @@ msgstr "No s'ha trobat metadades"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:192
msgid ""
-"No metadata found, try adjusting the title and author or the ISBN key."
+"No metadata found, try adjusting the title and author and/or removing the "
+"ISBN."
msgstr ""
-"No s'ha trobat metadades, intenteu ajustar el títol i l'autor o l'ISBN."
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90
msgid "Fetch metadata"
-msgstr "Recull metadades"
+msgstr "Aconsegueix metadades"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91
msgid ""
@@ -6748,71 +6777,71 @@ msgstr "Mostra &detalls de la tasca"
msgid "Stop &all non device jobs"
msgstr "Atura &totes les tasques que no són de dispositius"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:25
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:26
msgid "Title/Author"
msgstr "Títol/Autor"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:26
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:27
msgid "Standard metadata"
msgstr "Metadades estàndard"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:27
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:28
msgid "Custom metadata"
msgstr "Metadades personalitzades"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:28
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:29
msgid "Search/Replace"
msgstr "Cerca/Reemplaça"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:32
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:33
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:76
msgid "Working"
msgstr "Està treballant..."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:180
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386
msgid "Lower Case"
msgstr "Minúscules"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:181
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:384
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385
msgid "Upper Case"
msgstr "Majúscules"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:182
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:387
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388
msgid "Title Case"
msgstr "Inicials en majúscula"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189
msgid "Character match"
msgstr "Coincidència de caràcter"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190
msgid "Regular Expression"
msgstr "Expressió regular"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193
msgid "Replace field"
msgstr "Reemplaça el camp"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194
msgid "Prepend to field"
msgstr "Posa-ho abans del camp"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195
msgid "Append to field"
msgstr "Afegeix-ho al camp"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:202
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206
msgid "Editing meta information for %d books"
msgstr "S'està editant la metainformació de %d llibres"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:255
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259
msgid "Book %d:"
msgstr "Llibre %d:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:270
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274
msgid ""
"You can destroy your library using this feature. Changes are "
"permanent. There is no undo function. This feature is experimental, and "
@@ -6826,7 +6855,7 @@ msgstr ""
"que feu una còpia de seguretat abans de continuar.
Cerca i reemplaça als "
"camps de text fent servir coincidència de caràcters o expressions regulars. "
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:279
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283
msgid ""
"In character mode, the field is searched for the entered search text. The "
"text is replaced by the specified replacement text everywhere it is found in "
@@ -6843,7 +6872,7 @@ msgstr ""
"s'ha seleccionat, el text de cerca coincidirà tant amb majúscules com en "
"minúscules"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:290
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294
msgid ""
"In regular expression mode, the search text is an arbitrary python-"
"compatible regular expression. The replacement text can contain "
@@ -6869,32 +6898,32 @@ msgstr ""
"voleu més informació quant a les expressions regulars en python, "
"especialment quant a la funció 'sub'."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:432
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436
msgid "You must specify a destination when source is a composite field"
msgstr "Heu d'especificar una destinació quant la font és un camp compost"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:524
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:623
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:627
msgid "Search/replace invalid"
msgstr "Cerca/reemplaça no vàlid"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:525
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529
msgid ""
"Authors cannot be set to the empty string. Book title %s not processed"
msgstr ""
"Autors no pot deixar-se en blanc. No s'ha processat el llibre amb el títol %s"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537
msgid "Title cannot be set to the empty string. Book title %s not processed"
msgstr ""
"Títol no pot deixar-se en blanc. No s'ha processat el llibre amb el títol %s"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:624
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:628
msgid "Search pattern is invalid: %s"
msgstr "El patró de cerca no és vàlid: %s"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:661
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:665
msgid ""
"Applying changes to %d books.\n"
"Phase {0} {1}%%."
@@ -6902,19 +6931,19 @@ msgstr ""
"S'està aplicant els canvis a %d llibres.\n"
"Fase {0} {1}%%."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:314
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:332
msgid "Edit Meta information"
msgstr "Editar Meta-informació"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:316
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334
msgid "A&utomatically set author sort"
msgstr "Estableix a&utomàticament l'ordre per autor"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:317
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335
msgid "Author s&ort: "
msgstr "&Ordena per autor "
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:318
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336
msgid ""
"Specify how the author(s) of this book should be sorted. For example Charles "
"Dickens should be sorted as Dickens, Charles."
@@ -6922,64 +6951,64 @@ msgstr ""
"Especifiqueu com s'ha d'ordenar l'autor(s) d'aquest llibre. Per "
"exemple,ordena Vicent A. Estellés com a Estellés, Vicent A."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:319
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384
msgid "&Rating:"
msgstr "&Valoració:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:320
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:321
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386
msgid "Rating of this book. 0-5 stars"
-msgstr "Valora aquest llibre: 0-5 estreles"
+msgstr "Valoració d'aquest llibre: 0-5 estrelles"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:322
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340
msgid "No change"
msgstr "Sense canvis"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:323
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387
msgid " stars"
msgstr " estreles"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:325
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343
msgid "Add ta&gs: "
msgstr "Afegeix les eti&quetes "
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:327
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:328
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392
msgid "Open Tag Editor"
msgstr "Obre l'editor d'etiquetes"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:329
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347
msgid "&Remove tags:"
msgstr "Sup&rimeix les etiquetes"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:330
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348
msgid "Comma separated list of tags to remove from the books. "
msgstr ""
"Llista d'etiquetes separada per comes que s'eliminaran dels llibres. "
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:331
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349
msgid "Check this box to remove all tags from the books."
msgstr "Marqueu aquest quadre per eliminar totes les etiquetes dels llibres."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:332
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350
msgid "Remove all"
msgstr "Elimina-ho tot"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354
msgid "If checked, the series will be cleared"
msgstr "Si està activat l'eliminaran les sèries"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355
msgid "Clear series"
msgstr "Elimina les sèries"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356
msgid ""
"If not checked, the series number for the books will be set to 1.\n"
"If checked, selected books will be automatically numbered, in the order\n"
@@ -6987,16 +7016,16 @@ msgid ""
"Book A will have series number 1 and Book B series number 2."
msgstr ""
"Si no s'activa el número de la sèrie per als llibres quedarà establert a 1.\n"
-"Si s'activa, els llibres que s'ha seleccionat es numeraran automàticament\n"
+"Si s'activa, els llibres seleccionats es numeraran automàticament\n"
"en l'ordre que els hagueu escollit. Si heu seleccionat el llibre A i "
"després\n"
-"el llibre B, el llibre A tindrà el número 1 de la sèrie i el B el número 2."
+"el llibre B, el llibre A tindrà el nombre 1 de la sèrie i el B el nombre 2."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:360
msgid "Automatically number books in this series"
msgstr "Numera automàticament els llibres d'aquesta sèrie"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:361
msgid ""
"Series will normally be renumbered from the highest number in the database\n"
"for that series. Checking this box will tell calibre to start numbering\n"
@@ -7008,19 +7037,15 @@ msgstr ""
"que\n"
"comenci la numeració a partir del valor de ca casella"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:365
msgid "Remove &format:"
msgstr "Suprimeix el &format:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366
msgid "&Swap title and author"
msgstr "&Intercanvia títol i autor"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349
-msgid "Change title to title case"
-msgstr "Posa el títol amb les inicials en majúscula"
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367
msgid ""
"Force the title to be in title case. If both this and swap authors are "
"checked,\n"
@@ -7030,7 +7055,11 @@ msgstr ""
"l'intercanvi\n"
"d'autor i títol, primer es fa l'intercanvi i després es canvia el títol"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369
+msgid "Change title to title case"
+msgstr "Posa el títol amb les inicials en majúscula"
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370
msgid ""
"Remove stored conversion settings for the selected books.\n"
"\n"
@@ -7041,34 +7070,34 @@ msgstr ""
"La conversió d'aquests llibres es farà en endavant amb els paràmetres per "
"defecte."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373
msgid "Remove &stored conversion settings for the selected books"
msgstr ""
"Suprimeix els paràmetres de conversió de&sats per als llibres seleccionats"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:374
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424
msgid "&Basic metadata"
msgstr "Metadades &bàsiques"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425
msgid "&Custom metadata"
msgstr "&Personalitza les metadades"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376
msgid "Search &field:"
msgstr "Cerca al &camp:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377
msgid "The name of the field that you want to search"
msgstr "Nom del camp on voleu fer la cerca"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:360
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378
msgid "Search mode:"
msgstr "Mode de cerca:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:361
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379
msgid ""
"Choose whether to use basic text matching or advanced regular expression "
"matching"
@@ -7076,11 +7105,11 @@ msgstr ""
"Trieu si s'ha de fer servir la coincidència bàsica de text o expressions "
"regulars avançades"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380
msgid "&Search for:"
msgstr "&Cerca per:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381
msgid ""
"Enter the what you are looking for, either plain text or a regular "
"expression, depending on the mode"
@@ -7088,7 +7117,7 @@ msgstr ""
"Introduïu el que esteu cercant, tant si és text simple o una expressió "
"regular, depenent el mode escollit"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382
msgid ""
"Check this box if the search string must match exactly upper and lower case. "
"Uncheck it if case is to be ignored"
@@ -7096,15 +7125,15 @@ msgstr ""
"Marqueu aquesta casella si la cadena de cerca ha de coincidir exactament en "
"majúscules i minúscules. Desmarqueu-la per ignorar-les."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:365
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383
msgid "Case sensitive"
msgstr "Sensible a caixa"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384
msgid "&Replace with:"
msgstr "&Substitueix amb:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385
msgid ""
"The replacement text. The matched search text will be replaced with this "
"string"
@@ -7112,11 +7141,11 @@ msgstr ""
"El text de substitució. Els textos que coincideixin es substituiran amb "
"aquesta cadena"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386
msgid "Apply function after replace:"
msgstr "Aplica la funció després de la substitució:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387
msgid ""
"Specify how the text is to be processed after matching and replacement. In "
"character mode, the entire\n"
@@ -7128,11 +7157,11 @@ msgstr ""
"tot el camp. Al mode d'expressions regulars només es processa el text que "
"coincideixi"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389
msgid "&Destination field:"
msgstr "Camp de &destí:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390
msgid ""
"The field that the text will be put into after all replacements. If blank, "
"the source field is used."
@@ -7140,15 +7169,15 @@ msgstr ""
"El camp on es posarà el text després de totes les substitucions. Se està en "
"blanc es fa servir el camp original."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391
msgid "Mode:"
msgstr "Mode:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:374
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392
msgid "Specify how the text should be copied into the destination."
msgstr "Especifica com s'ha de copiar el text al destí."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393
msgid ""
"If the replace mode is prepend or append, then this box indicates whether a "
"comma or\n"
@@ -7158,23 +7187,23 @@ msgstr ""
"casella indica si s'ha de\n"
"posar una coma o no res entre el text original i el que s'insereixi"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395
msgid "use comma"
msgstr "fes servir una coma"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396
msgid "Test &text"
msgstr "&Text de prova"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397
msgid "Test re&sult"
msgstr "Res&sultat de la prova"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398
msgid "Your test:"
msgstr "La vostra prova:"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399
msgid "&Search and replace (experimental)"
msgstr "&Cerca i reemplaça (experimental)"
@@ -7254,11 +7283,11 @@ msgstr "Interromp l'edició dels llibres que queden"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529
msgid "This ISBN number is valid"
-msgstr "El número d'ISBN és vàlid"
+msgstr "El nombre d'ISBN és vàlid"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:532
msgid "This ISBN number is invalid"
-msgstr "El número d'ISBN no és vàlid"
+msgstr "El nombre d'ISBN no és vàlid"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611
msgid "Cannot use tag editor"
@@ -7278,13 +7307,13 @@ msgstr "S'està descarregant la portada..."
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:655
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660
msgid "Cannot fetch cover"
-msgstr "No puc aconseguir la coberta"
+msgstr "No s'ha pogut obtenir la portada"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:656
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661
msgid "Could not fetch cover. "
-msgstr "No puc aconseguir la coberta. "
+msgstr "No s'ha pogut aconseguir la portada. "
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:646
msgid "The download timed out."
@@ -7319,20 +7348,20 @@ msgstr "Hi ha hagut errors"
msgid "There were errors downloading social metadata"
msgstr "Hi ha hagut errors descarregant les metadades socials"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:733
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:735
msgid "Cannot fetch metadata"
msgstr "No s'ha pogut aconseguir les metadades"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:734
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:736
msgid "You must specify at least one of ISBN, Title, Authors or Publisher"
msgstr ""
"Heu d'especificar almenys un d'aquests: ISBN, títol, autors o editorial"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:820
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:823
msgid "Permission denied"
msgstr "S'ha denegat el permís"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:821
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:824
msgid "Could not open %s. Is it being used by another program?"
msgstr "No s'ha pogut obrir %s. L'està fent servir un altre programa?"
@@ -7459,14 +7488,14 @@ msgstr "Es necessita una contrasenya."
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125
-#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117
+#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122
msgid "&Username:"
msgstr "Nom d'&usuari:"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126
-#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119
+#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124
msgid "&Password:"
msgstr "&Contrasenya:"
@@ -7514,50 +7543,62 @@ msgstr "Afegeix un cerca desada nova"
msgid "Change the contents of the saved search"
msgstr "Canvieu el contingut de la cerca desada"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:124
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:126
msgid "Need username and password"
msgstr "Fa falta un nom d'usuari i una contrasenya"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:125
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:127
msgid "You must provide a username and/or password to use this news source."
msgstr ""
"Heu de donar un nom d'usuari i/o una contrasenya per a aquesta font de "
"notícies."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:166
+msgid "Account"
+msgstr "Compte"
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:167
+msgid "(optional)"
+msgstr "(opcional)"
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:168
+msgid "(required)"
+msgstr "(necessari)"
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:185
msgid "Created by: "
msgstr "Creat per: "
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:183
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:192
msgid "Last downloaded: never"
msgstr "Darrera descàrrega: mai"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:198
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:207
msgid "%d days, %d hours and %d minutes ago"
msgstr "Fa %d dies, %d hores i %d minuts"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:200
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:209
msgid "Last downloaded"
msgstr "Darrera descàrrega"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:224
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:233
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197
msgid "Schedule news download"
msgstr "Planifica la descàrrega de notícies"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:227
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:236
msgid "Add a custom news source"
msgstr "Afegeix una font nova de notícies"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:241
msgid "Download all scheduled new sources"
msgstr "Descarrega totes les fonts de notícies planificades"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:332
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:341
msgid "No internet connection"
msgstr "No hi ha connexió a internet"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:333
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:342
msgid "Cannot download news as no internet connection is active"
msgstr ""
"No es poden baixar notícies perquè no hi ha connexió d'internet activa"
@@ -7672,22 +7713,22 @@ msgid ""
"Delete downloaded news older than the specified number of days. Set to zero "
"to disable."
msgstr ""
-"Suprimeix les notícies que s'hagin descarregat més antigues que el número de "
-"dies que s'especifiqui. Introduïu zero per inhabilitar-ho."
+"Suprimeix les notícies que s'hagin descarregat més antigues que el nombre de "
+"dies que s'indica. Introduïu zero per inhabilitar-ho."
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:228
msgid "Delete downloaded news older than "
-msgstr "Suprimeix les notícies que s'hagin descarregat més antigues que "
+msgstr "Suprimeix les notícies més antigues que "
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:41
msgid "contains"
msgstr "conté"
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:37
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:42
msgid "The text to search for. It is interpreted as a regular expression."
msgstr "El text que s'ha de cerca. S'interpreta com a una expressió regular."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:38
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:43
msgid ""
"
Negate this match. That is, only return results that do not match "
"this query."
@@ -7695,7 +7736,7 @@ msgstr ""
"
Nega aquesta coincidència. És a dir, dóna només resultat que no "
"concordin amb la condició."
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:39
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:44
msgid "Negate"
msgstr "Nega"
@@ -7765,12 +7806,12 @@ msgid "Choose formats"
msgstr "Tria de formats"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:83
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:97
msgid "Authors"
msgstr "Autors"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:114
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:128
msgid "Publishers"
msgstr "Editors"
@@ -7896,12 +7937,12 @@ msgid "%s (was %s)"
msgstr "%s (era %s)"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:605
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580
msgid "Item is blank"
msgstr "L'element està en blanc"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:606
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581
msgid "An item cannot be set to nothing. Delete it instead."
msgstr "No es pot deixar un element en blanc. En tot cas l'heu d'esborrar."
@@ -8134,7 +8175,7 @@ msgstr ""
"right:0px; -qt-block-indent:0; text-indent:0px;\">Crea una recepta de "
"notícies bàsica, afegint canals RSS. Per a la majoria dels canals, "
"necessitareu fer servir el \"Mode avançat\" per personalitzar millor el "
-"porcés de descàrrega de dades.