Sync to Trunk.

This commit is contained in:
John Schember 2009-12-12 07:43:53 -05:00
commit 9914583a72
59 changed files with 7801 additions and 5853 deletions

View File

@ -4,12 +4,125 @@
# for important features/bug fixes. # for important features/bug fixes.
# Also, each release can have new and improved recipes. # Also, each release can have new and improved recipes.
- version: 0.6.27
date: 2009-12-11
new features:
- title: "Support for the Barnes & Noble Nook"
description: >
calibre can now connect to the Barnes & Noble Nook on Windows, OS X and Linux. It can also
convert to/from EPUB and PDB, the two e-book formats supported by the Nook.
type: major
tickets: [4145]
- title: "Download latest version of recipes from the calibre server automatically."
description: >
Now calibre will automatically check for updated versions of the recipes used to
download the built in news sources. As a result, there is no need to upgrade calibre
just for recipe fixes. Note that you still have to upgrade to get access to new
news sources.
type: major
- title: "Speed up download of news"
description: >
"Speed up download of news by allowing the download to happen in multiple threads
(default 5). This may break some recipes, so please report any breakage you notice.
If a news server doesn't like the parallel connection, set simultaneous_downloads
to 1 in the recipe."
type: major
- title: "FB2 Output: Support creation of TOC from <h1> tags"
- title: "E-book viewer: Make keyboard shortcuts customizable"
tickets: [3793]
- title: "E-book viewer: Add keyboard shortcuts for next section and previous section"
- title: "E-book viewer: Scroll past page-break to maintain reading flow"
tickets: [3328]
- title: "Linux device detection: Switch to using libusb1 to enumerate devices on system."
description: >
"If you are building for source, the libusb1 headers and library are now required at
compile time."
bug fixes:
- title: "LRF Viewer: Handle LRF files with corrupted end-of-stream tags"
tickets: [4151]
- title: "LRF Viewer: Don't concatenate books when opening multiple files in the same viewer instance"
tickets: [4139]
- title: "SONY device drivers: Ensure that calibre ignores the launcher partition on windows"
- title: "Fix regression introduced in the Android device drivers in 0.6.26"
tickets: [4152]
- title: "MOBI Output: Fix handling of links with URL unsafe characters"
tickets: [4091]
- title: "MOBI Output: Handle large descriptions when generating indexed files"
- title: "Save to disk: Fix {pubdate} format string in template being ignored"
tickets: [4140]
- title: "Replace rotating hourglass with a more efficient busy indicator."
- title: "PML Input: Make footnotes and sidebars display better"
- title: "E-book viewer: Properly handle <iframe>s"
- title: "News download: Remove onload attributes when removing javascript"
- title: "Linux source install: Write path to bin dir into launcher scripts to make IPC more robust"
- title: "Fix PocketBook 360 driver on windows when no SD card is inserted"
tickets: [4182]
- title: "Fix stopping of a recipe download would prevent it from being re-downloaded until a calibre restart"
tickets: [4007, 4158]
new recipes:
- title: Rzeczpospolita OnLine
author: kwetal
- title: The Huffington Post
author: kwetal
- title: Glenn Beck
author: kwetal
- title: The Bangkok Post
author: kwetal
- title: RIA Novosti in English and Spanish
author: Darko Miletic
- title: Sabah
author: Deniz Oguz
- title: Zaman
author: Deniz Oguz
improved recipes:
- The Hindu
- Slate
- The Toronto Star
- Soldiers Magazine
- The Economist
- Arizona Daily Star
- ESPN
- version: 0.6.26 - version: 0.6.26
date: 2009-12-04 date: 2009-12-04
new features: new features:
- title: "Adroid devices: Allow user to customize the directory for sending books" - title: "Android devices: Allow user to customize the directory for sending books"
description: > description: >
Now the user can choose what directory on the device calibre will send Now the user can choose what directory on the device calibre will send
books to. This allows calibre to support different reading software on Android devices books to. This allows calibre to support different reading software on Android devices
@ -33,7 +146,7 @@
- title: "calibre-debug: Remove --develop-from option as it is no longer needed" - title: "calibre-debug: Remove --develop-from option as it is no longer needed"
bug fixes: bug fixes:
- title: "Content server: Fix password protected access from Adroid devices" - title: "Content server: Fix password protected access from Android devices"
tickets: [3952] tickets: [3952]
- title: "calibredb with output format stanza once again escapes URLs" - title: "calibredb with output format stanza once again escapes URLs"
@ -57,7 +170,7 @@
- title: Speed up download of the free Economist recipe - title: Speed up download of the free Economist recipe
- title: "FB2 Input: Workaround for unescaped amerpsands" - title: "FB2 Input: Workaround for unescaped ampersands"
new recipes: new recipes:
- title: Money Control - title: Money Control
@ -94,7 +207,7 @@
- title: "Conversion pipeline: Add option to control the inserted paragraph indent when using the remove blank line between paragraphs option" - title: "Conversion pipeline: Add option to control the inserted paragraph indent when using the remove blank line between paragraphs option"
- title: When reading metadata from PDf files, look for the ISBN in the file text. - title: When reading metadata from PDF files, look for the ISBN in the file text.
tickets: [3013] tickets: [3013]
- title: Periodically check for updates to calibre instead of just at startup - title: Periodically check for updates to calibre instead of just at startup
@ -188,7 +301,7 @@
- title: Restore all sections to Guardian newspaper download - title: Restore all sections to Guardian newspaper download
- title: "Social metadata download: If the user specifies that they dont want social metadata, don't get tags from the basic metadata sources either" - title: "Social metadata download: If the user specifies that they don't want social metadata, don't get tags from the basic metadata sources either"
new recipes: new recipes:

View File

@ -1,45 +1,45 @@
from calibre.web.feeds.news import BasicNewsRecipe from calibre.web.feeds.news import BasicNewsRecipe
class BangkokPostRecipe(BasicNewsRecipe): class BangkokPostRecipe(BasicNewsRecipe):
__license__ = 'GPL v3' __license__ = 'GPL v3'
__author__ = 'kwetal' __author__ = 'kwetal'
language = 'en_TH' language = 'en_TH'
version = 1 version = 1
title = u'Bangkok Post' title = u'Bangkok Post'
publisher = u'Post Publishing PCL' publisher = u'Post Publishing PCL'
category = u'News' category = u'News'
description = u'The world\'s window to Thailand' description = u'The world\'s window to Thailand'
oldest_article = 7 oldest_article = 7
max_articles_per_feed = 100 max_articles_per_feed = 100
no_stylesheets = True no_stylesheets = True
remove_javascript = True remove_javascript = True
use_embedded_content = False use_embedded_content = False
# Feeds from: http://www.bangkokpost.com/rss/ # Feeds from: http://www.bangkokpost.com/rss/
feeds = [] feeds = []
feeds.append((u'Breaking News', u'http://www.bangkokpost.com/rss/data/breakingnews.xml')) feeds.append((u'Breaking News', u'http://www.bangkokpost.com/rss/data/breakingnews.xml'))
feeds.append((u'Top Stories', u'http://www.bangkokpost.com/rss/data/topstories.xml')) feeds.append((u'Top Stories', u'http://www.bangkokpost.com/rss/data/topstories.xml'))
feeds.append((u'News', u'http://www.bangkokpost.com/rss/data/news.xml')) feeds.append((u'News', u'http://www.bangkokpost.com/rss/data/news.xml'))
feeds.append((u'Business', u'http://www.bangkokpost.com/rss/data/business.xml')) feeds.append((u'Business', u'http://www.bangkokpost.com/rss/data/business.xml'))
feeds.append((u'Opinion', u'http://www.bangkokpost.com/rss/data/opinion.xml')) feeds.append((u'Opinion', u'http://www.bangkokpost.com/rss/data/opinion.xml'))
feeds.append((u'Travel', u'http://www.bangkokpost.com/rss/data/travel.xml')) feeds.append((u'Travel', u'http://www.bangkokpost.com/rss/data/travel.xml'))
feeds.append((u'Leisure', u'http://www.bangkokpost.com/rss/data/leisure.xml')) feeds.append((u'Leisure', u'http://www.bangkokpost.com/rss/data/leisure.xml'))
feeds.append((u'Entertainment', u'http://www.bangkokpost.com/rss/data/entertainment.xml')) feeds.append((u'Entertainment', u'http://www.bangkokpost.com/rss/data/entertainment.xml'))
feeds.append((u'Auto', u'http://www.bangkokpost.com/rss/data/auto.xml')) feeds.append((u'Auto', u'http://www.bangkokpost.com/rss/data/auto.xml'))
feeds.append((u'Life', u'http://www.bangkokpost.com/rss/data/life.xml')) feeds.append((u'Life', u'http://www.bangkokpost.com/rss/data/life.xml'))
feeds.append((u'Tech', u'http://www.bangkokpost.com/rss/data/tect.xml')) feeds.append((u'Tech', u'http://www.bangkokpost.com/rss/data/tect.xml'))
keep_only_tags = [] keep_only_tags = []
keep_only_tags.append(dict(name = 'div', attrs = {'class' : 'entry'})) keep_only_tags.append(dict(name = 'div', attrs = {'class' : 'entry'}))
remove_tags = [] remove_tags = []
remove_tags.append(dict(name = 'div', attrs = {'class': 'article-features'})) remove_tags.append(dict(name = 'div', attrs = {'class': 'article-features'}))
remove_tags.append(dict(name = 'div', attrs = {'class': 'socialBookmark'})) remove_tags.append(dict(name = 'div', attrs = {'class': 'socialBookmark'}))
remove_tags.append(dict(name = 'div', attrs = {'id': 'main-sns'})) remove_tags.append(dict(name = 'div', attrs = {'id': 'main-sns'}))
# Their YouTube movies are displayed in an iframe, if you want those you will have to parse the articles by hand. # Their YouTube movies are displayed in an iframe, if you want those you will have to parse the articles by hand.
# Setting self.recursion to 1, which might resolve this, makes calibre downloading a lot of PDF files, which will cause a very, very very, long download time # Setting self.recursion to 1, which might resolve this, makes calibre downloading a lot of PDF files, which will cause a very, very very, long download time
remove_tags.append(dict(name = 'iframe')) remove_tags.append(dict(name = 'iframe'))

View File

@ -11,7 +11,7 @@ class DeStandaard(BasicNewsRecipe):
__author__ = u'Darko Miletic' __author__ = u'Darko Miletic'
language = 'nl_BE' language = 'nl_BE'
description = u'News from Belgium' description = u'News from Belgium in Dutch'
oldest_article = 7 oldest_article = 7
max_articles_per_feed = 100 max_articles_per_feed = 100
no_stylesheets = True no_stylesheets = True

View File

@ -9,7 +9,7 @@ from calibre.web.feeds.news import BasicNewsRecipe
from calibre.ebooks.BeautifulSoup import Tag from calibre.ebooks.BeautifulSoup import Tag
class DeGentenaarOnline(BasicNewsRecipe): class DeGentenaarOnline(BasicNewsRecipe):
title = 'De Gentenaar Online' title = 'De Gentenaar'
__author__ = 'Darko Miletic' __author__ = 'Darko Miletic'
description = 'News from Belgium in Dutch' description = 'News from Belgium in Dutch'
publisher = 'De Gentenaar' publisher = 'De Gentenaar'

View File

@ -11,7 +11,7 @@ from calibre.web.feeds.news import BasicNewsRecipe
class DeMorganBe(BasicNewsRecipe): class DeMorganBe(BasicNewsRecipe):
title = u'De Morgen' title = u'De Morgen'
__author__ = u'Darko Miletic' __author__ = u'Darko Miletic'
description = u'News from Belgium' description = u'News from Belgium in Dutch'
oldest_article = 7 oldest_article = 7
language = 'nl_BE' language = 'nl_BE'

View File

@ -13,14 +13,32 @@ class ESPN(BasicNewsRecipe):
title = 'ESPN' title = 'ESPN'
description = 'Sports news' description = 'Sports news'
__author__ = 'Kovid Goyal' __author__ = 'Kovid Goyal and Sujata Raman'
language = 'en' language = 'en'
no_stylesheets = True
use_embedded_content = False
remove_javascript = True
needs_subscription = True needs_subscription = True
remove_tags = [dict(name='font', attrs={'class':'footer'}), dict(name='hr', noshade='noshade')] encoding= 'ISO-8859-1'
remove_tags_before = dict(name='font', attrs={'class':'date'}) remove_tags_before = dict(name='font', attrs={'class':'date'})
center_navbar = False center_navbar = False
remove_tags = [
dict(name='font', attrs={'class':'footer'}), dict(name='hr', noshade='noshade'),
dict(name = 'img', src ='/winnercomm/horseracing/DRF.jpg')
]
extra_css = '''
body{font-family:Verdana,Arial,Helvetica,sans-serif; font-size:x-small; font-weight:normal;}
.subhead{color:#666666;font-family:Verdana,sans-serif; font-size:x-small; font-weight:bold;}
.clearfix{font-family:Verdana,sans-serif; font-size:xx-small; }
.date{ font-family:Verdana,Arial,Helvetica,sans-serif ; font-size:xx-small;color:#7A7A7A;}
.byline{ font-family:Verdana,Arial,Helvetica,sans-serif ; font-size:xx-small;color:#666666;}
.headline{font-family:Verdana,Arial,Helvetica,sans-serif ; font-size:large; font-weight:bold;}
'''
feeds = [('Top Headlines', 'http://sports.espn.go.com/espn/rss/news'), feeds = [('Top Headlines', 'http://sports.espn.go.com/espn/rss/news'),
'http://sports.espn.go.com/espn/rss/nfl/news', 'http://sports.espn.go.com/espn/rss/nfl/news',
@ -36,30 +54,11 @@ class ESPN(BasicNewsRecipe):
'http://sports.espn.go.com/espn/rss/ncf/news', 'http://sports.espn.go.com/espn/rss/ncf/news',
'http://sports.espn.go.com/espn/rss/ncaa/news', 'http://sports.espn.go.com/espn/rss/ncaa/news',
'http://sports.espn.go.com/espn/rss/outdoors/news', 'http://sports.espn.go.com/espn/rss/outdoors/news',
'http://sports.espn.go.com/espn/rss/bassmaster/news', #'http://sports.espn.go.com/espn/rss/bassmaster/news',
'http://sports.espn.go.com/espn/rss/oly/news', 'http://sports.espn.go.com/espn/rss/oly/news',
'http://sports.espn.go.com/espn/rss/horse/news'] 'http://sports.espn.go.com/espn/rss/horse/news'
]
def get_browser(self):
br = BasicNewsRecipe.get_browser()
br.set_handle_refresh(False)
if self.username is not None and self.password is not None:
br.open('http://espn.com')
br.select_form(nr=1)
br.form.find_control(name='username', type='text').value = self.username
br.form['password'] = self.password
br.submit()
br.set_handle_refresh(True)
return br
def print_version(self, url):
if 'eticket' in url:
return url.partition('&')[0].replace('story?', 'print?')
match = re.search(r'story\?(id=\d+)', url)
if match:
return 'http://sports.espn.go.com/espn/print?'+match.group(1)+'&type=story'
return None
def preprocess_html(self, soup): def preprocess_html(self, soup):
for div in soup.findAll('div'): for div in soup.findAll('div'):
@ -71,5 +70,42 @@ class ESPN(BasicNewsRecipe):
def postprocess_html(self, soup, first_fetch): def postprocess_html(self, soup, first_fetch):
for div in soup.findAll('div', style=True): for div in soup.findAll('div', style=True):
div['style'] = div['style'].replace('center', 'left') div['style'] = div['style'].replace('center', 'left')
return soup return soup
def get_browser(self):
br = BasicNewsRecipe.get_browser()
br.set_handle_refresh(False)
if self.username is not None and self.password is not None:
br.open('http://espn.com')#('http://espn.go.com/#myespn')
br.select_form(nr=1)
br.form.find_control(name='username', type='text').value = self.username
br.form['password'] = self.password
br.submit()
br.set_handle_refresh(True)
return br
def get_article_url(self, article):
return article.get('guid', None)
def print_version(self, url):
if 'eticket' in url:
return url.partition('&')[0].replace('story?', 'print?')
match = re.search(r'story\?(id=\d+)', url)
if match and 'soccernet' not in url and 'bassmaster' not in url:
return 'http://sports.espn.go.com/espn/print?'+match.group(1)+'&type=story'
else:
if match and 'soccernet' in url:
splitlist = url.split("&", 5)
newurl = 'http://soccernet.espn.go.com/print?'+match.group(1)+'&type=story' + '&' + str(splitlist[2] )
return newurl
#else:
# if 'bassmaster' in url:
# return url
return None

View File

@ -1,97 +1,97 @@
from calibre.web.feeds.news import BasicNewsRecipe from calibre.web.feeds.news import BasicNewsRecipe
from calibre.ebooks.BeautifulSoup import BeautifulSoup, Tag, Comment from calibre.ebooks.BeautifulSoup import BeautifulSoup, Tag, Comment
class GlennBeckRecipe(BasicNewsRecipe): class GlennBeckRecipe(BasicNewsRecipe):
__license__ = 'GPL v3' __license__ = 'GPL v3'
__author__ = 'kwetal' __author__ = 'kwetal'
language = 'en' language = 'en'
version = 1 version = 1
title = u'Glenn Beck' title = u'Glenn Beck'
publisher = u'Premiere Radio Networks' publisher = u'Premiere Radio Networks'
category = u'News, Opinion' category = u'News, Opinion'
description = u'The fusion of entertainment and enlightenment' description = u'The fusion of entertainment and enlightenment'
oldest_article = 7 oldest_article = 7
max_articles_per_feed = 100 max_articles_per_feed = 100
no_stylesheets = True no_stylesheets = True
remove_javascript = True remove_javascript = True
use_embedded_content = False use_embedded_content = False
feeds = [(u'Glenn Beck', u'http://feeds.feedburner.com/GlennBeckArticles')] feeds = [(u'Glenn Beck', u'http://feeds.feedburner.com/GlennBeckArticles')]
def preprocess_html(self, soup): def preprocess_html(self, soup):
# Their html is horribly broken; if we search for the div that has the content BeatifulSoup returns the div with only the headline and no content. # Their html is horribly broken; if we search for the div that has the content BeatifulSoup returns the div with only the headline and no content.
# This is due to illegal nesting of tags. So we do it the hard way. # This is due to illegal nesting of tags. So we do it the hard way.
# We can find this one, and we don't want it. # We can find this one, and we don't want it.
div = soup.find('div', attrs = {'id': 'extraInfo'}) div = soup.find('div', attrs = {'id': 'extraInfo'})
if div: if div:
div.extract() div.extract()
# Don't want these either. # Don't want these either.
iframes = soup.findAll('iframe') iframes = soup.findAll('iframe')
[iframe.extract() for iframe in iframes] [iframe.extract() for iframe in iframes]
# Get empty document. # Get empty document.
freshSoup = self.getFreshSoup() freshSoup = self.getFreshSoup()
# This is the broken div; but we can find the headline. # This is the broken div; but we can find the headline.
newsDiv = soup.find('div', attrs = {'class': 'news-detail'}) newsDiv = soup.find('div', attrs = {'class': 'news-detail'})
if newsDiv: if newsDiv:
if newsDiv.h1: if newsDiv.h1:
freshSoup.body.append(newsDiv.h1) freshSoup.body.append(newsDiv.h1)
# The content is wrapped in <p></p> tags, most of the time anyway. # The content is wrapped in <p></p> tags, most of the time anyway.
counter = 0 counter = 0
for p in soup.findAll('p'): for p in soup.findAll('p'):
if p.get('class') == 'smalltextwhite': if p.get('class') == 'smalltextwhite':
# But we don't want this one. # But we don't want this one.
continue continue
freshSoup.body.append(p) freshSoup.body.append(p)
counter += 1 counter += 1
# Debugging block # Debugging block
#h3 = Tag(freshSoup, 'h3') #h3 = Tag(freshSoup, 'h3')
#h3.append('First counter: ' + str(counter)) #h3.append('First counter: ' + str(counter))
#freshSoup.body.insert(0, h3) #freshSoup.body.insert(0, h3)
# In some articles the content is not wrapped in <p></p> tags. In that case the counter is low. # In some articles the content is not wrapped in <p></p> tags. In that case the counter is low.
# 2 is the magic number that seems to work. # 2 is the magic number that seems to work.
if counter <= 2: if counter <= 2:
# So they are playing hard-to-get: first throw out all comments. # So they are playing hard-to-get: first throw out all comments.
comments = soup.findAll(text = lambda text: isinstance(text, Comment)) comments = soup.findAll(text = lambda text: isinstance(text, Comment))
[comment.extract() for comment in comments] [comment.extract() for comment in comments]
# Find all unwrapped strings. # Find all unwrapped strings.
for txt in soup.findAll(text = True): for txt in soup.findAll(text = True):
raw = txt.strip() raw = txt.strip()
# Debugging line # Debugging line
#para.append(raw + '(parent: ' + txt.parent.name + '; length: ' + str(len(raw)) + '; start: ' + raw[0:4] + ')') #para.append(raw + '(parent: ' + txt.parent.name + '; length: ' + str(len(raw)) + '; start: ' + raw[0:4] + ')')
if (txt.parent.name == 'body' and len(raw) > 0) and not (len(raw) == 6 and raw == '&nbsp;'): if (txt.parent.name == 'body' and len(raw) > 0) and not (len(raw) == 6 and raw == '&nbsp;'):
# This is our content; ignore the rest. # This is our content; ignore the rest.
para = Tag(freshSoup, 'p') para = Tag(freshSoup, 'p')
para.append(raw) para.append(raw)
freshSoup.body.append(para) freshSoup.body.append(para)
counter += 1 counter += 1
# Now if the counter is still 0 or 1 they did something completely different and we still have an empty article. In a last attempt, add the whole content div, just in case. # Now if the counter is still 0 or 1 they did something completely different and we still have an empty article. In a last attempt, add the whole content div, just in case.
if counter < 2: if counter < 2:
freshSoup.body.append(newsDiv) freshSoup.body.append(newsDiv)
# Debugging block # Debugging block
#h3 = Tag(freshSoup, 'h3') #h3 = Tag(freshSoup, 'h3')
#h3.append('Second counter: ' + str(counter)) #h3.append('Second counter: ' + str(counter))
#freshSoup.body.insert(1, h3) #freshSoup.body.insert(1, h3)
return freshSoup return freshSoup
def getFreshSoup(self, title = None): def getFreshSoup(self, title = None):
if title: if title:
return BeautifulSoup('<html><head><title>' + str(title) + '</title></head><body></body></html>') return BeautifulSoup('<html><head><title>' + str(title) + '</title></head><body></body></html>')
else: else:
return BeautifulSoup('<html><head><title></title></head><body></body></html>') return BeautifulSoup('<html><head><title></title></head><body></body></html>')

View File

@ -10,17 +10,21 @@ class TheHindu(BasicNewsRecipe):
language = 'en_IN' language = 'en_IN'
oldest_article = 7 oldest_article = 7
__author__ = _('Kovid Goyal') __author__ = 'Kovid Goyal and Sujata Raman'
max_articles_per_feed = 100 max_articles_per_feed = 100
no_stylesheets = True
remove_tags_before = {'name':'font', 'class':'storyhead'} remove_tags_before = {'name':'font', 'class':'storyhead'}
preprocess_regexps = [ preprocess_regexps = [
(re.compile(r'<!-- story ends -->.*', re.DOTALL), (re.compile(r'<!-- story ends -->.*', re.DOTALL),
lambda match: '</body></html>'), lambda match: '</body></html>'),
] ]
extra_css = '''
.storyhead{font-family:Arial,Helvetica,sans-serif; font-size:large; color:#000099;}
body{font-family:Verdana,Arial,Helvetica,sans-serif; font-size:x-small; text-align:left;}
'''
feeds = [ feeds = [
(u'Main - Font Page', u'http://www.hindu.com/rss/01hdline.xml'), (u'Main - Front Page', u'http://www.hindu.com/rss/01hdline.xml'),
(u'Main - National', u'http://www.hindu.com/rss/02hdline.xml'), (u'Main - National', u'http://www.hindu.com/rss/02hdline.xml'),
(u'Main - International', u'http://www.hindu.com/rss/03hdline.xml'), (u'Main - International', u'http://www.hindu.com/rss/03hdline.xml'),
(u'Main - Opinion', u'http://www.hindu.com/rss/05hdline.xml'), (u'Main - Opinion', u'http://www.hindu.com/rss/05hdline.xml'),
@ -43,6 +47,8 @@ class TheHindu(BasicNewsRecipe):
] ]
def postprocess_html(self, soup, first_fetch): def postprocess_html(self, soup, first_fetch):
for t in soup.findAll(['table', 'tr', 'td']): for t in soup.findAll(['table', 'tr', 'td','center']):
t.name = 'div' t.name = 'div'
return soup return soup

View File

@ -9,9 +9,9 @@ www.hln.be
from calibre.web.feeds.news import BasicNewsRecipe from calibre.web.feeds.news import BasicNewsRecipe
class HLN_be(BasicNewsRecipe): class HLN_be(BasicNewsRecipe):
title = 'HLN Belgium' title = 'Het Laatste Nieuws'
__author__ = 'Darko Miletic' __author__ = 'Darko Miletic'
description = 'Belgium news' description = 'News from Belgium in Dutch'
publisher = 'HLN' publisher = 'HLN'
category = 'news, politics, Belgium' category = 'news, politics, Belgium'
oldest_article = 2 oldest_article = 2

View File

@ -1,134 +1,94 @@
from calibre.web.feeds.news import BasicNewsRecipe from calibre.web.feeds.news import BasicNewsRecipe
from calibre.ebooks.BeautifulSoup import BeautifulSoup, Tag, Comment import re
import re
class HuffingtonPostRecipe(BasicNewsRecipe):
class HuffingtonPostRecipe(BasicNewsRecipe): __license__ = 'GPL v3'
__license__ = 'GPL v3' __author__ = 'kwetal'
__author__ = 'kwetal' language = 'en'
language = 'en' version = 2
version = 1
title = u'The Huffington Post'
title = u'The Huffington Post' publisher = u'huffingtonpost.com'
publisher = u'huffingtonpost.com' category = u'News, Politics'
category = u'News, Politics' description = u'Political Blog'
description = u'Political Blog'
oldest_article = 1.1
oldest_article = 1.5 max_articles_per_feed = 100
max_articles_per_feed = 100 use_embedded_content = True
use_embedded_content = False
encoding = 'utf-8'
no_stylesheets = True remove_empty_feeds = True
remove_javascript = True
# Seems to work best, but YMMV # Feeds from: http://www.huffingtonpost.com/syndication/
simultaneous_downloads = 1 feeds = []
feeds.append((u'Latest News', u'http://feeds.huffingtonpost.com/huffingtonpost/LatestNews'))
feeds = []
feeds.append((u'Latest News', u'http://feeds.huffingtonpost.com/huffingtonpost/LatestNews')) #feeds.append((u'Politics', u'http://www.huffingtonpost.com/feeds/verticals/politics/index.xml'))
# Works, but appears to be a subset of the politics-blog feed feeds.append((u'Politics: News', u'http://www.huffingtonpost.com/feeds/verticals/politics/news.xml'))
#feeds.append((u'Politics', u'http://www.huffingtonpost.com/feeds/verticals/politics/index.xml')) feeds.append((u'Politics: Blog', u'http://www.huffingtonpost.com/feeds/verticals/politics/blog.xml'))
feeds.append((u'Politics', u'http://www.huffingtonpost.com/feeds/verticals/politics/blog.xml'))
# Does not work #feeds.append((u'Media', u'http://www.huffingtonpost.com/feeds/verticals/media/index.xml'))
#feeds.append((u'Politics: News', u'http://www.huffingtonpost.com/feeds/verticals/politics/news.xml')) feeds.append((u'Media: News', u'http://www.huffingtonpost.com/feeds/verticals/media/news.xml'))
# Works, but appears to be a subset of the media-blog feed feeds.append((u'Media: Blog', u'http://www.huffingtonpost.com/feeds/verticals/media/blog.xml'))
#feeds.append((u'Media', u'http://www.huffingtonpost.com/feeds/verticals/media/index.xml'))
feeds.append((u'Media', u'http://www.huffingtonpost.com/feeds/verticals/media/blog.xml')) #feeds.append((u'Business', u'http://www.huffingtonpost.com/feeds/verticals/business/index.xml'))
# Does not work feeds.append((u'Business: News', u'http://www.huffingtonpost.com/feeds/verticals/business/news.xml'))
#feeds.append((u'Media: News', u'http://www.huffingtonpost.com/feeds/verticals/media/news.xml')) feeds.append((u'Business: Blogs', u'http://www.huffingtonpost.com/feeds/verticals/business/blog.xml'))
# Works, but appears to be a subset of the business-blog feed
#feeds.append((u'Business', u'http://www.huffingtonpost.com/feeds/verticals/business/index.xml')) #feeds.append((u'Entertainment', u'http://www.huffingtonpost.com/feeds/verticals/entertainment/index.xml'))
feeds.append((u'Business', u'http://www.huffingtonpost.com/feeds/verticals/business/blog.xml')) feeds.append((u'Entertainment: News', u'http://www.huffingtonpost.com/feeds/verticals/business/news.xml'))
# Does not work feeds.append((u'Entertainment: Blog', u'http://www.huffingtonpost.com/feeds/verticals/entertainment/blog.xml'))
#feeds.append((u'Business: News', u'http://www.huffingtonpost.com/feeds/verticals/business/news.xml'))
feeds.append((u'Original Reporting', u'http://www.huffingtonpost.com/tag/huffpolitics/feed')) #feeds.append((u'Living', u'http://www.huffingtonpost.com/feeds/verticals/living/index.xml'))
feeds.append((u'Original Posts', u'http://www.huffingtonpost.com/feeds/original_posts/index.xml')) feeds.append((u'Living: News', u'http://www.huffingtonpost.com/feeds/verticals/living/news.xml'))
feeds.append((u'Living: Blog', u'http://www.huffingtonpost.com/feeds/verticals/living/blog.xml'))
keep_only_tags = []
# For reporters posts #feeds.append((u'Style', u'http://www.huffingtonpost.com/feeds/verticals/style/index.xml'))
keep_only_tags.append(dict(name = 'div', attrs = {'class' : 'about_reporter_name'})) feeds.append((u'Style: News', u'http://www.huffingtonpost.com/feeds/verticals/style/news.xml'))
keep_only_tags.append(dict(name = 'div', attrs = {'class' : 'entry'})) feeds.append((u'Style: Blog', u'http://www.huffingtonpost.com/feeds/verticals/style/blog.xml'))
# For blog posts
keep_only_tags.append(dict(name = 'div', attrs = {'id' : 'blog_author_info'})) #feeds.append((u'Green', u'http://www.huffingtonpost.com/feeds/verticals/green/index.xml'))
keep_only_tags.append(dict(name = 'div', attrs = {'id' : 'blog_title'})) feeds.append((u'Green: News', u'http://www.huffingtonpost.com/feeds/verticals/green/news.xml'))
feeds.append((u'Green: Blog', u'http://www.huffingtonpost.com/feeds/verticals/green/blog.xml'))
remove_tags = []
remove_tags.append(dict(name = 'div', attrs = {'class' : 'contin_below'})) #feeds.append((u'Technology', u'http://www.huffingtonpost.com/feeds/verticals/technology/index.xml'))
remove_tags.append(dict(name = 'div', attrs = {'class' : 'adver_cont_below'})) feeds.append((u'Technology: News', u'http://www.huffingtonpost.com/feeds/verticals/technology/news.xml'))
remove_tags.append(dict(name = 'div', attrs = {'class' : 'blogger_menu_content'})) feeds.append((u'Technology: Blog', u'http://www.huffingtonpost.com/feeds/verticals/technology/blog.xml'))
remove_tags.append(dict(name = 'div', attrs = {'class' : 'chicklets'}))
remove_tags.append(dict(name = 'div', attrs = {'class' : 'google-searcG-blogp'})) #feeds.append((u'Comedy', u'http://www.huffingtonpost.com/feeds/verticals/comedy/index.xml'))
remove_tags.append(dict(name = 'div', attrs = {'class' : 'forma_email'})) feeds.append((u'Comedy: News', u'http://www.huffingtonpost.com/feeds/verticals/comedy/news.xml'))
remove_tags.append(dict(name = 'div', attrs = {'class' : 'new_share_module'})) feeds.append((u'Comedy: Blog', u'http://www.huffingtonpost.com/feeds/verticals/comedy/blog.xml'))
remove_tags.append(dict(name = 'div', attrs = {'class' : 'cse-branding-right'}))
remove_tags.append(dict(name = 'div', attrs = {'class' : 'clear'})) #feeds.append((u'World', u'http://www.huffingtonpost.com/feeds/verticals/world/index.xml'))
remove_tags.append(dict(name = 'div', attrs = {'style' : re.compile('clear:both;*')})) feeds.append((u'World: News', u'http://www.huffingtonpost.com/feeds/verticals/world/news.xml'))
remove_tags.append(dict(name = 'div', attrs = {'class' : re.compile('facebookvote_reaction_blog.*')})) feeds.append((u'World: Blog', u'http://www.huffingtonpost.com/feeds/verticals/world/blog.xml'))
remove_tags.append(dict(name = 'div', attrs = {'class' : re.compile('read_more.*')}))
remove_tags.append(dict(name = 'div', attrs = {'class' : re.compile('facebookvote_v2.*')})) feeds.append((u'Original Reporting', u'http://www.huffingtonpost.com/tag/huffpolitics/feed'))
remove_tags.append(dict(name = 'div', attrs = {'class' : re.compile('facebookvote_reaction.*')})) feeds.append((u'Original Posts', u'http://www.huffingtonpost.com/feeds/original_posts/index.xml'))
remove_tags.append(dict(name = 'div', attrs = {'class' : 'slideshow_poll'}))
remove_tags = []
remove_attributes = ['style'] remove_tags.append(dict(name='a', attrs={'href' : re.compile('http://feedads\.g\.doubleclick.net.*')}))
remove_tags.append(dict(name='div', attrs={'class' : 'feedflare'}))
extra_css = 'a[href] {color: blue; text-decoration: none; cursor: pointer;}'
remove_attributes = ['style']
def preprocess_html(self, soup):
# Condens the soup. extra_css = '''
soup = self.unComment(self.nukeHead(soup)) body{font-family:verdana,arial,helvetica,geneva,sans-serif ;}
h2{font-size: x-large; font-weight: bold; padding: 0em; margin-bottom: 0.2em;}
# Don't want the picture of the author a[href]{color: blue; text-decoration: none; cursor: pointer;}
blogAuthor = soup.find('div', attrs = {'id': 'blog_author_info'}) '''
if blogAuthor:
for img in blogAuthor.findAll('img'): def get_article_url(self, article):
img.extract() """
Workaround for Feedparser behaviour. If an item has more than one <link/> element, article.link is empty and
byline = soup.find('h2') article.links contains a list of dictionaries.
if byline: Todo: refactor to searching this list to avoid the hardcoded zero-index
h2 = Tag(soup, 'h2') """
raw = self.tag_to_string(byline) link = article.get('link')
h2.append(raw) if not link:
byline.replaceWith(h2) links = article.get('links')
else: if links:
byline = soup.find('div', attrs = {'class': re.compile('about_*reporter_*name')}) link = links[0]['href']
if byline:
h2 = Tag(soup, 'h2') return link
raw = self.tag_to_string(byline)
h2.append(raw.strip())
byline.replaceWith(h2)
headline = soup.find('h1')
if headline:
h1 = Tag(soup, 'h1')
raw = self.tag_to_string(headline)
h1.append(raw)
headline.replaceWith(h1)
return soup
def postprocess_html(self, soup, first):
# Get rid of those pesky <br /> tags
html = re.sub(r'\n<br />\n', '', str(soup))
newSoup = BeautifulSoup(html)
return newSoup
def nukeHead(self, soup):
titleStr = ''
newHead = Tag(soup, 'head')
newTitle = Tag(soup, 'title')
newHead.append(newTitle)
head = soup.head
if head:
title = head.title
if title:
titleStr = self.tag_to_string(title)
newTitle.append(titleStr)
head.replaceWith(newHead)
else:
soup.insert(0, newHead)
return soup
def unComment(self, soup):
comments = soup.findAll(text = lambda text: isinstance(text, Comment))
[comment.extract() for comment in comments]
return soup

View File

@ -15,10 +15,19 @@ class Joelonsoftware(BasicNewsRecipe):
language = 'en' language = 'en'
no_stylesheets = True no_stylesheets = True
use_embedded_content = True use_embedded_content = True
oldest_article = 60 oldest_article = 60
cover_url = 'http://www.joelonsoftware.com/RssJoelOnSoftware.jpg' cover_url = 'http://www.joelonsoftware.com/RssJoelOnSoftware.jpg'
extra_css = '''
h1{font-size: x-small; color:#BF3306;}
h2{ color:#046380; font-size: large;}
.date{ color:#046380; font-size: x-small;}
.author{ color:#046380; font-size: small;}
body{font-family:Georgia,serif;font-size: small;}
'''
html2lrf_options = [ '--comment' , description html2lrf_options = [ '--comment' , description
, '--category' , 'blog,software,news' , '--category' , 'blog,software,news'
@ -26,3 +35,5 @@ class Joelonsoftware(BasicNewsRecipe):
] ]
feeds = [(u'Articles', u'http://www.joelonsoftware.com/rss.xml')] feeds = [(u'Articles', u'http://www.joelonsoftware.com/rss.xml')]

View File

@ -0,0 +1,55 @@
from calibre.web.feeds.news import BasicNewsRecipe
class RzeczpospolitaRecipe(BasicNewsRecipe):
__license__ = 'GPL v3'
__author__ = 'kwetal'
language = 'pl'
version = 1
title = u'Rzeczpospolita OnLine'
publisher = u'Presspublica Sp.'
category = u'News'
description = u'Newspaper'
oldest_article = 1
max_articles_per_feed = 100
no_stylesheets = True
remove_javascript = True
encoding = 'utf-8'
# Seems to work best, but YMMV
simultaneous_downloads = 1
feeds = []
feeds.append(u'http://www.rp.pl/rss/2.html')
feeds.append(u'http://www.rp.pl/rss/10.html')
feeds.append(u'http://www.rp.pl/rss/11.html')
feeds.append(u'http://www.rp.pl/rss/12.html')
feeds.append(u'http://www.rp.pl/rss/4.html')
feeds.append(u'http://www.rp.pl/rss/5.html')
feeds.append(u'http://www.rp.pl/rss/6.html')
feeds.append(u'http://www.rp.pl/rss/7.html')
feeds.append(u'http://www.rp.pl/rss/8.html')
keep_only_tags =[]
keep_only_tags.append(dict(name = 'div', attrs = {'id' : 'storyp'}))
remove_tags =[]
remove_tags.append(dict(name = 'div', attrs = {'id' : 'adk_0'}))
remove_tags.append(dict(name = 'div', attrs = {'class' : 'clr'}))
remove_tags.append(dict(name = 'div', attrs = {'id' : 'share_bottom'}))
remove_tags.append(dict(name = 'div', attrs = {'id' : 'copyright_law'}))
extra_css = '''
body {font-family: verdana, arial, helvetica, geneva, sans-serif ;}
h1{text-align: left;}
h2{font-size: medium; font-weight: bold;}
p.lead {font-weight: bold; text-align: left;}
.authordate {font-size: small; color: #696969;}
.fot{font-size: x-small; color: #666666;}
'''
def print_version(self, url):
start, sep, rest = url.rpartition('/')
forget, sep, index = rest.rpartition(',')
return start + '/' + index + '?print=tak'

View File

@ -14,7 +14,7 @@ class PeriodicalNameHere(BasicNewsRecipe):
# Method variables for customizing downloads # Method variables for customizing downloads
title = 'Slate' title = 'Slate'
description = 'A general-interest publication offering analysis and commentary about politics, news and culture.' description = 'A general-interest publication offering analysis and commentary about politics, news and culture.'
__author__ = 'GRiker' __author__ = 'GRiker and Sujata Raman'
max_articles_per_feed = 20 max_articles_per_feed = 20
oldest_article = 7.0 oldest_article = 7.0
recursions = 0 recursions = 0
@ -50,8 +50,7 @@ class PeriodicalNameHere(BasicNewsRecipe):
# The second entry is for 'Big Money', which comes from a different site, uses different markup # The second entry is for 'Big Money', which comes from a different site, uses different markup
remove_tags = [dict(attrs={ 'id':['toolbox','recommend_tab','insider_ad_wrapper', remove_tags = [dict(attrs={ 'id':['toolbox','recommend_tab','insider_ad_wrapper',
'article_bottom_tools_cntr','fray_article_discussion', 'article_bottom_tools_cntr','fray_article_discussion', 'fray_article_links','bottom_sponsored_links','author_bio',
'fray_article_links','bottom_sponsored_links','author_bio',
'bizbox_links_bottom','ris_links_wrapper','BOXXLE']}), 'bizbox_links_bottom','ris_links_wrapper','BOXXLE']}),
dict(attrs={ 'id':['content-top','service-links-bottom','hed']}) ] dict(attrs={ 'id':['content-top','service-links-bottom','hed']}) ]
@ -60,18 +59,20 @@ class PeriodicalNameHere(BasicNewsRecipe):
excludedAuthorKeywords = [] excludedAuthorKeywords = []
excludedContentKeywords = ['http://twitter.com/Slate'] excludedContentKeywords = ['http://twitter.com/Slate']
extra_css = '.headline {text-align:left;}\n\ extra_css = '''
.byline {font-family: monospace; \ .h1_subhead{font-family:Arial; font-size:small; }
text-align: left;\ h1{font-family:Verdana; font-size:large; }
margin-bottom: 0px;}\n\ .byline {font-family:Georgia; margin-bottom: 0px; color: #660033;}
.dateline {text-align: left; \ .dateline {font-family:Arial; font-size: smaller; height: 0pt; color:#666666;}
font-size: smaller;\ .imagewrapper {font-family:Verdana;font-size:x-small; }
height: 0pt;}\n\ .source {font-family:Verdana; font-size:x-small;}
.imagewrapper {text-align: center;}\n\ .credit {font-family:Verdana; font-size: smaller;}
.source {text-align: left;}\n\ #article_body {font-family:Verdana; }
.credit {text-align: right;\ #content {font-family:Arial; }
font-size: smaller;}\n\ .caption{font-family:Verdana;font-style:italic; font-size:x-small;}
.article_body {text-align: left;}\n' h3{font-family:Arial; color:#666666; font-size:small}
a{color:#0066CC;}
'''
# Local variables to extend class # Local variables to extend class
baseURL = 'http://slate.com' baseURL = 'http://slate.com'
@ -339,6 +340,9 @@ class PeriodicalNameHere(BasicNewsRecipe):
# Change <h1> to <h2> # Change <h1> to <h2>
headline = soup.find("h1") headline = soup.find("h1")
tag = headline.find("span")
tag.name = 'div'
if headline is not None : if headline is not None :
h2tag = Tag(soup, "h2") h2tag = Tag(soup, "h2")
h2tag['class'] = "headline" h2tag['class'] = "headline"
@ -348,8 +352,8 @@ class PeriodicalNameHere(BasicNewsRecipe):
result += substr result += substr
if i < len(strs) -1 : if i < len(strs) -1 :
result += '<br />' result += '<br />'
h2tag.insert(0, result) #h2tag.insert(0, result)
headline.replaceWith(h2tag) #headline.replaceWith(h2tag)
# Fix up the concatenated byline and dateline # Fix up the concatenated byline and dateline
byline = soup.find(True,attrs={'class':'byline'}) byline = soup.find(True,attrs={'class':'byline'})

View File

@ -32,14 +32,14 @@ class TheTorontoStar(BasicNewsRecipe):
remove_tags_before = dict(name='div',attrs={'id':'ts-article_header'}) remove_tags_before = dict(name='div',attrs={'id':'ts-article_header'})
feeds = [ feeds = [
(u'News' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=296' ) (u'News' , u'http://www.thestar.com/rss/82672?' )
,(u'Opinions' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=311' ) ,(u'Opinion' , u'http://www.thestar.com/rss/82863?' )
,(u'Business' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=294' ) ,(u'Business' , u'http://www.thestar.com/rss/82796?' )
,(u'Sports' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=295' ) ,(u'Sports' , u'http://www.thestar.com/rss/82758?' )
,(u'Entertainment', u'http://www.thestar.com/rss/0?searchMode=Query&categories=296' ) ,(u'Entertainment', u'http://www.thestar.com/rss/117741?' )
,(u'Living' , u'http://www.thestar.com/rss/0?searchMode=Query&categories=296' ) ,(u'Living' , u'http://www.thestar.com/rss/82839?' )
,(u'Travel' , u'http://www.thestar.com/rss/82858?searchMode=Lineup' ) ,(u'Travel' , u'http://www.thestar.com/rss/82858?' )
,(u'Science' , u'http://www.thestar.com/rss/82848?searchMode=Query&categories=300') ,(u'Science' , u'http://www.thestar.com/rss/82848?')
] ]
def print_version(self, url): def print_version(self, url):

View File

@ -19,7 +19,7 @@ class DeTijd(BasicNewsRecipe):
no_stylesheets = True no_stylesheets = True
use_embedded_content = False use_embedded_content = False
encoding = 'utf-8' encoding = 'utf-8'
language = 'nl' language = 'nl_BE'
lang = 'nl-BE' lang = 'nl-BE'
direction = 'ltr' direction = 'ltr'

View File

@ -4,8 +4,8 @@ from calibre.ebooks.BeautifulSoup import Tag
class VrijNederlandRecipe(BasicNewsRecipe) : class VrijNederlandRecipe(BasicNewsRecipe) :
__license__ = 'GPL v3' __license__ = 'GPL v3'
__author__ = 'kwetal' __author__ = 'kwetal'
language = 'nl_NL' language = 'nl'
locale = 'nl_NL' locale = 'nl'
version = 1 version = 1
title = u'Vrij Nederland' title = u'Vrij Nederland'

View File

@ -136,6 +136,10 @@ if isosx:
['calibre/devices/usbobserver/usbobserver.c'], ['calibre/devices/usbobserver/usbobserver.c'],
ldflags=['-framework', 'IOKit']) ldflags=['-framework', 'IOKit'])
) )
if islinux:
extensions.append(Extension('libusb',
['calibre/devices/libusb.c'],
ldflags=['-lusb-1.0']))
if isunix: if isunix:

View File

@ -2,7 +2,7 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
__appname__ = 'calibre' __appname__ = 'calibre'
__version__ = '0.6.26' __version__ = '0.6.27'
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>" __author__ = "Kovid Goyal <kovid@kovidgoyal.net>"
import re import re
@ -57,6 +57,7 @@ if plugins is None:
for plugin in ['pictureflow', 'lzx', 'msdes', 'podofo', 'cPalmdoc', for plugin in ['pictureflow', 'lzx', 'msdes', 'podofo', 'cPalmdoc',
'fontconfig', 'pdfreflow', 'progress_indicator'] + \ 'fontconfig', 'pdfreflow', 'progress_indicator'] + \
(['winutil'] if iswindows else []) + \ (['winutil'] if iswindows else []) + \
(['libusb'] if islinux else []) + \
(['usbobserver'] if isosx else []): (['usbobserver'] if isosx else []):
try: try:
p, err = __import__(plugin), '' p, err = __import__(plugin), ''

View File

@ -6,7 +6,7 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
Embedded console for debugging. Embedded console for debugging.
''' '''
import sys, os import sys, os, pprint
from calibre.utils.config import OptionParser from calibre.utils.config import OptionParser
from calibre.constants import iswindows, isosx from calibre.constants import iswindows, isosx
from calibre import prints from calibre import prints
@ -65,7 +65,7 @@ def debug_device_driver():
from calibre.devices.scanner import DeviceScanner from calibre.devices.scanner import DeviceScanner
s = DeviceScanner() s = DeviceScanner()
s.scan() s.scan()
print 'USB devices on system:', repr(s.devices) print 'USB devices on system:\n', pprint.pprint(s.devices)
if iswindows: if iswindows:
wmi = __import__('wmi', globals(), locals(), [], -1) wmi = __import__('wmi', globals(), locals(), [], -1)
drives = [] drives = []
@ -91,7 +91,7 @@ def debug_device_driver():
connected_devices = [] connected_devices = []
for dev in device_plugins(): for dev in device_plugins():
print 'Looking for', dev.__class__.__name__ print 'Looking for', dev.__class__.__name__
connected = s.is_device_connected(dev) connected = s.is_device_connected(dev, debug=True)
if connected: if connected:
connected_devices.append(dev) connected_devices.append(dev)

View File

@ -36,12 +36,12 @@ class ANDROID(USBMS):
SUPPORTS_SUB_DIRS = True SUPPORTS_SUB_DIRS = True
def get_main_ebook_dir(self): def post_open_callback(self):
opts = self.settings() opts = self.settings()
dirs = opts.extra_customization dirs = opts.extra_customization
if not dirs: if not dirs:
dirs = self.EBOOK_DIR_MAIN dirs = self.EBOOK_DIR_MAIN
else: else:
dirs = [x.strip() for x in dirs.split(',')] dirs = [x.strip() for x in dirs.split(',')]
return dirs self.EBOOK_DIR_MAIN = dirs

View File

@ -97,4 +97,3 @@ class POCKETBOOK360(EB600):
OSX_MAIN_MEM = 'Philips Mass Storge Media' OSX_MAIN_MEM = 'Philips Mass Storge Media'
OSX_CARD_A_MEM = 'Philips Mass Storge Media' OSX_CARD_A_MEM = 'Philips Mass Storge Media'

View File

@ -8,7 +8,8 @@ a backend that implement the Device interface for the SONY PRS500 Reader.
import os import os
from calibre.customize import Plugin from calibre.customize import Plugin
from calibre.constants import iswindows from calibre.constants import iswindows, islinux
from calibre.devices.libusb1 import info
class DevicePlugin(Plugin): class DevicePlugin(Plugin):
""" """
@ -88,7 +89,7 @@ class DevicePlugin(Plugin):
return False return False
@classmethod @classmethod
def is_usb_connected(cls, devices_on_system): def is_usb_connected(cls, devices_on_system, debug=False):
''' '''
Return True if a device handled by this plugin is currently connected. Return True if a device handled by this plugin is currently connected.
@ -116,7 +117,8 @@ class DevicePlugin(Plugin):
else: else:
cbcd = cls.BCD cbcd = cls.BCD
if cls.test_bcd(bcd, cbcd) and cls.can_handle((vid, if cls.test_bcd(bcd, cbcd) and cls.can_handle((vid,
pid, bcd)): pid, bcd),
debug=debug):
return True return True
return False return False
@ -138,7 +140,7 @@ class DevicePlugin(Plugin):
return '' return ''
@classmethod @classmethod
def can_handle(cls, device_info): def can_handle(cls, device_info, debug=False):
''' '''
Optional method to perform further checks on a device to see if this driver Optional method to perform further checks on a device to see if this driver
is capable of handling it. If it is not it should return False. This method is capable of handling it. If it is not it should return False. This method
@ -149,6 +151,14 @@ class DevicePlugin(Plugin):
:param device_info: On windows a device ID string. On Unix a tuple of :param device_info: On windows a device ID string. On Unix a tuple of
``(vendor_id, product_id, bcd)``. ``(vendor_id, product_id, bcd)``.
''' '''
if islinux:
try:
if debug:
dev = info(*device_info)
print '\t', repr(dev)
except:
import traceback
traceback.print_exc()
return True return True
def open(self): def open(self):

View File

@ -0,0 +1,195 @@
/*
:mod:`libusb` -- Pythonic interface to libusb
=====================================================
.. module:: fontconfig
:platform: Linux
:synopsis: Pythonic interface to the libusb library
.. moduleauthor:: Kovid Goyal <kovid@kovidgoyal.net> Copyright 2009
*/
#define PY_SSIZE_T_CLEAN
#include <Python.h>
#include <libusb-1.0/libusb.h>
libusb_context *ctxt = NULL;
void cleanup() {
if (ctxt != NULL) {
libusb_exit(ctxt);
}
}
PyObject*
py_libusb_scan(PyObject *self, PyObject *args) {
libusb_device **list = NULL;
struct libusb_device_descriptor dev;
ssize_t ret = 0, i = 0;
PyObject *ans, *pydev, *t;
if (ctxt == NULL) return PyErr_NoMemory();
ret = libusb_get_device_list(ctxt, &list);
if (ret == LIBUSB_ERROR_NO_MEM) return PyErr_NoMemory();
ans = PyTuple_New(ret);
if (ans == NULL) return PyErr_NoMemory();
for (i = 0; i < ret; i++) {
if (libusb_get_device_descriptor(list[i], &dev) != 0) {
PyTuple_SET_ITEM(ans, i, Py_None);
continue;
}
pydev = PyTuple_New(3);
if (pydev == NULL) return PyErr_NoMemory();
t = PyInt_FromLong(dev.idVendor);
if (t == NULL) return PyErr_NoMemory();
PyTuple_SET_ITEM(pydev, 0, t);
t = PyInt_FromLong(dev.idProduct);
if (t == NULL) return PyErr_NoMemory();
PyTuple_SET_ITEM(pydev, 1, t);
t = PyInt_FromLong(dev.bcdDevice);
if (t == NULL) return PyErr_NoMemory();
PyTuple_SET_ITEM(pydev, 2, t);
PyTuple_SET_ITEM(ans, i, pydev);
}
libusb_free_device_list(list, 1);
return ans;
}
PyObject*
py_libusb_info(PyObject *self, PyObject *args) {
unsigned long idVendor, idProduct, bcdDevice;
ssize_t ret = 0, i = 0; int err = 0, n;
libusb_device **list = NULL;
libusb_device_handle *handle = NULL;
struct libusb_device_descriptor dev;
PyObject *ans, *t;
unsigned char data[1000];
if (ctxt == NULL) return PyErr_NoMemory();
if (!PyArg_ParseTuple(args, "LLL", &idVendor, &idProduct, &bcdDevice))
return NULL;
ret = libusb_get_device_list(ctxt, &list);
if (ret == LIBUSB_ERROR_NO_MEM) return PyErr_NoMemory();
ans = PyDict_New();
if (ans == NULL) return PyErr_NoMemory();
for (i = 0; i < ret; i++) {
if (libusb_get_device_descriptor(list[i], &dev) != 0) continue;
if (idVendor == dev.idVendor && idProduct == dev.idProduct && bcdDevice == dev.bcdDevice) {
err = libusb_open(list[i], &handle);
if (!err) {
if (dev.iManufacturer) {
n = libusb_get_string_descriptor_ascii(handle, dev.iManufacturer, data, 1000);
if (n == LIBUSB_ERROR_TIMEOUT) {
libusb_close(handle);
err = libusb_open(list[i], &handle);
if (err) break;
n = libusb_get_string_descriptor_ascii(handle, dev.iManufacturer, data, 1000);
}
if (n > 0) {
t = PyBytes_FromStringAndSize((const char*)data, n);
if (t == NULL) return PyErr_NoMemory();
//Py_INCREF(t);
if (PyDict_SetItemString(ans, "manufacturer", t) != 0) return PyErr_NoMemory();
}
}
if (dev.iProduct) {
n = libusb_get_string_descriptor_ascii(handle, dev.iProduct, data, 1000);
if (n == LIBUSB_ERROR_TIMEOUT) {
libusb_close(handle);
err = libusb_open(list[i], &handle);
if (err) break;
n = libusb_get_string_descriptor_ascii(handle, dev.iManufacturer, data, 1000);
}
if (n > 0) {
t = PyBytes_FromStringAndSize((const char*)data, n);
if (t == NULL) return PyErr_NoMemory();
//Py_INCREF(t);
if (PyDict_SetItemString(ans, "product", t) != 0) return PyErr_NoMemory();
}
}
if (dev.iSerialNumber) {
n = libusb_get_string_descriptor_ascii(handle, dev.iSerialNumber, data, 1000);
if (n == LIBUSB_ERROR_TIMEOUT) {
libusb_close(handle);
err = libusb_open(list[i], &handle);
if (err) break;
n = libusb_get_string_descriptor_ascii(handle, dev.iManufacturer, data, 1000);
}
if (n > 0) {
t = PyBytes_FromStringAndSize((const char*)data, n);
if (t == NULL) return PyErr_NoMemory();
//Py_INCREF(t);
if (PyDict_SetItemString(ans, "serial", t) != 0) return PyErr_NoMemory();
}
}
libusb_close(handle);
}
break;
}
}
libusb_free_device_list(list, 1);
if (err != 0) {
switch (err) {
case LIBUSB_ERROR_NO_MEM:
return PyErr_NoMemory();
case LIBUSB_ERROR_ACCESS:
PyErr_SetString(PyExc_ValueError, "Dont have permission to access this device");
return NULL;
case LIBUSB_ERROR_NO_DEVICE:
PyErr_SetString(PyExc_ValueError, "Device disconnected");
return NULL;
default:
PyErr_SetString(PyExc_ValueError, "Failed to open device");
return NULL;
}
}
return ans;
}
static
PyMethodDef libusb_methods[] = {
{"scan", py_libusb_scan, METH_VARARGS,
"scan()\n\n"
"Return USB devices currently connected to system as a tuple of "
"3-tuples. Each 3-tuple has (idVendor, idProduct, bcdDevice)."
},
{"info", py_libusb_info, METH_VARARGS,
"info(idVendor, idProduct, bcdDevice)\n\n"
"Return extra information about the specified device. "
},
{NULL, NULL, 0, NULL}
};
PyMODINIT_FUNC
initlibusb(void) {
PyObject *m;
m = Py_InitModule3(
"libusb", libusb_methods,
"Interface with USB devices on system."
);
if (m == NULL) return;
if (libusb_init(&ctxt) != 0) ctxt = NULL;
Py_AtExit(cleanup);
}

View File

@ -0,0 +1,27 @@
#!/usr/bin/env python
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
from __future__ import with_statement
__license__ = 'GPL v3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
from calibre.constants import plugins
libusb, libusb_err = plugins.get('libusb', (None, 'Wrong platform'))
def scan():
if libusb_err:
raise RuntimeError('Failed to load libusb1: '+libusb_err)
return set([x for x in libusb.scan() if x is not None])
def info(vendor, product, bcd):
if libusb_err:
raise RuntimeError('Failed to load libusb1: '+libusb_err)
a = libusb.info(vendor, product, bcd)
ans = {}
for k, v in a.items():
ans[k] = v.decode('ascii', 'replace')
return ans

View File

@ -29,7 +29,8 @@ class NOOK(USBMS):
WINDOWS_MAIN_MEM = 'NOOK' WINDOWS_MAIN_MEM = 'NOOK'
WINDOWS_CARD_A_MEM = 'NOOK' WINDOWS_CARD_A_MEM = 'NOOK'
#OSX_MAIN_MEM = '' OSX_MAIN_MEM = 'B&N nook Media'
OSX_CARD_A_MEM = OSX_MAIN_MEM
MAIN_MEMORY_VOLUME_LABEL = 'Nook Main Memory' MAIN_MEMORY_VOLUME_LABEL = 'Nook Main Memory'
STORAGE_CARD_VOLUME_LABEL = 'Nook Storage Card' STORAGE_CARD_VOLUME_LABEL = 'Nook Storage Card'
@ -46,7 +47,4 @@ class NOOK(USBMS):
return drives return drives
def windows_open_callback(self, drives):
if 'main' not in drives and 'carda' in drives:
drives['main'] = drives.pop('carda')
return drives

View File

@ -55,6 +55,9 @@ class PRS505(CLI, Device):
MUST_READ_METADATA = True MUST_READ_METADATA = True
EBOOK_DIR_MAIN = 'database/media/books' EBOOK_DIR_MAIN = 'database/media/books'
def windows_filter_pnp_id(self, pnp_id):
return '_LAUNCHER' in pnp_id
def open(self): def open(self):
self.report_progress = lambda x, y: x self.report_progress = lambda x, y: x
Device.open(self) Device.open(self)

View File

@ -5,10 +5,10 @@ Device scanner that fetches list of devices on system ina platform dependent
manner. manner.
''' '''
import sys, re, os import sys
from calibre import iswindows, isosx, plugins from calibre import iswindows, isosx, plugins, islinux
from calibre.devices import libusb from calibre.devices import libusb1
osx_scanner = win_scanner = linux_scanner = None osx_scanner = win_scanner = linux_scanner = None
@ -24,42 +24,15 @@ elif isosx:
raise RuntimeError('Failed to load the usbobserver plugin: %s'%plugins['usbobserver'][1]) raise RuntimeError('Failed to load the usbobserver plugin: %s'%plugins['usbobserver'][1])
_usb_re = re.compile(r'Vendor\s*=\s*([0-9a-fA-F]+)\s+ProdID\s*=\s*([0-9a-fA-F]+)\s+Rev\s*=\s*([0-9a-fA-f.]+)') linux_scanner = libusb1.scan
_DEVICES = '/proc/bus/usb/devices'
def _linux_scanner():
raw = open(_DEVICES).read()
devices = []
device = None
for x in raw.splitlines():
x = x.strip()
if x.startswith('T:'):
if device:
devices.append(device)
device = []
if device is not None and x.startswith('P:'):
match = _usb_re.search(x)
if match is not None:
ven, prod, bcd = match.group(1), match.group(2), match.group(3)
ven, prod, bcd = int(ven, 16), int(prod, 16), int(bcd.replace('.', ''), 16)
device = [ven, prod, bcd]
if device:
devices.append(device)
return devices
if libusb.has_library:
linux_scanner = libusb.get_devices
else:
linux_scanner = _linux_scanner
class DeviceScanner(object): class DeviceScanner(object):
def __init__(self, *args): def __init__(self, *args):
if isosx and osx_scanner is None: if isosx and osx_scanner is None:
raise RuntimeError('The Python extension usbobserver must be available on OS X.') raise RuntimeError('The Python extension usbobserver must be available on OS X.')
if not (isosx or iswindows) and (not os.access(_DEVICES, os.R_OK) and not libusb.has_library): if islinux and libusb1.libusb_err:
raise RuntimeError('DeviceScanner requires %s or libusb to work.'%_DEVICES) raise RuntimeError('DeviceScanner requires libusb1 to work.')
self.scanner = win_scanner if iswindows else osx_scanner if isosx else linux_scanner self.scanner = win_scanner if iswindows else osx_scanner if isosx else linux_scanner
self.devices = [] self.devices = []
@ -67,8 +40,8 @@ class DeviceScanner(object):
'''Fetch list of connected USB devices from operating system''' '''Fetch list of connected USB devices from operating system'''
self.devices = self.scanner() self.devices = self.scanner()
def is_device_connected(self, device): def is_device_connected(self, device, debug=False):
return device.is_usb_connected(self.devices) return device.is_usb_connected(self.devices, debug=debug)
def main(args=sys.argv): def main(args=sys.argv):

View File

@ -208,6 +208,9 @@ class Device(DeviceConfig, DevicePlugin):
return (msz, casz, cbsz) return (msz, casz, cbsz)
def windows_filter_pnp_id(self, pnp_id):
return False
def windows_match_device(self, drive, attr): def windows_match_device(self, drive, attr):
pnp_id = (str(drive.PNPDeviceID) if not isinstance(drive, basestring) pnp_id = (str(drive.PNPDeviceID) if not isinstance(drive, basestring)
else str(drive)).upper() else str(drive)).upper()
@ -224,6 +227,9 @@ class Device(DeviceConfig, DevicePlugin):
if device_id is None or not test_vendor(): if device_id is None or not test_vendor():
return False return False
if self.windows_filter_pnp_id(pnp_id):
return False
if hasattr(device_id, 'search'): if hasattr(device_id, 'search'):
return device_id.search(pnp_id) is not None return device_id.search(pnp_id) is not None
@ -289,9 +295,12 @@ class Device(DeviceConfig, DevicePlugin):
# This is typically needed when the device has the same # This is typically needed when the device has the same
# WINDOWS_MAIN_MEM and WINDOWS_CARD_A_MEM in which case # WINDOWS_MAIN_MEM and WINDOWS_CARD_A_MEM in which case
# if teh devices is connected without a crad, the above # if the devices is connected without a crad, the above
# will incorrectly identify the main mem as carda # will incorrectly identify the main mem as carda
# See for example the driver for the Nook # See for example the driver for the Nook
if 'main' not in drives and 'carda' in drives:
drives['main'] = drives.pop('carda')
drives = self.windows_open_callback(drives) drives = self.windows_open_callback(drives)
if drives.get('main', None) is None: if drives.get('main', None) is None:
@ -578,7 +587,7 @@ class Device(DeviceConfig, DevicePlugin):
try: try:
self.open_windows() self.open_windows()
except DeviceError: except DeviceError:
time.sleep(5) time.sleep(7)
self.open_windows() self.open_windows()
if isosx: if isosx:
try: try:
@ -587,6 +596,11 @@ class Device(DeviceConfig, DevicePlugin):
time.sleep(7) time.sleep(7)
self.open_osx() self.open_osx()
self.post_open_callback()
def post_open_callback(self):
pass
def eject_windows(self): def eject_windows(self):
from calibre.constants import plugins from calibre.constants import plugins
from threading import Thread from threading import Thread

View File

@ -21,7 +21,7 @@ from calibre.devices.usbms.device import Device
from calibre.devices.usbms.books import BookList, Book from calibre.devices.usbms.books import BookList, Book
from calibre.devices.mime import mime_type_ext from calibre.devices.mime import mime_type_ext
# CLI must come before Device as it implments the CLI functions that # CLI must come before Device as it implements the CLI functions that
# are inherited from the device interface in Device. # are inherited from the device interface in Device.
class USBMS(CLI, Device): class USBMS(CLI, Device):
@ -56,7 +56,9 @@ class USBMS(CLI, Device):
return bl return bl
prefix = self._card_a_prefix if oncard == 'carda' else self._card_b_prefix if oncard == 'cardb' else self._main_prefix prefix = self._card_a_prefix if oncard == 'carda' else self._card_b_prefix if oncard == 'cardb' else self._main_prefix
ebook_dir = self.EBOOK_DIR_CARD_A if oncard == 'carda' else self.EBOOK_DIR_CARD_B if oncard == 'cardb' else self.EBOOK_DIR_MAIN ebook_dir = self.EBOOK_DIR_CARD_A if oncard == 'carda' else \
self.EBOOK_DIR_CARD_B if oncard == 'cardb' else \
self.get_main_ebook_dir()
# Get all books in the ebook_dir directory # Get all books in the ebook_dir directory
if self.SUPPORTS_SUB_DIRS: if self.SUPPORTS_SUB_DIRS:

View File

@ -177,7 +177,7 @@ class LRFStream(LRFObject):
if len(self.stream) != decomp_size: if len(self.stream) != decomp_size:
raise LRFParseError("Stream decompressed size is wrong!") raise LRFParseError("Stream decompressed size is wrong!")
if stream.read(2) != '\x06\xF5': if stream.read(2) != '\x06\xF5':
print "Warning: corrupted end-of-stream tag at %08X; skipping it"%stream.tell()-2 print "Warning: corrupted end-of-stream tag at %08X; skipping it"%(stream.tell()-2)
self.end_stream(None, None) self.end_stream(None, None)

View File

@ -9,6 +9,8 @@ import os
from calibre.customize.conversion import InputFormatPlugin, OptionRecommendation from calibre.customize.conversion import InputFormatPlugin, OptionRecommendation
from calibre.ebooks.pdf.pdftohtml import pdftohtml from calibre.ebooks.pdf.pdftohtml import pdftohtml
from calibre.ebooks.metadata.opf2 import OPFCreator from calibre.ebooks.metadata.opf2 import OPFCreator
from calibre.constants import plugins
pdfreflow, pdfreflow_err = plugins['pdfreflow']
class PDFInput(InputFormatPlugin): class PDFInput(InputFormatPlugin):
@ -24,12 +26,27 @@ class PDFInput(InputFormatPlugin):
help=_('Scale used to determine the length at which a line should ' help=_('Scale used to determine the length at which a line should '
'be unwrapped. Valid values are a decimal between 0 and 1. The ' 'be unwrapped. Valid values are a decimal between 0 and 1. The '
'default is 0.5, this is the median line length.')), 'default is 0.5, this is the median line length.')),
OptionRecommendation(name='new_pdf_engine', recommended_value=False,
help=_('Use the new PDF conversion engine.'))
]) ])
def convert_new(self, stream, accelerators):
from calibre.ebooks.pdf.reflow import PDFDocument
if pdfreflow_err:
raise RuntimeError('Failed to load pdfreflow: ' + pdfreflow_err)
pdfreflow.reflow(stream.read())
xml = open('index.xml', 'rb').read()
PDFDocument(xml, self.opts, self.log)
return os.path.join(os.getcwd(), 'metadata.opf')
def convert(self, stream, options, file_ext, log, def convert(self, stream, options, file_ext, log,
accelerators): accelerators):
log.debug('Converting file to html...') log.debug('Converting file to html...')
# The main html file will be named index.html # The main html file will be named index.html
self.opts, self.log = options, log
if options.new_pdf_engine:
return self.convert_new(stream, accelerators)
pdftohtml(os.getcwd(), stream.name, options.no_images) pdftohtml(os.getcwd(), stream.name, options.no_images)
from calibre.ebooks.metadata.meta import get_metadata from calibre.ebooks.metadata.meta import get_metadata

View File

@ -6,9 +6,6 @@ __license__ = 'GPL v3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>' __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
import sys, os
from copy import deepcopy
from lxml import etree from lxml import etree
class Font(object): class Font(object):
@ -23,7 +20,7 @@ class Text(object):
A = etree.XPath('descendant::a[@href]') A = etree.XPath('descendant::a[@href]')
def __init__(self, text, font_map, classes, opts, log): def __init__(self, text, font_map, opts, log):
self.opts, self.log = opts, log self.opts, self.log = opts, log
self.font_map = font_map self.font_map = font_map
self.top, self.left, self.width, self.height = map(float, map(text.get, self.top, self.left, self.width, self.height = map(float, map(text.get,
@ -33,38 +30,23 @@ class Text(object):
self.color = self.font.color self.color = self.font.color
self.font_family = self.font.family self.font_family = self.font.family
for a in self.A(text): self.text_as_string = etree.tostring(text, method='text',
href = a.get('href') encoding=unicode)
if href.startswith('index.'):
href = href.split('#')[-1]
a.set('href', '#page'+href)
self.text = etree.Element('span')
css = {'font_size':'%.1fpt'%self.font_size, 'color': self.color}
if css not in classes:
classes.append(css)
idx = classes.index(css)
self.text.set('class', 't%d'%idx)
if text.text:
self.text.text = text.text
for x in text:
self.text.append(deepcopy(x))
#print etree.tostring(self.text, encoding='utf-8', with_tail=False)
class Page(object): class Page(object):
def __init__(self, page, font_map, classes, opts, log): def __init__(self, page, font_map, opts, log):
self.opts, self.log = opts, log self.opts, self.log = opts, log
self.font_map = font_map self.font_map = font_map
self.number = int(page.get('number')) self.number = int(page.get('number'))
self.top, self.left, self.width, self.height = map(float, map(page.get, self.width, self.height = map(float, map(page.get,
('top', 'left', 'width', 'height'))) ('width', 'height')))
self.id = 'page%d'%self.number self.id = 'page%d'%self.number
self.texts = [] self.texts = []
for text in page.xpath('descendant::text'): for text in page.xpath('descendant::text'):
self.texts.append(Text(text, self.font_map, classes, self.opts, self.log)) self.texts.append(Text(text, self.font_map, self.opts, self.log))
class PDFDocument(object): class PDFDocument(object):
@ -77,51 +59,18 @@ class PDFDocument(object):
self.fonts = [] self.fonts = []
self.font_map = {} self.font_map = {}
for spec in self.root.xpath('//fontspec'): for spec in self.root.xpath('//fonts'):
self.fonts.append(Font(spec)) self.fonts.append(Font(spec))
self.font_map[self.fonts[-1].id] = self.fonts[-1] self.font_map[self.fonts[-1].id] = self.fonts[-1]
self.pages = [] self.pages = []
self.page_map = {} self.page_map = {}
self.classes = []
for page in self.root.xpath('//page'): for page in self.root.xpath('//page'):
page = Page(page, self.font_map, self.classes, opts, log) page = Page(page, self.font_map, opts, log)
self.page_map[page.id] = page self.page_map[page.id] = page
self.pages.append(page) self.pages.append(page)
def run(opts, pathtopdf, log):
from calibre.constants import plugins
pdfreflow, err = plugins['pdfreflow']
if pdfreflow is None:
raise RuntimeError('Failed to load PDF Reflow plugin: '+err)
data = open(pathtopdf, 'rb').read()
pdfreflow.reflow(data)
index = os.path.join(os.getcwdu(), 'index.xml')
xml = open(index, 'rb').read()
PDFDocument(xml, opts, log)
def option_parser():
from optparse import OptionParser
p = OptionParser()
p.add_option('-v', '--verbose', action='count', default=0)
return p
def main(args=sys.argv):
p = option_parser()
opts, args = p.parse_args(args)
from calibre.utils.logging import default_log
if len(args) < 2:
p.print_help()
default_log('No input PDF file specified', file=sys.stderr)
return 1
run(opts, args[1], default_log)
return 0

View File

@ -105,10 +105,11 @@ class DeviceManager(Thread):
self.device = dev self.device = dev
self.device_class = dev.__class__ self.device_class = dev.__class__
self.connected_slot(True) self.connected_slot(True)
break return True
finally: finally:
if iswindows: if iswindows:
pythoncom.CoUninitialize() pythoncom.CoUninitialize()
return False
def detect_device(self): def detect_device(self):
@ -137,7 +138,11 @@ class DeviceManager(Thread):
self.connected_slot(False) self.connected_slot(False)
device[1] ^= True device[1] ^= True
if connected_devices: if connected_devices:
self.do_connect(connected_devices) if not self.do_connect(connected_devices):
print 'Connect to device failed, retying in 5 seconds...'
time.sleep(5)
if not self.do_connect(connected_devices):
print 'Device connect failed again, giving up'
def umount_device(self): def umount_device(self):
if self.device is not None: if self.device is not None:

View File

@ -287,6 +287,14 @@ class Scheduler(QObject):
finally: finally:
self.lock.unlock() self.lock.unlock()
def recipe_download_failed(self, arg):
self.lock.lock()
try:
self.download_queue.remove(arg['urn'])
finally:
self.lock.unlock()
def download_clicked(self, urn): def download_clicked(self, urn):
if urn is not None: if urn is not None:
return self.download(urn) return self.download(urn)

View File

@ -56,6 +56,12 @@ class Config(QDialog, Ui_ViewerConfig):
class Main(MainWindow, Ui_MainWindow): class Main(MainWindow, Ui_MainWindow):
def create_document(self):
self.document = Document(self.logger, self.opts)
QObject.connect(self.document, SIGNAL('chapter_rendered(int)'), self.chapter_rendered)
QObject.connect(self.document, SIGNAL('page_changed(PyQt_PyObject)'), self.page_changed)
def __init__(self, logger, opts, parent=None): def __init__(self, logger, opts, parent=None):
MainWindow.__init__(self, opts, parent) MainWindow.__init__(self, opts, parent)
Ui_MainWindow.__init__(self) Ui_MainWindow.__init__(self)
@ -65,8 +71,7 @@ class Main(MainWindow, Ui_MainWindow):
self.logger = logger self.logger = logger
self.opts = opts self.opts = opts
self.document = None self.create_document()
self.document = Document(self.logger, self.opts)
self.spin_box_action = self.spin_box = QSpinBox() self.spin_box_action = self.spin_box = QSpinBox()
self.tool_bar.addWidget(self.spin_box) self.tool_bar.addWidget(self.spin_box)
self.tool_bar.addSeparator() self.tool_bar.addSeparator()
@ -76,9 +81,6 @@ class Main(MainWindow, Ui_MainWindow):
self.search = SearchBox2(self) self.search = SearchBox2(self)
self.search.initialize('lrf_viewer_search_history') self.search.initialize('lrf_viewer_search_history')
self.search_action = self.tool_bar.addWidget(self.search) self.search_action = self.tool_bar.addWidget(self.search)
QObject.connect(self.document, SIGNAL('chapter_rendered(int)'), self.chapter_rendered)
QObject.connect(self.document, SIGNAL('page_changed(PyQt_PyObject)'), self.page_changed)
QObject.connect(self.search, SIGNAL('search(PyQt_PyObject, PyQt_PyObject)'), self.find) QObject.connect(self.search, SIGNAL('search(PyQt_PyObject, PyQt_PyObject)'), self.find)
self.action_next_page.setShortcuts([QKeySequence.MoveToNextPage, QKeySequence(Qt.Key_Space)]) self.action_next_page.setShortcuts([QKeySequence.MoveToNextPage, QKeySequence(Qt.Key_Space)])
@ -118,6 +120,7 @@ class Main(MainWindow, Ui_MainWindow):
self.progress_bar.setMinimum(0) self.progress_bar.setMinimum(0)
self.progress_bar.setMaximum(0) self.progress_bar.setMaximum(0)
self.progress_bar.setValue(0) self.progress_bar.setValue(0)
self.create_document()
if stream is not None: if stream is not None:
self.file_name = os.path.basename(stream.name) if hasattr(stream, 'name') else '' self.file_name = os.path.basename(stream.name) if hasattr(stream, 'name') else ''

View File

@ -0,0 +1,266 @@
#!/usr/bin/env python
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
from __future__ import with_statement
__license__ = 'GPL v3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
from functools import partial
from PyQt4.Qt import QAbstractListModel, Qt, QKeySequence, QListView, \
QHBoxLayout, QWidget, QApplication, QStyledItemDelegate, QStyle, \
QVariant, QTextDocument, QRectF, QFrame, QSize, QFont, QKeyEvent
from calibre.gui2 import NONE, error_dialog
from calibre.utils.config import XMLConfig
from calibre.gui2.shortcuts_ui import Ui_Frame
DEFAULTS = Qt.UserRole
DESCRIPTION = Qt.UserRole + 1
CUSTOM = Qt.UserRole + 2
KEY = Qt.UserRole + 3
class Customize(QFrame, Ui_Frame):
def __init__(self, dup_check, parent=None):
QFrame.__init__(self, parent)
self.setupUi(self)
self.setFocusPolicy(Qt.StrongFocus)
self.setAutoFillBackground(True)
self.custom.toggled.connect(self.custom_toggled)
self.custom_toggled(False)
self.capture = 0
self.key = None
self.shorcut1 = self.shortcut2 = None
self.dup_check = dup_check
for x in (1, 2):
button = getattr(self, 'button%d'%x)
button.clicked.connect(partial(self.capture_clicked, which=x))
button.keyPressEvent = partial(self.key_press_event, which=x)
clear = getattr(self, 'clear%d'%x)
clear.clicked.connect(partial(self.clear_clicked, which=x))
def clear_clicked(self, which=0):
button = getattr(self, 'button%d'%which)
button.setText(_('None'))
setattr(self, 'shortcut%d'%which, None)
def custom_toggled(self, checked):
for w in ('1', '2'):
for o in ('label', 'button', 'clear'):
getattr(self, o+w).setEnabled(checked)
def capture_clicked(self, which=1):
self.capture = which
button = getattr(self, 'button%d'%which)
button.setText(_('Press a key...'))
button.setFocus(Qt.OtherFocusReason)
font = QFont()
font.setBold(True)
button.setFont(font)
def key_press_event(self, ev, which=0):
code = ev.key()
if self.capture == 0 or code in (0, Qt.Key_unknown,
Qt.Key_Shift, Qt.Key_Control, Qt.Key_Alt, Qt.Key_Meta,
Qt.Key_AltGr, Qt.Key_CapsLock, Qt.Key_NumLock, Qt.Key_ScrollLock):
return QWidget.keyPressEvent(self, ev)
button = getattr(self, 'button%d'%which)
font = QFont()
button.setFont(font)
sequence = QKeySequence(code|int(ev.modifiers()))
button.setText(sequence.toString())
self.capture = 0
setattr(self, 'shortcut%d'%which, sequence)
dup_desc = self.dup_check(sequence, self.key)
if dup_desc is not None:
error_dialog(self, _('Already assigned'),
unicode(sequence.toString()) + ' ' +
_('already assigned to') + ' ' + dup_desc, show=True)
self.clear_clicked(which=which)
class Delegate(QStyledItemDelegate):
def __init__(self, parent=None):
QStyledItemDelegate.__init__(self, parent)
self.editing_indices = {}
def to_doc(self, index):
doc = QTextDocument()
doc.setHtml(index.data().toString())
return doc
def sizeHint(self, option, index):
if index.row() in self.editing_indices:
return QSize(200, 200)
ans = self.to_doc(index).size().toSize()
ans.setHeight(ans.height()+10)
return ans
def paint(self, painter, option, index):
painter.save()
painter.setClipRect(QRectF(option.rect))
if hasattr(QStyle, 'CE_ItemViewItem'):
QApplication.style().drawControl(QStyle.CE_ItemViewItem, option, painter)
elif option.state & QStyle.State_Selected:
painter.fillRect(option.rect, option.palette.highlight())
painter.translate(option.rect.topLeft())
self.to_doc(index).drawContents(painter)
painter.restore()
def createEditor(self, parent, option, index):
w = Customize(index.model().duplicate_check, parent=parent)
self.editing_indices[index.row()] = w
self.sizeHintChanged.emit(index)
return w
def setEditorData(self, editor, index):
defs = index.data(DEFAULTS).toPyObject()
defs = _(' or ').join([unicode(x.toString(x.NativeText)) for x in defs])
editor.key = unicode(index.data(KEY).toString())
editor.default_shortcuts.setText(_('&Default') + ': %s' % defs)
editor.default_shortcuts.setChecked(True)
editor.header.setText('<b>%s: %s</b>'%(_('Customize shortcuts for'),
unicode(index.data(DESCRIPTION).toString())))
custom = index.data(CUSTOM).toPyObject()
if custom:
editor.custom.setChecked(True)
for x in (0, 1):
button = getattr(editor, 'button%d'%(x+1))
if len(custom) > x:
seq = QKeySequence(custom[x])
button.setText(seq.toString(seq.NativeText))
setattr(editor, 'shortcut%d'%(x+1), seq)
def setModelData(self, editor, model, index):
self.editing_indices.pop(index.row())
self.sizeHintChanged.emit(index)
self.closeEditor.emit(editor, self.NoHint)
custom = []
if editor.custom.isChecked():
for x in ('1', '2'):
sc = getattr(editor, 'shortcut'+x)
if sc is not None:
custom.append(sc)
model.set_data(index, custom)
def updateEditorGeometry(self, editor, option, index):
editor.setGeometry(option.rect)
class Shortcuts(QAbstractListModel):
TEMPLATE = '''
<p><b>{0}</b><br>
Keys: <code>{1}</code></p>
'''
def __init__(self, shortcuts, config_file_base_name, parent=None):
QAbstractListModel.__init__(self, parent)
self.descriptions = {}
for k, v in shortcuts.items():
self.descriptions[k] = v[-1]
self.keys = {}
for k, v in shortcuts.items():
self.keys[k] = v[0]
self.order = list(shortcuts)
self.order.sort(cmp=lambda x,y : cmp(self.descriptions[x],
self.descriptions[y]))
self.sequences = {}
for k, v in self.keys.items():
self.sequences[k] = [QKeySequence(x) for x in v]
self.custom = XMLConfig(config_file_base_name)
def rowCount(self, parent):
return len(self.order)
def get_sequences(self, key):
custom = self.custom.get(key, [])
if custom:
return [QKeySequence(x) for x in custom]
return self.sequences[key]
def get_match(self, event_or_sequence, ignore=tuple()):
q = event_or_sequence
if isinstance(q, QKeyEvent):
q = QKeySequence(q.key()|int(q.modifiers()))
for key in self.order:
if key not in ignore:
for seq in self.get_sequences(key):
if seq.matches(q) == QKeySequence.ExactMatch:
return key
return None
def duplicate_check(self, seq, ignore):
key = self.get_match(seq, ignore=[ignore])
if key is not None:
return self.descriptions[key]
def get_shortcuts(self, key):
return [unicode(x.toString(x.NativeText)) for x in
self.get_sequences(key)]
def data(self, index, role):
row = index.row()
if row < 0 or row >= len(self.order):
return NONE
key = self.order[row]
if role == Qt.DisplayRole:
return QVariant(self.TEMPLATE.format(self.descriptions[key],
_(' or ').join(self.get_shortcuts(key))))
if role == Qt.ToolTipRole:
return QVariant(_('Double click to change'))
if role == DEFAULTS:
return QVariant(self.sequences[key])
if role == DESCRIPTION:
return QVariant(self.descriptions[key])
if role == CUSTOM:
if key in self.custom:
return QVariant(self.custom[key])
else:
return QVariant([])
if role == KEY:
return QVariant(key)
return NONE
def set_data(self, index, custom):
key = self.order[index.row()]
if custom:
self.custom[key] = [unicode(x.toString()) for x in custom]
elif key in self.custom:
del self.custom[key]
def flags(self, index):
if not index.isValid():
return Qt.ItemIsEnabled
return QAbstractListModel.flags(self, index) | Qt.ItemIsEditable
class ShortcutConfig(QWidget):
def __init__(self, model, parent=None):
QWidget.__init__(self, parent)
self._layout = QHBoxLayout()
self.setLayout(self._layout)
self.view = QListView(self)
self._layout.addWidget(self.view)
self.view.setModel(model)
self.delegate = Delegate()
self.view.setItemDelegate(self.delegate)
self.delegate.sizeHintChanged.connect(self.view.scrollTo)
if __name__ == '__main__':
from calibre.gui2 import is_ok_to_use_qt
from calibre.gui2.viewer.keys import SHORTCUTS
is_ok_to_use_qt()
model = Shortcuts(SHORTCUTS, 'shortcuts/viewer')
conf = ShortcutConfig(model)
conf.resize(400, 500)
conf.show()
QApplication.instance().exec_()

View File

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Frame</class>
<widget class="QFrame" name="Frame">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>170</height>
</rect>
</property>
<property name="windowTitle">
<string>Frame</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0" colspan="2">
<widget class="QRadioButton" name="default_shortcuts">
<property name="text">
<string>&amp;Default</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QRadioButton" name="custom">
<property name="text">
<string>&amp;Custom</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="leftMargin">
<number>25</number>
</property>
<item>
<widget class="QLabel" name="label1">
<property name="text">
<string>&amp;Shortcut:</string>
</property>
<property name="buddy">
<cstring>button1</cstring>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="button1">
<property name="toolTip">
<string>Click to change</string>
</property>
<property name="text">
<string>None</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="clear1">
<property name="toolTip">
<string>Clear</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../../../resources/images.qrc">
<normaloff>:/images/clear_left.svg</normaloff>:/images/clear_left.svg</iconset>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="leftMargin">
<number>25</number>
</property>
<item>
<widget class="QLabel" name="label2">
<property name="text">
<string>&amp;Alternate shortcut:</string>
</property>
<property name="buddy">
<cstring>button1</cstring>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="button2">
<property name="toolTip">
<string>Click to change</string>
</property>
<property name="text">
<string>None</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="clear2">
<property name="toolTip">
<string>Clear</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../../../resources/images.qrc">
<normaloff>:/images/clear_left.svg</normaloff>:/images/clear_left.svg</iconset>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="header">
<property name="text">
<string/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../../../resources/images.qrc"/>
</resources>
<connections/>
</ui>

View File

@ -354,7 +354,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
pm = QMenu() pm = QMenu()
ap = self.action_preferences ap = self.action_preferences
pm.addAction(ap.icon(), ap.text()) pm.addAction(ap.icon(), ap.text())
pm.addAction(_('Run welcome wizard')) pm.addAction(QIcon(I('wizard.svg')), _('Run welcome wizard'))
self.connect(pm.actions()[0], SIGNAL('triggered(bool)'), self.connect(pm.actions()[0], SIGNAL('triggered(bool)'),
self.do_config) self.do_config)
self.connect(pm.actions()[1], SIGNAL('triggered(bool)'), self.connect(pm.actions()[1], SIGNAL('triggered(bool)'),
@ -1224,6 +1224,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
temp_files, fmt, arg = self.conversion_jobs.pop(job) temp_files, fmt, arg = self.conversion_jobs.pop(job)
pt = temp_files[0] pt = temp_files[0]
if job.failed: if job.failed:
self.scheduler.recipe_download_failed(arg)
return self.job_exception(job) return self.job_exception(job)
id = self.library_view.model().add_news(pt.name, arg) id = self.library_view.model().add_news(pt.name, arg)
self.library_view.model().reset() self.library_view.model().reset()

View File

@ -18,203 +18,6 @@
<normaloff>:/images/config.svg</normaloff>:/images/config.svg</iconset> <normaloff>:/images/config.svg</normaloff>:/images/config.svg</iconset>
</property> </property>
<layout class="QGridLayout" name="gridLayout_4"> <layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>&amp;Font options</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Se&amp;rif family:</string>
</property>
<property name="buddy">
<cstring>serif_family</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QFontComboBox" name="serif_family"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>&amp;Sans family:</string>
</property>
<property name="buddy">
<cstring>sans_family</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QFontComboBox" name="sans_family"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>&amp;Monospace family:</string>
</property>
<property name="buddy">
<cstring>mono_family</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QFontComboBox" name="mono_family"/>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>&amp;Default font size:</string>
</property>
<property name="buddy">
<cstring>default_font_size</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="default_font_size">
<property name="suffix">
<string> px</string>
</property>
<property name="minimum">
<number>8</number>
</property>
<property name="maximum">
<number>40</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Monospace &amp;font size:</string>
</property>
<property name="buddy">
<cstring>mono_font_size</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="mono_font_size">
<property name="suffix">
<string> px</string>
</property>
<property name="minimum">
<number>8</number>
</property>
<property name="maximum">
<number>50</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>S&amp;tandard font:</string>
</property>
<property name="buddy">
<cstring>standard_font</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="standard_font">
<item>
<property name="text">
<string>Serif</string>
</property>
</item>
<item>
<property name="text">
<string>Sans-serif</string>
</property>
</item>
<item>
<property name="text">
<string>Monospace</string>
</property>
</item>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="opt_remember_window_size">
<property name="text">
<string>Remember last used &amp;window size</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="max_view_width">
<property name="suffix">
<string> px</string>
</property>
<property name="minimum">
<number>100</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Maximum &amp;view width:</string>
</property>
<property name="buddy">
<cstring>max_view_width</cstring>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="hyphenate">
<property name="text">
<string>H&amp;yphenate (break line in the middle of large words)</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QComboBox" name="hyphenate_default_lang">
<property name="toolTip">
<string>The default language to use for hyphenation rules. If the book does not specify a language, this will be used.</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Default &amp;language for hyphenation:</string>
</property>
<property name="buddy">
<cstring>hyphenate_default_lang</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>&amp;User stylesheet</string>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<item row="1" column="0">
<widget class="QPlainTextEdit" name="css"/>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation"> <property name="orientation">
@ -225,6 +28,234 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0">
<widget class="QTabWidget" name="tabs">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>&amp;General</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>&amp;Font options</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Se&amp;rif family:</string>
</property>
<property name="buddy">
<cstring>serif_family</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QFontComboBox" name="serif_family"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>&amp;Sans family:</string>
</property>
<property name="buddy">
<cstring>sans_family</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QFontComboBox" name="sans_family"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>&amp;Monospace family:</string>
</property>
<property name="buddy">
<cstring>mono_family</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QFontComboBox" name="mono_family"/>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>&amp;Default font size:</string>
</property>
<property name="buddy">
<cstring>default_font_size</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="default_font_size">
<property name="suffix">
<string> px</string>
</property>
<property name="minimum">
<number>8</number>
</property>
<property name="maximum">
<number>40</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Monospace &amp;font size:</string>
</property>
<property name="buddy">
<cstring>mono_font_size</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="mono_font_size">
<property name="suffix">
<string> px</string>
</property>
<property name="minimum">
<number>8</number>
</property>
<property name="maximum">
<number>50</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>S&amp;tandard font:</string>
</property>
<property name="buddy">
<cstring>standard_font</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="standard_font">
<item>
<property name="text">
<string>Serif</string>
</property>
</item>
<item>
<property name="text">
<string>Sans-serif</string>
</property>
</item>
<item>
<property name="text">
<string>Monospace</string>
</property>
</item>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="opt_remember_window_size">
<property name="text">
<string>Remember last used &amp;window size</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="max_view_width">
<property name="suffix">
<string> px</string>
</property>
<property name="minimum">
<number>100</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Maximum &amp;view width:</string>
</property>
<property name="buddy">
<cstring>max_view_width</cstring>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="hyphenate">
<property name="text">
<string>H&amp;yphenate (break line in the middle of large words)</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QComboBox" name="hyphenate_default_lang">
<property name="toolTip">
<string>The default language to use for hyphenation rules. If the book does not specify a language, this will be used.</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Default &amp;language for hyphenation:</string>
</property>
<property name="buddy">
<cstring>hyphenate_default_lang</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>&amp;User stylesheet</string>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<item row="1" column="0">
<widget class="QPlainTextEdit" name="css"/>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>&amp;Keyboard shortcuts</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_9">
<property name="text">
<string>Double click to change a keyborad shortcut</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<tabstops> <tabstops>

View File

@ -15,9 +15,11 @@ from PyQt4.QtWebKit import QWebPage, QWebView, QWebSettings
from calibre.utils.config import Config, StringConfig from calibre.utils.config import Config, StringConfig
from calibre.utils.localization import get_language from calibre.utils.localization import get_language
from calibre.gui2.viewer.config_ui import Ui_Dialog from calibre.gui2.viewer.config_ui import Ui_Dialog
from calibre.gui2.shortcuts import Shortcuts, ShortcutConfig
from calibre.ptempfile import PersistentTemporaryFile from calibre.ptempfile import PersistentTemporaryFile
from calibre.constants import iswindows from calibre.constants import iswindows
from calibre import prints, guess_type from calibre import prints, guess_type
from calibre.gui2.viewer.keys import SHORTCUTS
bookmarks = referencing = hyphenation = jquery = jquery_scrollTo = hyphenator = None bookmarks = referencing = hyphenation = jquery = jquery_scrollTo = hyphenator = None
@ -73,8 +75,8 @@ class PythonJS(QObject):
class ConfigDialog(QDialog, Ui_Dialog): class ConfigDialog(QDialog, Ui_Dialog):
def __init__(self, *args): def __init__(self, shortcuts, parent=None):
QDialog.__init__(self, *args) QDialog.__init__(self, parent)
self.setupUi(self) self.setupUi(self)
opts = config().parse() opts = config().parse()
@ -104,6 +106,10 @@ class ConfigDialog(QDialog, Ui_Dialog):
self.hyphenate_default_lang.setCurrentIndex(idx) self.hyphenate_default_lang.setCurrentIndex(idx)
self.hyphenate.setChecked(opts.hyphenate) self.hyphenate.setChecked(opts.hyphenate)
self.hyphenate_default_lang.setEnabled(opts.hyphenate) self.hyphenate_default_lang.setEnabled(opts.hyphenate)
self.shortcuts = shortcuts
self.shortcut_config = ShortcutConfig(shortcuts, parent=self)
p = self.tabs.widget(1)
p.layout().addWidget(self.shortcut_config)
def accept(self, *args): def accept(self, *args):
@ -139,15 +145,15 @@ class Document(QWebPage):
settings.setFontFamily(QWebSettings.FixedFont, opts.mono_family) settings.setFontFamily(QWebSettings.FixedFont, opts.mono_family)
def do_config(self, parent=None): def do_config(self, parent=None):
d = ConfigDialog(parent) d = ConfigDialog(self.shortcuts, parent)
if d.exec_() == QDialog.Accepted: if d.exec_() == QDialog.Accepted:
self.set_font_settings() self.set_font_settings()
self.set_user_stylesheet() self.set_user_stylesheet()
self.misc_config() self.misc_config()
self.triggerAction(QWebPage.Reload) self.triggerAction(QWebPage.Reload)
def __init__(self, *args): def __init__(self, shortcuts, parent=None):
QWebPage.__init__(self, *args) QWebPage.__init__(self, parent)
self.setObjectName("py_bridge") self.setObjectName("py_bridge")
self.debug_javascript = False self.debug_javascript = False
self.current_language = None self.current_language = None
@ -155,6 +161,7 @@ class Document(QWebPage):
self.setLinkDelegationPolicy(self.DelegateAllLinks) self.setLinkDelegationPolicy(self.DelegateAllLinks)
self.scroll_marks = [] self.scroll_marks = []
self.shortcuts = shortcuts
pal = self.palette() pal = self.palette()
pal.setBrush(QPalette.Background, QColor(0xee, 0xee, 0xee)) pal.setBrush(QPalette.Background, QColor(0xee, 0xee, 0xee))
self.setPalette(pal) self.setPalette(pal)
@ -337,7 +344,10 @@ class Document(QWebPage):
@property @property
def height(self): def height(self):
return self.javascript('document.body.offsetHeight', 'int') # contentsSize gives inaccurate results ans = self.javascript('document.body.offsetHeight', 'int') # contentsSize gives inaccurate results
if ans == 0:
ans = self.mainFrame().contentsSize().height()
return ans
@property @property
def width(self): def width(self):
@ -366,13 +376,14 @@ class DocumentView(QWebView):
def __init__(self, *args): def __init__(self, *args):
QWebView.__init__(self, *args) QWebView.__init__(self, *args)
self.debug_javascript = False self.debug_javascript = False
self.shortcuts = Shortcuts(SHORTCUTS, 'shortcuts/viewer')
self.self_closing_pat = re.compile(r'<([a-z]+)\s+([^>]+)/>', self.self_closing_pat = re.compile(r'<([a-z]+)\s+([^>]+)/>',
re.IGNORECASE) re.IGNORECASE)
self.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) self.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding))
self._size_hint = QSize(510, 680) self._size_hint = QSize(510, 680)
self.initial_pos = 0.0 self.initial_pos = 0.0
self.to_bottom = False self.to_bottom = False
self.document = Document(self) self.document = Document(self.shortcuts, parent=self)
self.setPage(self.document) self.setPage(self.document)
self.manager = None self.manager = None
self._reference_mode = False self._reference_mode = False
@ -407,6 +418,7 @@ class DocumentView(QWebView):
self.document.do_config(parent) self.document.do_config(parent)
if self.manager is not None: if self.manager is not None:
self.manager.set_max_width() self.manager.set_max_width()
self.setFocus(Qt.OtherFocusReason)
def bookmark(self): def bookmark(self):
return self.document.bookmark() return self.document.bookmark()
@ -480,6 +492,7 @@ class DocumentView(QWebView):
self.manager.load_started() self.manager.load_started()
self.loading_url = QUrl.fromLocalFile(path) self.loading_url = QUrl.fromLocalFile(path)
#self.setContent(QByteArray(html.encode(path.encoding)), mt, QUrl.fromLocalFile(path)) #self.setContent(QByteArray(html.encode(path.encoding)), mt, QUrl.fromLocalFile(path))
#open('/tmp/t.html', 'wb').write(html.encode(path.encoding))
self.setHtml(html, self.loading_url) self.setHtml(html, self.loading_url)
self.turn_off_internal_scrollbars() self.turn_off_internal_scrollbars()
@ -576,8 +589,8 @@ class DocumentView(QWebView):
else: else:
self.document.set_bottom_padding(0) self.document.set_bottom_padding(0)
opos = self.document.ypos opos = self.document.ypos
lower_limit = opos + delta_y lower_limit = opos + delta_y # Max value of top y co-ord after scrolling
max_y = self.document.height - window_height max_y = self.document.height - window_height # The maximum possible top y co-ord
if max_y < lower_limit: if max_y < lower_limit:
self.document.set_bottom_padding(lower_limit - max_y) self.document.set_bottom_padding(lower_limit - max_y)
max_y = self.document.height - window_height max_y = self.document.height - window_height
@ -663,31 +676,35 @@ class DocumentView(QWebView):
return ret return ret
def keyPressEvent(self, event): def keyPressEvent(self, event):
key = event.key() key = self.shortcuts.get_match(event)
if key in [Qt.Key_PageDown, Qt.Key_Space, Qt.Key_Down]: if key == 'Next Page':
self.next_page() self.next_page()
elif key in [Qt.Key_PageUp, Qt.Key_Backspace, Qt.Key_Up]: elif key == 'Previous Page':
self.previous_page() self.previous_page()
elif key in [Qt.Key_Home]: elif key == 'Section Top':
if event.modifiers() & Qt.ControlModifier: self.scroll_to(0)
if self.manager is not None: elif key == 'Document Top':
self.manager.goto_start() if self.manager is not None:
else: self.manager.goto_start()
self.scroll_to(0) elif key == 'Section Bottom':
elif key in [Qt.Key_End]: self.scroll_to(1)
if event.modifiers() & Qt.ControlModifier: elif key == 'Document Bottom':
if self.manager is not None: if self.manager is not None:
self.manager.goto_end() self.manager.goto_end()
else: elif key == 'Down':
self.scroll_to(1)
elif key in [Qt.Key_J]:
self.scroll_by(y=15) self.scroll_by(y=15)
elif key in [Qt.Key_K]: elif key == 'Up':
self.scroll_by(y=-15) self.scroll_by(y=-15)
elif key in [Qt.Key_H]: elif key == 'Left':
self.scroll_by(x=-15) self.scroll_by(x=-15)
elif key in [Qt.Key_L]: elif key == 'Right':
self.scroll_by(x=15) self.scroll_by(x=15)
elif key == 'Next Section':
if self.manager is not None:
self.manager.goto_next_section()
elif key == 'Previous Section':
if self.manager is not None:
self.manager.goto_previous_section()
else: else:
return QWebView.keyPressEvent(self, event) return QWebView.keyPressEvent(self, event)

View File

@ -0,0 +1,47 @@
#!/usr/bin/env python
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
from __future__ import with_statement
__license__ = 'GPL v3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
SHORTCUTS = {
'Next Page' : (['PgDown', 'Space'],
_('Scroll to the next page')),
'Previous Page' : (['PgUp', 'Backspace'],
_('Scroll to the previous page')),
'Next Section' : (['Ctrl+PgDown', 'Ctrl+Down'],
_('Scroll to the next section')),
'Previous Section' : (['Ctrl+PgUp', 'Ctrl+Up'],
_('Scroll to the previous section')),
'Section Bottom' : (['End'],
_('Scroll to the bottom of the section')),
'Section Top' : (['Home'],
_('Scroll to the top of the section')),
'Document Bottom' : (['Ctrl+End'],
_('Scroll to the end of the document')),
'Document Top' : (['Ctrl+Home'],
_('Scroll to the start of the document')),
'Down' : (['J', 'Down'],
_('Scroll down')),
'Up' : (['K', 'Up'],
_('Scroll up')),
'Left' : (['H', 'Left'],
_('Scroll left')),
'Right' : (['L', 'Right'],
_('Scroll right')),
}

View File

@ -453,6 +453,15 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
self.pending_bookmark = None self.pending_bookmark = None
return self.current_index return self.current_index
def goto_next_section(self):
nindex = (self.current_index + 1)%len(self.iterator.spine)
self.load_path(self.iterator.spine[nindex])
def goto_previous_section(self):
pindex = (self.current_index - 1 + len(self.iterator.spine)) \
% len(self.iterator.spine)
self.load_path(self.iterator.spine[pindex])
def load_path(self, path, pos=0.0): def load_path(self, path, pos=0.0):
self.open_progress_indicator(_('Laying out %s')%self.current_title) self.open_progress_indicator(_('Laying out %s')%self.current_title)
self.view.load_path(path, pos=pos) self.view.load_path(path, pos=pos)

View File

@ -92,6 +92,11 @@ class Sony505(Sony500):
name = 'SONY Reader Pocket/Touch Edition' name = 'SONY Reader Pocket/Touch Edition'
id = 'prs505' id = 'prs505'
class Nook(Sony505):
id = 'nook'
name = 'Nook'
manufacturer = 'Barnes & Noble'
class CybookG3(Device): class CybookG3(Device):
name = 'Cybook Gen 3' name = 'Cybook Gen 3'

View File

@ -264,7 +264,7 @@ Why does |app| show only some of my fonts on OS X?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|app| embeds fonts in ebook files it creates. E-book files support embedding only TrueType (.ttf) fonts. Most fonts on OS X systems are in .dfont format, thus they cannot be embedded. |app| shows only TrueType fonts founf on your system. You can obtain many TrueType fonts on the web. Simply download the .ttf files and add them to the Library/Fonts directory in your home directory. |app| embeds fonts in ebook files it creates. E-book files support embedding only TrueType (.ttf) fonts. Most fonts on OS X systems are in .dfont format, thus they cannot be embedded. |app| shows only TrueType fonts founf on your system. You can obtain many TrueType fonts on the web. Simply download the .ttf files and add them to the Library/Fonts directory in your home directory.
The graphical user interface of |app| is not starting on Windows? |app| is not starting on Windows?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There can be several causes for this: There can be several causes for this:
@ -279,8 +279,21 @@ If it still wont launch, start a command prompt (press the windows key and R; th
calibre-debug -g calibre-debug -g
Post any output you see in a help message on the `Forum <http://www.mobileread.com/forums/forumdisplay.php?f=166>`_. Post any output you see in a help message on the `Forum <http://www.mobileread.com/forums/forumdisplay.php?f=166>`_.
My antivirus programs claims |app| is a virus/trojan? |app| is not starting on OS X?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can obtain debug output about why |app| is not starting by running `Console.app`. Debug output will
be printed to it. If the debug output contains a line that looks like::
Qt: internal: -108: Error ATSUMeasureTextImage text/qfontengine_mac.mm
then the problem is probably a corrupted font cache. You can clear the cache by following these
`instructions <http://www.macworld.com/article/139383/2009/03/fontcacheclear.html>`_. If that doesn't
solve it, look for a corrupted font file on your system, in ~/Library/Fonts or the like.
My antivirus program claims |app| is a virus/trojan?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Your antivirus program is wrong. |app| is a completely open source product. You can actually browse the source code yourself (or hire someone to do it for you) to verify that it is not a virus. Please report the false identification to whatever company you buy your antivirus software from. If the antivirus program is preventing you from downloading/installing |app|, disable it temporarily, install |app| and then re-enable it. Your antivirus program is wrong. |app| is a completely open source product. You can actually browse the source code yourself (or hire someone to do it for you) to verify that it is not a virus. Please report the false identification to whatever company you buy your antivirus software from. If the antivirus program is preventing you from downloading/installing |app|, disable it temporarily, install |app| and then re-enable it.

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-02 22:46+0000\n" "POT-Creation-Date: 2009-12-04 21:05+0000\n"
"PO-Revision-Date: 2009-12-03 00:18+0000\n" "PO-Revision-Date: 2009-12-04 19:59+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n" "Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: Arabic <ar@li.org>\n" "Language-Team: Arabic <ar@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-03 04:38+0000\n" "X-Launchpad-Export-Date: 2009-12-05 04:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -41,8 +41,8 @@ msgstr "لا يفعل شيءً"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:45 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62
@ -55,8 +55,8 @@ msgstr "لا يفعل شيءً"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /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/pdf.py:28
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:18 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:40 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44
@ -68,9 +68,9 @@ msgstr "لا يفعل شيءً"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /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/odt/input.py:51
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:893 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:895
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:900
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:958 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:960
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105
@ -120,7 +120,7 @@ msgstr "لا يفعل شيءً"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:877
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211
#: /home/kovid/work/calibre/src/calibre/library/cli.py:282 #: /home/kovid/work/calibre/src/calibre/library/cli.py:281
#: /home/kovid/work/calibre/src/calibre/library/database.py:913 #: /home/kovid/work/calibre/src/calibre/library/database.py:913
#: /home/kovid/work/calibre/src/calibre/library/database2.py:702 #: /home/kovid/work/calibre/src/calibre/library/database2.py:702
#: /home/kovid/work/calibre/src/calibre/library/database2.py:714 #: /home/kovid/work/calibre/src/calibre/library/database2.py:714
@ -157,7 +157,7 @@ msgstr "قارئ الميتاداتا"
msgid "Metadata writer" msgid "Metadata writer"
msgstr "كاتب الميتاداتا" msgstr "كاتب الميتاداتا"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:13 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14
msgid "" msgid ""
"Follow all local links in an HTML file and create a ZIP file containing all " "Follow all local links in an HTML file and create a ZIP file containing all "
"linked files. This plugin is run every time you add an HTML file to the " "linked files. This plugin is run every time you add an HTML file to the "
@ -166,53 +166,65 @@ msgstr ""
"إلتحاق بكل الوصلات المحلية في ملف HTML وإنشاء ملف ZIP ليحتوي كل الملفات " "إلتحاق بكل الوصلات المحلية في ملف HTML وإنشاء ملف ZIP ليحتوي كل الملفات "
"الموصولة. هذا الملحق ينفّذ كل مرة تضيف ملف HTML إلى المكتبة." "الموصولة. هذا الملحق ينفّذ كل مرة تضيف ملف HTML إلى المكتبة."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:48 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49
msgid "" msgid ""
"Character encoding for the input HTML files. Common choices include: cp1252, " "Character encoding for the input HTML files. Common choices include: cp1252, "
"latin1, iso-8859-1 and utf-8." "latin1, iso-8859-1 and utf-8."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56
msgid ""
" Create a PMLZ archive containing the PML file and all images "
"in the directory pmlname_img or images file containing all linked "
"files. This plugin is run every time you add an PML file to the "
"library. "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87
msgid "Character encoding for the input PML files. Should ways be: cp1252."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94
msgid "Extract cover from comic files" msgid "Extract cover from comic files"
msgstr "استخرج الغلاف من ملف الرسومات" msgstr "استخرج الغلاف من ملف الرسومات"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:77 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:115
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:89 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:127
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:99 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:137
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:109 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:147
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:158
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:168
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:178
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:150 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:188
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:160 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:198
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:170 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:208
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:219
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:192 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:230
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:242
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:225 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:263
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:236 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:274
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:284
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:294
msgid "Read metadata from %s files" msgid "Read metadata from %s files"
msgstr "يقرأ الميتاداتا من الملفات %s" msgstr "يقرأ الميتاداتا من الملفات %s"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:215 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:253
msgid "Read metadata from ebooks in RAR archives" msgid "Read metadata from ebooks in RAR archives"
msgstr "إقرأ ميتاداتا لكتب في أرشيفات RAR" msgstr "إقرأ ميتاداتا لكتب في أرشيفات RAR"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:305
msgid "Read metadata from ebooks in ZIP archives" msgid "Read metadata from ebooks in ZIP archives"
msgstr "إقرأ ميتاداتا لكتب في أرشيفات ZIP" msgstr "إقرأ ميتاداتا لكتب في أرشيفات ZIP"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:278 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:316
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:288 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:326
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:336
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:358
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:331 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:369
msgid "Set metadata in %s files" msgid "Set metadata in %s files"
msgstr "ضبط الميتاداتا في الملفات %s" msgstr "ضبط الميتاداتا في الملفات %s"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:347
msgid "Set metadata from %s files" msgid "Set metadata from %s files"
msgstr "ضبط ميتاداتا من ملفات %s" msgstr "ضبط ميتاداتا من ملفات %s"
@ -1156,7 +1168,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113 #: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:114
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
msgid "Table of Contents:" msgid "Table of Contents:"
@ -1737,7 +1749,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323
msgid "Cover" msgid "Cover"
msgstr "الغلاف" msgstr "الغلاف"
@ -1768,70 +1780,70 @@ msgstr ""
msgid "All articles" msgid "All articles"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324
msgid "Title Page" msgid "Title Page"
msgstr "صقحة العنوان" msgstr "صقحة العنوان"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168
msgid "Table of Contents" msgid "Table of Contents"
msgstr "المحتويات" msgstr "المحتويات"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326
msgid "Index" msgid "Index"
msgstr "الفهرس" msgstr "الفهرس"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327
msgid "Glossary" msgid "Glossary"
msgstr "المسرد" msgstr "المسرد"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328
msgid "Acknowledgements" msgid "Acknowledgements"
msgstr "شكر وتقدير" msgstr "شكر وتقدير"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329
msgid "Bibliography" msgid "Bibliography"
msgstr "ببليوغرافيا" msgstr "ببليوغرافيا"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330
msgid "Colophon" msgid "Colophon"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331
msgid "Copyright" msgid "Copyright"
msgstr "حقوق المؤلف" msgstr "حقوق المؤلف"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332
msgid "Dedication" msgid "Dedication"
msgstr "الإهداء" msgstr "الإهداء"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333
msgid "Epigraph" msgid "Epigraph"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334
msgid "Foreword" msgid "Foreword"
msgstr "افتتاحية" msgstr "افتتاحية"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335
msgid "List of Illustrations" msgid "List of Illustrations"
msgstr "قائمة الرسوم" msgstr "قائمة الرسوم"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336
msgid "List of Tables" msgid "List of Tables"
msgstr "قائمة الجداول" msgstr "قائمة الجداول"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337
msgid "Notes" msgid "Notes"
msgstr "الملاحظات" msgstr "الملاحظات"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338
msgid "Preface" msgid "Preface"
msgstr "افتتاحية" msgstr "افتتاحية"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339
msgid "Main Text" msgid "Main Text"
msgstr "النصّ الرئيسي" msgstr "النصّ الرئيسي"
@ -1893,11 +1905,11 @@ msgid ""
"Generate an Adobe \"page-map\" file if pagination information is available." "Generate an Adobe \"page-map\" file if pagination information is available."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126
msgid "Footnotes" msgid "Footnotes"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135
msgid "Sidebar" msgid "Sidebar"
msgstr "" msgstr ""
@ -3059,7 +3071,7 @@ msgid "RB Output"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1416 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1420
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
@ -3677,7 +3689,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1094
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
msgid "Error" msgid "Error"
msgstr "خطأ" msgstr "خطأ"
@ -4353,7 +4365,7 @@ msgid "Choose formats for "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:921 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925
msgid "Books" msgid "Books"
msgstr "كتب" msgstr "كتب"
@ -5231,52 +5243,52 @@ msgstr "فتح الكتب الإلكترونية"
msgid "Configure" msgid "Configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:24
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:26
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:28
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:30
msgid "Do not check for updates" msgid "Do not check for updates"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:80
msgid "If you are sure it is not running" msgid "If you are sure it is not running"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:82
msgid "Cannot Start " msgid "Cannot Start "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:83
msgid "%s is already running." msgid "%s is already running."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:86
msgid "may be running in the system tray, in the" msgid "may be running in the system tray, in the"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:88
msgid "upper right region of the screen." msgid "upper right region of the screen."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:90
msgid "lower right region of the screen." msgid "lower right region of the screen."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:93
msgid "try rebooting your computer." msgid "try rebooting your computer."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:95
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:107
msgid "try deleting the file" msgid "try deleting the file"
msgstr "" msgstr ""
@ -5598,7 +5610,7 @@ msgid "Save to disk in a single directory"
msgstr "حفظ إلى القرص في دليل واحد" msgstr "حفظ إلى القرص في دليل واحد"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1518 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -5633,7 +5645,7 @@ msgid "Calibre Library"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1661 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1665
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
@ -5673,170 +5685,178 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:913 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:956 msgid "How many empty books?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:873
msgid "How many empty boks should be added?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:917
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:960
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:922 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926
msgid "EPUB Books" msgid "EPUB Books"
msgstr "كتب EPUB" msgstr "كتب EPUB"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:923 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927
msgid "LRF Books" msgid "LRF Books"
msgstr "كتب LRF" msgstr "كتب LRF"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:924 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928
msgid "HTML Books" msgid "HTML Books"
msgstr "كتب HTML" msgstr "كتب HTML"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929
msgid "LIT Books" msgid "LIT Books"
msgstr "كتب LIT" msgstr "كتب LIT"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930
msgid "MOBI Books" msgid "MOBI Books"
msgstr "كتب MOBI" msgstr "كتب MOBI"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:931
msgid "Text books" msgid "Text books"
msgstr "كتب نصّية" msgstr "كتب نصّية"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:932
msgid "PDF Books" msgid "PDF Books"
msgstr "كتب PDF" msgstr "كتب PDF"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933
msgid "Comics" msgid "Comics"
msgstr "الرسومات" msgstr "الرسومات"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934
msgid "Archives" msgid "Archives"
msgstr "أرشيفات" msgstr "أرشيفات"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:965 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:969
msgid "Failed to read metadata" msgid "Failed to read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:970
msgid "Failed to read metadata from the following" msgid "Failed to read metadata from the following"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "الكتب المختارة <b>سوف تحذف تماماً</b> من حاسوبك. هل أنت متأكّد؟" msgstr "الكتب المختارة <b>سوف تحذف تماماً</b> من حاسوبك. هل أنت متأكّد؟"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1047
msgid "Cannot download metadata" msgid "Cannot download metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1044 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1048
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1101 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1134 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1138
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1163
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1271 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1275
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063
msgid "social metadata" msgid "social metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "covers" msgid "covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "metadata" msgid "metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067
msgid "Downloading %s for %d book(s)" msgid "Downloading %s for %d book(s)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089
msgid "Failed to download some metadata" msgid "Failed to download some metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1086 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090
msgid "Failed to download metadata for the following:" msgid "Failed to download metadata for the following:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1093
msgid "Failed to download metadata:" msgid "Failed to download metadata:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1100 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1104
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1133 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1137
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "لا يمكن تحرير الميتاداتا" msgstr "لا يمكن تحرير الميتاداتا"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1162
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1161 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1165
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "إختيار دليل الوجهة" msgstr "إختيار دليل الوجهة"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1188 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192
msgid "Error while saving" msgid "Error while saving"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1189 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193
msgid "There was an error while saving." msgid "There was an error while saving."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1196 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201
msgid "Could not save some books" msgid "Could not save some books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1198 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202
msgid "Click the show details button to see which ones." msgid "Click the show details button to see which ones."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1230 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1274
msgid "Cannot convert" msgid "Cannot convert"
msgstr "لا يمكن تحويله" msgstr "لا يمكن تحويله"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1299 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1303
msgid "Starting conversion of %d book(s)" msgid "Starting conversion of %d book(s)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1429 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1464
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1432
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1445 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1449
msgid "Multiple Books Selected" msgid "Multiple Books Selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1446 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1450
msgid "" msgid ""
"You are attempting to open %d books. Opening too many books at once can be " "You are attempting to open %d books. Opening too many books at once can be "
"slow and have a negative effect on the responsiveness of your computer. Once " "slow and have a negative effect on the responsiveness of your computer. Once "
@ -5844,97 +5864,97 @@ msgid ""
"continue?" "continue?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1461 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1465
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1502 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1506
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1503 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1546 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1550
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1547 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1599 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1603
msgid "Error talking to device" msgid "Error talking to device"
msgstr "خطأ في الاتصال بالجهاز" msgstr "خطأ في الاتصال بالجهاز"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1600 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1604
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1623 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1627
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1641 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1645
msgid "Conversion Error" msgid "Conversion Error"
msgstr "خطأ في التحويل" msgstr "خطأ في التحويل"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1624 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1628
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using third party tools." "first remove the DRM using third party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1642 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1646
msgid "<b>Failed</b>" msgid "<b>Failed</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1670 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674
msgid "Invalid library location" msgid "Invalid library location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1675
msgid "Could not access %s. Using %s as the library." msgid "Could not access %s. Using %s as the library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1719 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1723
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1748
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" Quitting may cause corruption on the device.<br>\n" " Quitting may cause corruption on the device.<br>\n"
" Are you sure you want to quit?" " Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1755
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1803 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1807
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1822 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1826
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1834
msgid "Update available" msgid "Update available"
msgstr "تحديث متوفر" msgstr "تحديث متوفر"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1835
msgid "" msgid ""
"%s has been updated to version %s. See the <a href=\"http://calibre-" "%s has been updated to version %s. See the <a href=\"http://calibre-"
"ebook.com/whats-new\">new features</a>. Visit the download page?" "ebook.com/whats-new\">new features</a>. Visit the download page?"
@ -6637,20 +6657,20 @@ msgid ""
"WordPlayer, etc. integration." "WordPlayer, etc. integration."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:120 #: /home/kovid/work/calibre/src/calibre/library/cli.py:121
msgid "" msgid ""
"Path to the calibre library. Default is to use the path stored in the " "Path to the calibre library. Default is to use the path stored in the "
"settings." "settings."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:201 #: /home/kovid/work/calibre/src/calibre/library/cli.py:200
msgid "" msgid ""
"%prog list [options]\n" "%prog list [options]\n"
"\n" "\n"
"List the books available in the calibre database.\n" "List the books available in the calibre database.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:209 #: /home/kovid/work/calibre/src/calibre/library/cli.py:208
msgid "" msgid ""
"The fields to display when listing books in the database. Should be a comma " "The fields to display when listing books in the database. Should be a comma "
"separated list of fields.\n" "separated list of fields.\n"
@ -6659,7 +6679,7 @@ msgid ""
"fields. Only has effect in the text output format." "fields. Only has effect in the text output format."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:211 #: /home/kovid/work/calibre/src/calibre/library/cli.py:210
msgid "" msgid ""
"The field by which to sort the results.\n" "The field by which to sort the results.\n"
"Available fields: %s\n" "Available fields: %s\n"
@ -6669,54 +6689,54 @@ msgstr ""
"الحقول المتوفرة: %s\n" "الحقول المتوفرة: %s\n"
"الإفتراضي: %%default" "الإفتراضي: %%default"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/cli.py:212
msgid "Sort results in ascending order" msgid "Sort results in ascending order"
msgstr "ترتيب الترتيب بترتيب تصاعدي" msgstr "ترتيب الترتيب بترتيب تصاعدي"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:215 #: /home/kovid/work/calibre/src/calibre/library/cli.py:214
msgid "" msgid ""
"Filter the results by the search query. For the format of the search query, " "Filter the results by the search query. For the format of the search query, "
"please see the search related documentation in the User Manual. Default is " "please see the search related documentation in the User Manual. Default is "
"to do no filtering." "to do no filtering."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 #: /home/kovid/work/calibre/src/calibre/library/cli.py:216
msgid "" msgid ""
"The maximum width of a single line in the output. Defaults to detecting " "The maximum width of a single line in the output. Defaults to detecting "
"screen size." "screen size."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 #: /home/kovid/work/calibre/src/calibre/library/cli.py:217
msgid "The string used to separate fields. Default is a space." msgid "The string used to separate fields. Default is a space."
msgstr "السلسلة التي تستخدم لتفريق الحقول. الإفتراضي يستخدم الفراغ." msgstr "السلسلة التي تستخدم لتفريق الحقول. الإفتراضي يستخدم الفراغ."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:219 #: /home/kovid/work/calibre/src/calibre/library/cli.py:218
msgid "" msgid ""
"The prefix for all file paths. Default is the absolute path to the library " "The prefix for all file paths. Default is the absolute path to the library "
"folder." "folder."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:222 #: /home/kovid/work/calibre/src/calibre/library/cli.py:221
msgid "" msgid ""
"The format in which to output the data. Available choices: %s. Defaults is " "The format in which to output the data. Available choices: %s. Defaults is "
"text." "text."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:235 #: /home/kovid/work/calibre/src/calibre/library/cli.py:234
msgid "Invalid fields. Available fields:" msgid "Invalid fields. Available fields:"
msgstr "الحقول غير صالحة. الحقول المتوفرة:" msgstr "الحقول غير صالحة. الحقول المتوفرة:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:242 #: /home/kovid/work/calibre/src/calibre/library/cli.py:241
msgid "Invalid sort field. Available fields:" msgid "Invalid sort field. Available fields:"
msgstr "حقل الترتيب غير صالح. الحقول المتوفرة:" msgstr "حقل الترتيب غير صالح. الحقول المتوفرة:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:313 #: /home/kovid/work/calibre/src/calibre/library/cli.py:312
msgid "" msgid ""
"The following books were not added as they already exist in the database " "The following books were not added as they already exist in the database "
"(see --duplicates option):" "(see --duplicates option):"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:336 #: /home/kovid/work/calibre/src/calibre/library/cli.py:335
msgid "" msgid ""
"%prog add [options] file1 file2 file3 ...\n" "%prog add [options] file1 file2 file3 ...\n"
"\n" "\n"
@ -6725,27 +6745,27 @@ msgid ""
"the directory related options below.\n" "the directory related options below.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:345 #: /home/kovid/work/calibre/src/calibre/library/cli.py:344
msgid "" msgid ""
"Assume that each directory has only a single logical book and that all files " "Assume that each directory has only a single logical book and that all files "
"in it are different e-book formats of that book" "in it are different e-book formats of that book"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:347 #: /home/kovid/work/calibre/src/calibre/library/cli.py:346
msgid "Process directories recursively" msgid "Process directories recursively"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:349 #: /home/kovid/work/calibre/src/calibre/library/cli.py:348
msgid "" msgid ""
"Add books to database even if they already exist. Comparison is done based " "Add books to database even if they already exist. Comparison is done based "
"on book titles." "on book titles."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:359 #: /home/kovid/work/calibre/src/calibre/library/cli.py:358
msgid "You must specify at least one file to add" msgid "You must specify at least one file to add"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:375 #: /home/kovid/work/calibre/src/calibre/library/cli.py:374
msgid "" msgid ""
"%prog remove ids\n" "%prog remove ids\n"
"\n" "\n"
@ -6754,11 +6774,11 @@ msgid ""
"command). For example, 23,34,57-85\n" "command). For example, 23,34,57-85\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:390 #: /home/kovid/work/calibre/src/calibre/library/cli.py:389
msgid "You must specify at least one book to remove" msgid "You must specify at least one book to remove"
msgstr "يجب أن تخصص على الأقل كتاباً واحداً للحذف" msgstr "يجب أن تخصص على الأقل كتاباً واحداً للحذف"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:409 #: /home/kovid/work/calibre/src/calibre/library/cli.py:408
msgid "" msgid ""
"%prog add_format [options] id ebook_file\n" "%prog add_format [options] id ebook_file\n"
"\n" "\n"
@ -6767,15 +6787,15 @@ msgid ""
"already exists, it is replaced.\n" "already exists, it is replaced.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:424 #: /home/kovid/work/calibre/src/calibre/library/cli.py:423
msgid "You must specify an id and an ebook file" msgid "You must specify an id and an ebook file"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:429 #: /home/kovid/work/calibre/src/calibre/library/cli.py:428
msgid "ebook file must have an extension" msgid "ebook file must have an extension"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:437 #: /home/kovid/work/calibre/src/calibre/library/cli.py:436
msgid "" msgid ""
"\n" "\n"
"%prog remove_format [options] id fmt\n" "%prog remove_format [options] id fmt\n"
@ -6785,11 +6805,11 @@ msgid ""
"EPUB. If the logical book does not have fmt available, do nothing.\n" "EPUB. If the logical book does not have fmt available, do nothing.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:454 #: /home/kovid/work/calibre/src/calibre/library/cli.py:453
msgid "You must specify an id and a format" msgid "You must specify an id and a format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:472 #: /home/kovid/work/calibre/src/calibre/library/cli.py:471
msgid "" msgid ""
"\n" "\n"
"%prog show_metadata [options] id\n" "%prog show_metadata [options] id\n"
@ -6799,15 +6819,15 @@ msgid ""
"id is an id number from the list command.\n" "id is an id number from the list command.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:480 #: /home/kovid/work/calibre/src/calibre/library/cli.py:479
msgid "Print metadata in OPF form (XML)" msgid "Print metadata in OPF form (XML)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:489 #: /home/kovid/work/calibre/src/calibre/library/cli.py:488
msgid "You must specify an id" msgid "You must specify an id"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:502 #: /home/kovid/work/calibre/src/calibre/library/cli.py:501
msgid "" msgid ""
"\n" "\n"
"%prog set_metadata [options] id /path/to/metadata.opf\n" "%prog set_metadata [options] id /path/to/metadata.opf\n"
@ -6820,11 +6840,11 @@ msgid ""
"show_metadata command.\n" "show_metadata command.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:518 #: /home/kovid/work/calibre/src/calibre/library/cli.py:517
msgid "You must specify an id and a metadata file" msgid "You must specify an id and a metadata file"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:538 #: /home/kovid/work/calibre/src/calibre/library/cli.py:537
msgid "" msgid ""
"%prog export [options] ids\n" "%prog export [options] ids\n"
"\n" "\n"
@ -6835,27 +6855,27 @@ msgid ""
"an opf file). You can get id numbers from the list command.\n" "an opf file). You can get id numbers from the list command.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:546 #: /home/kovid/work/calibre/src/calibre/library/cli.py:545
msgid "Export all books in database, ignoring the list of ids." msgid "Export all books in database, ignoring the list of ids."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:548 #: /home/kovid/work/calibre/src/calibre/library/cli.py:547
msgid "Export books to the specified directory. Default is" msgid "Export books to the specified directory. Default is"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:550 #: /home/kovid/work/calibre/src/calibre/library/cli.py:549
msgid "Export all books into a single directory" msgid "Export all books into a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:557 #: /home/kovid/work/calibre/src/calibre/library/cli.py:556
msgid "Specifying this switch will turn this behavior off." msgid "Specifying this switch will turn this behavior off."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:580 #: /home/kovid/work/calibre/src/calibre/library/cli.py:579
msgid "You must specify some ids or the %s option" msgid "You must specify some ids or the %s option"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:592 #: /home/kovid/work/calibre/src/calibre/library/cli.py:591
msgid "" msgid ""
"%%prog command [options] [arguments]\n" "%%prog command [options] [arguments]\n"
"\n" "\n"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -6,14 +6,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre 0.4.22\n" "Project-Id-Version: calibre 0.4.22\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-12-02 22:46+0000\n" "POT-Creation-Date: 2009-12-04 21:05+0000\n"
"PO-Revision-Date: 2009-12-03 00:21+0000\n" "PO-Revision-Date: 2009-12-03 00:21+0000\n"
"Last-Translator: F.-X. Martin <martinfxavier@gmail.com>\n" "Last-Translator: F.-X. Martin <martinfxavier@gmail.com>\n"
"Language-Team: fr\n" "Language-Team: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-03 04:38+0000\n" "X-Launchpad-Export-Date: 2009-12-05 04:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
@ -41,8 +41,8 @@ msgstr "Ne fait strictement rien"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:45 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62
@ -55,8 +55,8 @@ msgstr "Ne fait strictement rien"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /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/pdf.py:28
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:18 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:40 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44
@ -68,9 +68,9 @@ msgstr "Ne fait strictement rien"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /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/odt/input.py:51
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:893 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:895
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:900
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:958 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:960
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105
@ -120,7 +120,7 @@ msgstr "Ne fait strictement rien"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:877
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211
#: /home/kovid/work/calibre/src/calibre/library/cli.py:282 #: /home/kovid/work/calibre/src/calibre/library/cli.py:281
#: /home/kovid/work/calibre/src/calibre/library/database.py:913 #: /home/kovid/work/calibre/src/calibre/library/database.py:913
#: /home/kovid/work/calibre/src/calibre/library/database2.py:702 #: /home/kovid/work/calibre/src/calibre/library/database2.py:702
#: /home/kovid/work/calibre/src/calibre/library/database2.py:714 #: /home/kovid/work/calibre/src/calibre/library/database2.py:714
@ -157,7 +157,7 @@ msgstr "Lecteur de métadonnées"
msgid "Metadata writer" msgid "Metadata writer"
msgstr "Éditeur de métadonnées" msgstr "Éditeur de métadonnées"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:13 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14
msgid "" msgid ""
"Follow all local links in an HTML file and create a ZIP file containing all " "Follow all local links in an HTML file and create a ZIP file containing all "
"linked files. This plugin is run every time you add an HTML file to the " "linked files. This plugin is run every time you add an HTML file to the "
@ -167,7 +167,7 @@ msgstr ""
"contenant tous les fichiers liés. Ce plug-in est lancé chaque fois que vous " "contenant tous les fichiers liés. Ce plug-in est lancé chaque fois que vous "
"ajoutez un fichier HTML à la bibliothèque." "ajoutez un fichier HTML à la bibliothèque."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:48 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49
msgid "" msgid ""
"Character encoding for the input HTML files. Common choices include: cp1252, " "Character encoding for the input HTML files. Common choices include: cp1252, "
"latin1, iso-8859-1 and utf-8." "latin1, iso-8859-1 and utf-8."
@ -176,46 +176,58 @@ msgstr ""
"communs inclus: cp1252, latin1, iso-8859-1 et utf-8." "communs inclus: cp1252, latin1, iso-8859-1 et utf-8."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56
msgid ""
" Create a PMLZ archive containing the PML file and all images "
"in the directory pmlname_img or images file containing all linked "
"files. This plugin is run every time you add an PML file to the "
"library. "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87
msgid "Character encoding for the input PML files. Should ways be: cp1252."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94
msgid "Extract cover from comic files" msgid "Extract cover from comic files"
msgstr "Extraction de la couverture depuis des fichiers de bandes dessinées" msgstr "Extraction de la couverture depuis des fichiers de bandes dessinées"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:77 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:115
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:89 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:127
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:99 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:137
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:109 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:147
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:158
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:168
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:178
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:150 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:188
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:160 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:198
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:170 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:208
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:219
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:192 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:230
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:242
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:225 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:263
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:236 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:274
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:284
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:294
msgid "Read metadata from %s files" msgid "Read metadata from %s files"
msgstr "Lecture des métadonnées depuis les fichiers %s" msgstr "Lecture des métadonnées depuis les fichiers %s"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:215 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:253
msgid "Read metadata from ebooks in RAR archives" msgid "Read metadata from ebooks in RAR archives"
msgstr "Lecture des métadonnées des ebooks contenus dans les archives RAR" msgstr "Lecture des métadonnées des ebooks contenus dans les archives RAR"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:305
msgid "Read metadata from ebooks in ZIP archives" msgid "Read metadata from ebooks in ZIP archives"
msgstr "Lecture des métadonnées des ebooks contenus dans les archives ZIP" msgstr "Lecture des métadonnées des ebooks contenus dans les archives ZIP"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:278 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:316
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:288 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:326
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:336
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:358
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:331 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:369
msgid "Set metadata in %s files" msgid "Set metadata in %s files"
msgstr "Définir les métadonnées des fichiers %s" msgstr "Définir les métadonnées des fichiers %s"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:347
msgid "Set metadata from %s files" msgid "Set metadata from %s files"
msgstr "Indiquer les métadonnées pour les fichiers %s" msgstr "Indiquer les métadonnées pour les fichiers %s"
@ -1349,7 +1361,7 @@ msgstr ""
"les auteurs, etc. Cette option désactive la génération de cette couverture." "les auteurs, etc. Cette option désactive la génération de cette couverture."
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113 #: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:114
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
msgid "Table of Contents:" msgid "Table of Contents:"
@ -2008,7 +2020,7 @@ msgstr ""
"LibraryThing.com\n" "LibraryThing.com\n"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323
msgid "Cover" msgid "Cover"
msgstr "Couverture" msgstr "Couverture"
@ -2043,70 +2055,70 @@ msgstr "Désactiver la compression du contenu du fichier."
msgid "All articles" msgid "All articles"
msgstr "Tous les articles" msgstr "Tous les articles"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324
msgid "Title Page" msgid "Title Page"
msgstr "Page de titre" msgstr "Page de titre"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168
msgid "Table of Contents" msgid "Table of Contents"
msgstr "Tables des matières" msgstr "Tables des matières"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326
msgid "Index" msgid "Index"
msgstr "Index" msgstr "Index"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327
msgid "Glossary" msgid "Glossary"
msgstr "Glossaire" msgstr "Glossaire"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328
msgid "Acknowledgements" msgid "Acknowledgements"
msgstr "Remerciements" msgstr "Remerciements"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329
msgid "Bibliography" msgid "Bibliography"
msgstr "Bibliographie" msgstr "Bibliographie"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330
msgid "Colophon" msgid "Colophon"
msgstr "Marque de l'imprimeur" msgstr "Marque de l'imprimeur"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331
msgid "Copyright" msgid "Copyright"
msgstr "Copyright" msgstr "Copyright"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332
msgid "Dedication" msgid "Dedication"
msgstr "Dédicace" msgstr "Dédicace"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333
msgid "Epigraph" msgid "Epigraph"
msgstr "Epigraphe" msgstr "Epigraphe"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334
msgid "Foreword" msgid "Foreword"
msgstr "Avant-propos" msgstr "Avant-propos"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335
msgid "List of Illustrations" msgid "List of Illustrations"
msgstr "Liste d'illustrations" msgstr "Liste d'illustrations"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336
msgid "List of Tables" msgid "List of Tables"
msgstr "Liste de Tables" msgstr "Liste de Tables"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337
msgid "Notes" msgid "Notes"
msgstr "Notes" msgstr "Notes"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338
msgid "Preface" msgid "Preface"
msgstr "Préface" msgstr "Préface"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339
msgid "Main Text" msgid "Main Text"
msgstr "Texte principal" msgstr "Texte principal"
@ -2172,11 +2184,11 @@ msgstr ""
"Générer un fichier \"page-map\" Adobe si les informations de pagination sont " "Générer un fichier \"page-map\" Adobe si les informations de pagination sont "
"disponibles." "disponibles."
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126
msgid "Footnotes" msgid "Footnotes"
msgstr "Notes de bas de page" msgstr "Notes de bas de page"
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135
msgid "Sidebar" msgid "Sidebar"
msgstr "Panneau latéral" msgstr "Panneau latéral"
@ -3457,7 +3469,7 @@ msgid "RB Output"
msgstr "Sortie RB" msgstr "Sortie RB"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1416 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1420
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Choisir le format à afficher" msgstr "Choisir le format à afficher"
@ -4106,7 +4118,7 @@ msgstr "Nouvelle adresse email"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1094
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
@ -4849,7 +4861,7 @@ msgid "Choose formats for "
msgstr "Choisir les formats pour " msgstr "Choisir les formats pour "
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:921 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925
msgid "Books" msgid "Books"
msgstr "Livres" msgstr "Livres"
@ -5790,52 +5802,52 @@ msgstr "Ouvrir le livre"
msgid "Configure" msgid "Configure"
msgstr "Configurer" msgstr "Configurer"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:24
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "Utiliser la librairie présente dans le répertoire spécifié." msgstr "Utiliser la librairie présente dans le répertoire spécifié."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:26
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "Démarrer en mode minimisé dans la zone de notification." msgstr "Démarrer en mode minimisé dans la zone de notification."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:28
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "Loggue les informations de débogage dans la console" msgstr "Loggue les informations de débogage dans la console"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:30
msgid "Do not check for updates" msgid "Do not check for updates"
msgstr "Ne pas vérifier les mises à jour" msgstr "Ne pas vérifier les mises à jour"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:80
msgid "If you are sure it is not running" msgid "If you are sure it is not running"
msgstr "Si vous êtes sûr qu'il n'est pas démarré" msgstr "Si vous êtes sûr qu'il n'est pas démarré"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:82
msgid "Cannot Start " msgid "Cannot Start "
msgstr "Impossible de lancer " msgstr "Impossible de lancer "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:83
msgid "%s is already running." msgid "%s is already running."
msgstr "%s est déjà démarré." msgstr "%s est déjà démarré."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:86
msgid "may be running in the system tray, in the" msgid "may be running in the system tray, in the"
msgstr "peut être démarré dans la zone de notification, dans la" msgstr "peut être démarré dans la zone de notification, dans la"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:88
msgid "upper right region of the screen." msgid "upper right region of the screen."
msgstr "région en haut et à droite de l'écran." msgstr "région en haut et à droite de l'écran."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:90
msgid "lower right region of the screen." msgid "lower right region of the screen."
msgstr "région en bas et à droite de l'écran." msgstr "région en bas et à droite de l'écran."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:93
msgid "try rebooting your computer." msgid "try rebooting your computer."
msgstr "Essayer de redémarrer l'ordinateur." msgstr "Essayer de redémarrer l'ordinateur."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:95
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:107
msgid "try deleting the file" msgid "try deleting the file"
msgstr "Essayer de supprimer le fichier" msgstr "Essayer de supprimer le fichier"
@ -6175,7 +6187,7 @@ msgid "Save to disk in a single directory"
msgstr "Sauvegarder sur le disque dans un seul répertoire" msgstr "Sauvegarder sur le disque dans un seul répertoire"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1518 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Sauvegarder seulement le format %s vers le disque" msgstr "Sauvegarder seulement le format %s vers le disque"
@ -6210,7 +6222,7 @@ msgid "Calibre Library"
msgstr "Librairie calibre" msgstr "Librairie calibre"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1661 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1665
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Choisir un emplacement pour votre librairie d'ebook" msgstr "Choisir un emplacement pour votre librairie d'ebook"
@ -6263,56 +6275,64 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:913 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:956 msgid "How many empty books?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:873
msgid "How many empty boks should be added?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:917
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:960
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Téléchargement des livres vers l'appareil." msgstr "Téléchargement des livres vers l'appareil."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:922 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926
msgid "EPUB Books" msgid "EPUB Books"
msgstr "Livres EPUB" msgstr "Livres EPUB"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:923 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927
msgid "LRF Books" msgid "LRF Books"
msgstr "Livres LRF" msgstr "Livres LRF"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:924 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928
msgid "HTML Books" msgid "HTML Books"
msgstr "Livres HTML" msgstr "Livres HTML"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929
msgid "LIT Books" msgid "LIT Books"
msgstr "Livres LIT" msgstr "Livres LIT"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930
msgid "MOBI Books" msgid "MOBI Books"
msgstr "Livres MOBI" msgstr "Livres MOBI"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:931
msgid "Text books" msgid "Text books"
msgstr "Livres Texte" msgstr "Livres Texte"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:932
msgid "PDF Books" msgid "PDF Books"
msgstr "Livres PDF" msgstr "Livres PDF"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933
msgid "Comics" msgid "Comics"
msgstr "Bande Dessinées" msgstr "Bande Dessinées"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934
msgid "Archives" msgid "Archives"
msgstr "Archives" msgstr "Archives"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:965 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:969
msgid "Failed to read metadata" msgid "Failed to read metadata"
msgstr "Impossible de lire les métadonnées" msgstr "Impossible de lire les métadonnées"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:970
msgid "Failed to read metadata from the following" msgid "Failed to read metadata from the following"
msgstr "Impossible de lire les métadonnées à partir de" msgstr "Impossible de lire les métadonnées à partir de"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
@ -6320,115 +6340,115 @@ msgstr ""
"Les livres sélectionnés vont être <b>supprimés définitivement</b> et les " "Les livres sélectionnés vont être <b>supprimés définitivement</b> et les "
"fichiers seront supprimés de votre ordinateur. Etes-vous sûr ?" "fichiers seront supprimés de votre ordinateur. Etes-vous sûr ?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Suppression des livres dans l'appareil" msgstr "Suppression des livres dans l'appareil"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1047
msgid "Cannot download metadata" msgid "Cannot download metadata"
msgstr "Impossible de télécharger les métadonnées" msgstr "Impossible de télécharger les métadonnées"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1044 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1048
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1101 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1134 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1138
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1163
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1271 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1275
msgid "No books selected" msgid "No books selected"
msgstr "Aucun livre sélectionné" msgstr "Aucun livre sélectionné"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063
msgid "social metadata" msgid "social metadata"
msgstr "Métadonnées sociales" msgstr "Métadonnées sociales"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "covers" msgid "covers"
msgstr "couvertures" msgstr "couvertures"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "metadata" msgid "metadata"
msgstr "métadonnées" msgstr "métadonnées"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067
msgid "Downloading %s for %d book(s)" msgid "Downloading %s for %d book(s)"
msgstr "Télécharge les livres %s sur %d" msgstr "Télécharge les livres %s sur %d"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089
msgid "Failed to download some metadata" msgid "Failed to download some metadata"
msgstr "Le téléchargement d'une partie des métadonnées a échoué" msgstr "Le téléchargement d'une partie des métadonnées a échoué"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1086 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090
msgid "Failed to download metadata for the following:" msgid "Failed to download metadata for the following:"
msgstr "Le téléchargement des métadonnées a échoué pour :" msgstr "Le téléchargement des métadonnées a échoué pour :"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1093
msgid "Failed to download metadata:" msgid "Failed to download metadata:"
msgstr "Le téléchargement des métadonnées a échoué:" msgstr "Le téléchargement des métadonnées a échoué:"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1100 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1104
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1133 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1137
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Impossible d'éditer les métadonnées" msgstr "Impossible d'éditer les métadonnées"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1162
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Impossible de sauvegarder sur le disque" msgstr "Impossible de sauvegarder sur le disque"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1161 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1165
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "Choisir le répertoire de destination" msgstr "Choisir le répertoire de destination"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1188 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192
msgid "Error while saving" msgid "Error while saving"
msgstr "Erreur pendant la sauvegarde" msgstr "Erreur pendant la sauvegarde"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1189 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193
msgid "There was an error while saving." msgid "There was an error while saving."
msgstr "Il y a eu une erreur lors de la sauvegarde." msgstr "Il y a eu une erreur lors de la sauvegarde."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1196 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201
msgid "Could not save some books" msgid "Could not save some books"
msgstr "Impossible de sauvegarder certains livres" msgstr "Impossible de sauvegarder certains livres"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1198 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202
msgid "Click the show details button to see which ones." msgid "Click the show details button to see which ones."
msgstr "Cliquer le bouton afficher les détails pour voir lesquels." msgstr "Cliquer le bouton afficher les détails pour voir lesquels."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Récupération des News de " msgstr "Récupération des News de "
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1230 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234
msgid " fetched." msgid " fetched."
msgstr " récupéré." msgstr " récupéré."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1274
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Conversion impossible" msgstr "Conversion impossible"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1299 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1303
msgid "Starting conversion of %d book(s)" msgid "Starting conversion of %d book(s)"
msgstr "Démarrer la conversion de %d livre(s)" msgstr "Démarrer la conversion de %d livre(s)"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1429 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433
msgid "No book selected" msgid "No book selected"
msgstr "Aucun livre sélectionné" msgstr "Aucun livre sélectionné"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1464
msgid "Cannot view" msgid "Cannot view"
msgstr "Impossible de visualiser" msgstr "Impossible de visualiser"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1432
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "Impossible d'ouvrir le répertoire" msgstr "Impossible d'ouvrir le répertoire"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1445 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1449
msgid "Multiple Books Selected" msgid "Multiple Books Selected"
msgstr "Plusieurs livres sélectionnés" msgstr "Plusieurs livres sélectionnés"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1446 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1450
msgid "" msgid ""
"You are attempting to open %d books. Opening too many books at once can be " "You are attempting to open %d books. Opening too many books at once can be "
"slow and have a negative effect on the responsiveness of your computer. Once " "slow and have a negative effect on the responsiveness of your computer. Once "
@ -6440,32 +6460,32 @@ msgstr ""
"réponses de l'ordinateur. Une fois démarré le processus ne peut pas être " "réponses de l'ordinateur. Une fois démarré le processus ne peut pas être "
"arrêté avant la fin. Voulez-vous continuer ?" "arrêté avant la fin. Voulez-vous continuer ?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1461 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1465
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s n'a pas de format disponible." msgstr "%s n'a pas de format disponible."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1502 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1506
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Configuration impossible" msgstr "Configuration impossible"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1503 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Impossible de configurer pendant que des travaux sont en cours." msgstr "Impossible de configurer pendant que des travaux sont en cours."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1546 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1550
msgid "No detailed info available" msgid "No detailed info available"
msgstr "Pas d'information détaillée disponible" msgstr "Pas d'information détaillée disponible"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1547 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
"Pas d'information détaillée disponible pour les livres dans l'appareil." "Pas d'information détaillée disponible pour les livres dans l'appareil."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1599 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1603
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Erreur pendant la communication avec le lecteur électronique" msgstr "Erreur pendant la communication avec le lecteur électronique"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1600 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1604
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -6474,12 +6494,12 @@ msgstr ""
"lecteur électronique. Veuillez déconnecter et reconnecter le lecteur " "lecteur électronique. Veuillez déconnecter et reconnecter le lecteur "
"électronique et redémarrer." "électronique et redémarrer."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1623 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1627
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1641 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1645
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Erreur lors de la conversion" msgstr "Erreur lors de la conversion"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1624 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1628
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using third party tools." "first remove the DRM using third party tools."
@ -6488,19 +6508,19 @@ msgstr ""
"href=\"%s\">DRM</a>. Vous devez d'abord enlever les DRM avec des outils " "href=\"%s\">DRM</a>. Vous devez d'abord enlever les DRM avec des outils "
"tiers." "tiers."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1642 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1646
msgid "<b>Failed</b>" msgid "<b>Failed</b>"
msgstr "<b>Échoué</b>" msgstr "<b>Échoué</b>"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1670 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674
msgid "Invalid library location" msgid "Invalid library location"
msgstr "Emplacement de la librairie invalide" msgstr "Emplacement de la librairie invalide"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1675
msgid "Could not access %s. Using %s as the library." msgid "Could not access %s. Using %s as the library."
msgstr "Impossible d'accéder à %s. Utilise %s comme librairie." msgstr "Impossible d'accéder à %s. Utilise %s comme librairie."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1719 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1723
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
@ -6509,11 +6529,11 @@ msgstr ""
"Si vous le trouvez utile, pensez à donner afin de supporter son " "Si vous le trouvez utile, pensez à donner afin de supporter son "
"développement." "développement."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1748
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "Il y a des travaux actifs. Voulez-vous vraiment finir ?" msgstr "Il y a des travaux actifs. Voulez-vous vraiment finir ?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" Quitting may cause corruption on the device.<br>\n" " Quitting may cause corruption on the device.<br>\n"
@ -6524,11 +6544,11 @@ msgstr ""
"l'appareil.<br>\n" "l'appareil.<br>\n"
" Êtes-vous sûr de vouloir quitter ?" " Êtes-vous sûr de vouloir quitter ?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1755
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "ATTENTION: Travaux actifs" msgstr "ATTENTION: Travaux actifs"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1803 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1807
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
@ -6536,7 +6556,7 @@ msgstr ""
"continuera à tourner dans la zone de notification. Pour le fermer, choisir " "continuera à tourner dans la zone de notification. Pour le fermer, choisir "
"<b>Quitter</b> dans le menu contextuel de la zone de notification." "<b>Quitter</b> dans le menu contextuel de la zone de notification."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1822 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1826
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
@ -6544,11 +6564,11 @@ msgstr ""
"<span style=\"color:red; font-weight:bold\">Dernière version: <a " "<span style=\"color:red; font-weight:bold\">Dernière version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1834
msgid "Update available" msgid "Update available"
msgstr "Mise à jour disponible" msgstr "Mise à jour disponible"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1835
msgid "" msgid ""
"%s has been updated to version %s. See the <a href=\"http://calibre-" "%s has been updated to version %s. See the <a href=\"http://calibre-"
"ebook.com/whats-new\">new features</a>. Visit the download page?" "ebook.com/whats-new\">new features</a>. Visit the download page?"
@ -7326,7 +7346,7 @@ msgstr ""
"Le nombre maximum de correspondances retournées par une requête OPDS. Ceci " "Le nombre maximum de correspondances retournées par une requête OPDS. Ceci "
"affecte l'intégration dans Stanza, Wordplayer,etc..." "affecte l'intégration dans Stanza, Wordplayer,etc..."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:120 #: /home/kovid/work/calibre/src/calibre/library/cli.py:121
msgid "" msgid ""
"Path to the calibre library. Default is to use the path stored in the " "Path to the calibre library. Default is to use the path stored in the "
"settings." "settings."
@ -7334,7 +7354,7 @@ msgstr ""
"Chemin de la librairie calibre. Par défaut : utilise celui indiqué dans les " "Chemin de la librairie calibre. Par défaut : utilise celui indiqué dans les "
"paramètres." "paramètres."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:201 #: /home/kovid/work/calibre/src/calibre/library/cli.py:200
msgid "" msgid ""
"%prog list [options]\n" "%prog list [options]\n"
"\n" "\n"
@ -7344,7 +7364,7 @@ msgstr ""
"\n" "\n"
"Lister les livres disponibles dans la base calibre.\n" "Lister les livres disponibles dans la base calibre.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:209 #: /home/kovid/work/calibre/src/calibre/library/cli.py:208
msgid "" msgid ""
"The fields to display when listing books in the database. Should be a comma " "The fields to display when listing books in the database. Should be a comma "
"separated list of fields.\n" "separated list of fields.\n"
@ -7359,7 +7379,7 @@ msgstr ""
"sélectionner tous les champs. Ceci n'affecte que le format du texte en " "sélectionner tous les champs. Ceci n'affecte que le format du texte en "
"sortie." "sortie."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:211 #: /home/kovid/work/calibre/src/calibre/library/cli.py:210
msgid "" msgid ""
"The field by which to sort the results.\n" "The field by which to sort the results.\n"
"Available fields: %s\n" "Available fields: %s\n"
@ -7369,11 +7389,11 @@ msgstr ""
"Champs disponibles: %s\n" "Champs disponibles: %s\n"
"Par défaut: %%default" "Par défaut: %%default"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/cli.py:212
msgid "Sort results in ascending order" msgid "Sort results in ascending order"
msgstr "Trier les résultats dans l'ordre ascendant" msgstr "Trier les résultats dans l'ordre ascendant"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:215 #: /home/kovid/work/calibre/src/calibre/library/cli.py:214
msgid "" msgid ""
"Filter the results by the search query. For the format of the search query, " "Filter the results by the search query. For the format of the search query, "
"please see the search related documentation in the User Manual. Default is " "please see the search related documentation in the User Manual. Default is "
@ -7383,7 +7403,7 @@ msgstr ""
"la requête de recherche, veuillez consulter la section recherche dans le " "la requête de recherche, veuillez consulter la section recherche dans le "
"manuel utilisateur. Par défaut n'effectue aucun filtrage" "manuel utilisateur. Par défaut n'effectue aucun filtrage"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 #: /home/kovid/work/calibre/src/calibre/library/cli.py:216
msgid "" msgid ""
"The maximum width of a single line in the output. Defaults to detecting " "The maximum width of a single line in the output. Defaults to detecting "
"screen size." "screen size."
@ -7391,11 +7411,11 @@ msgstr ""
"Largeur maximum pour une seule ligne en sortie. Par défaut détecte la taille " "Largeur maximum pour une seule ligne en sortie. Par défaut détecte la taille "
"de l'écran." "de l'écran."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 #: /home/kovid/work/calibre/src/calibre/library/cli.py:217
msgid "The string used to separate fields. Default is a space." msgid "The string used to separate fields. Default is a space."
msgstr "La chaîne utilisée pour séparer des champs. Par défaut : un espace" msgstr "La chaîne utilisée pour séparer des champs. Par défaut : un espace"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:219 #: /home/kovid/work/calibre/src/calibre/library/cli.py:218
msgid "" msgid ""
"The prefix for all file paths. Default is the absolute path to the library " "The prefix for all file paths. Default is the absolute path to the library "
"folder." "folder."
@ -7403,7 +7423,7 @@ msgstr ""
"Le préfixe pour tous les chemins. Par défaut : Le chemin absolu du " "Le préfixe pour tous les chemins. Par défaut : Le chemin absolu du "
"répertoire de la librairie." "répertoire de la librairie."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:222 #: /home/kovid/work/calibre/src/calibre/library/cli.py:221
msgid "" msgid ""
"The format in which to output the data. Available choices: %s. Defaults is " "The format in which to output the data. Available choices: %s. Defaults is "
"text." "text."
@ -7411,15 +7431,15 @@ msgstr ""
"Format souhaité pour l'affichage des données. Choix disponibles: %s. Par " "Format souhaité pour l'affichage des données. Choix disponibles: %s. Par "
"défaut: texte." "défaut: texte."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:235 #: /home/kovid/work/calibre/src/calibre/library/cli.py:234
msgid "Invalid fields. Available fields:" msgid "Invalid fields. Available fields:"
msgstr "Champs invalides. Champs disponibles:" msgstr "Champs invalides. Champs disponibles:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:242 #: /home/kovid/work/calibre/src/calibre/library/cli.py:241
msgid "Invalid sort field. Available fields:" msgid "Invalid sort field. Available fields:"
msgstr "Champ de tri invalide. Champs disponibles:" msgstr "Champ de tri invalide. Champs disponibles:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:313 #: /home/kovid/work/calibre/src/calibre/library/cli.py:312
msgid "" msgid ""
"The following books were not added as they already exist in the database " "The following books were not added as they already exist in the database "
"(see --duplicates option):" "(see --duplicates option):"
@ -7427,7 +7447,7 @@ msgstr ""
"Les livres suivants ne seront pas ajoutés car ils existent déjà dans la base " "Les livres suivants ne seront pas ajoutés car ils existent déjà dans la base "
"de données (voir l'option --duplicates):" "de données (voir l'option --duplicates):"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:336 #: /home/kovid/work/calibre/src/calibre/library/cli.py:335
msgid "" msgid ""
"%prog add [options] file1 file2 file3 ...\n" "%prog add [options] file1 file2 file3 ...\n"
"\n" "\n"
@ -7441,7 +7461,7 @@ msgstr ""
"pouvez aussi spécifier des répertoires, voir les options décrivant les " "pouvez aussi spécifier des répertoires, voir les options décrivant les "
"répertoires ci-dessous.\n" "répertoires ci-dessous.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:345 #: /home/kovid/work/calibre/src/calibre/library/cli.py:344
msgid "" msgid ""
"Assume that each directory has only a single logical book and that all files " "Assume that each directory has only a single logical book and that all files "
"in it are different e-book formats of that book" "in it are different e-book formats of that book"
@ -7449,11 +7469,11 @@ msgstr ""
"Supposer que chaque répertoire dispose d'un livre logique et que tous les " "Supposer que chaque répertoire dispose d'un livre logique et que tous les "
"fichiers dans celui-ci sont des formats différents de ce même livre." "fichiers dans celui-ci sont des formats différents de ce même livre."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:347 #: /home/kovid/work/calibre/src/calibre/library/cli.py:346
msgid "Process directories recursively" msgid "Process directories recursively"
msgstr "Traite les répertoires récursivement" msgstr "Traite les répertoires récursivement"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:349 #: /home/kovid/work/calibre/src/calibre/library/cli.py:348
msgid "" msgid ""
"Add books to database even if they already exist. Comparison is done based " "Add books to database even if they already exist. Comparison is done based "
"on book titles." "on book titles."
@ -7461,11 +7481,11 @@ msgstr ""
"Ajouter les livres dans la base de données même s'ils existent déjà. La " "Ajouter les livres dans la base de données même s'ils existent déjà. La "
"comparaison est basée sur les titres des ebooks." "comparaison est basée sur les titres des ebooks."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:359 #: /home/kovid/work/calibre/src/calibre/library/cli.py:358
msgid "You must specify at least one file to add" msgid "You must specify at least one file to add"
msgstr "Vous devez spécifier au moins un fichier à ajouter" msgstr "Vous devez spécifier au moins un fichier à ajouter"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:375 #: /home/kovid/work/calibre/src/calibre/library/cli.py:374
msgid "" msgid ""
"%prog remove ids\n" "%prog remove ids\n"
"\n" "\n"
@ -7480,11 +7500,11 @@ msgstr ""
"la liste des identifiants à l'aide de la commande list). Par exemple, " "la liste des identifiants à l'aide de la commande list). Par exemple, "
"23,34,57-85\n" "23,34,57-85\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:390 #: /home/kovid/work/calibre/src/calibre/library/cli.py:389
msgid "You must specify at least one book to remove" msgid "You must specify at least one book to remove"
msgstr "Vous devez spécifier au moins un fichier à supprimer" msgstr "Vous devez spécifier au moins un fichier à supprimer"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:409 #: /home/kovid/work/calibre/src/calibre/library/cli.py:408
msgid "" msgid ""
"%prog add_format [options] id ebook_file\n" "%prog add_format [options] id ebook_file\n"
"\n" "\n"
@ -7498,15 +7518,15 @@ msgstr ""
"logique identifié par id. Vous pouvez obtenir l'identifiant à l'aide de la " "logique identifié par id. Vous pouvez obtenir l'identifiant à l'aide de la "
"commande list. Si le format existe déjà, il sera remplacé.\n" "commande list. Si le format existe déjà, il sera remplacé.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:424 #: /home/kovid/work/calibre/src/calibre/library/cli.py:423
msgid "You must specify an id and an ebook file" msgid "You must specify an id and an ebook file"
msgstr "Veuillez indiquer une identification et le fichier ebook." msgstr "Veuillez indiquer une identification et le fichier ebook."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:429 #: /home/kovid/work/calibre/src/calibre/library/cli.py:428
msgid "ebook file must have an extension" msgid "ebook file must have an extension"
msgstr "Les fichiers de livres électroniques doivent avoir une extension" msgstr "Les fichiers de livres électroniques doivent avoir une extension"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:437 #: /home/kovid/work/calibre/src/calibre/library/cli.py:436
msgid "" msgid ""
"\n" "\n"
"%prog remove_format [options] id fmt\n" "%prog remove_format [options] id fmt\n"
@ -7523,11 +7543,11 @@ msgstr ""
"extension de fichier comme LRF, TXT ou EPUB. Si le fichier logique n'a pas " "extension de fichier comme LRF, TXT ou EPUB. Si le fichier logique n'a pas "
"de format fmt disponible, n'effectue aucune action.\n" "de format fmt disponible, n'effectue aucune action.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:454 #: /home/kovid/work/calibre/src/calibre/library/cli.py:453
msgid "You must specify an id and a format" msgid "You must specify an id and a format"
msgstr "Vous devez spécifier un identifiant et un format" msgstr "Vous devez spécifier un identifiant et un format"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:472 #: /home/kovid/work/calibre/src/calibre/library/cli.py:471
msgid "" msgid ""
"\n" "\n"
"%prog show_metadata [options] id\n" "%prog show_metadata [options] id\n"
@ -7543,15 +7563,15 @@ msgstr ""
"livre identifié par id.\n" "livre identifié par id.\n"
"id est un identifiant obtenu à l'aide de la commande list.\n" "id est un identifiant obtenu à l'aide de la commande list.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:480 #: /home/kovid/work/calibre/src/calibre/library/cli.py:479
msgid "Print metadata in OPF form (XML)" msgid "Print metadata in OPF form (XML)"
msgstr "Imprimer les métadonnées dans un formulaire OPF (XML)" msgstr "Imprimer les métadonnées dans un formulaire OPF (XML)"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:489 #: /home/kovid/work/calibre/src/calibre/library/cli.py:488
msgid "You must specify an id" msgid "You must specify an id"
msgstr "Vous devez spécifier un identifiant" msgstr "Vous devez spécifier un identifiant"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:502 #: /home/kovid/work/calibre/src/calibre/library/cli.py:501
msgid "" msgid ""
"\n" "\n"
"%prog set_metadata [options] id /path/to/metadata.opf\n" "%prog set_metadata [options] id /path/to/metadata.opf\n"
@ -7574,11 +7594,11 @@ msgstr ""
"ajouté à la\n" "ajouté à la\n"
"commande show_metadata.\n" "commande show_metadata.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:518 #: /home/kovid/work/calibre/src/calibre/library/cli.py:517
msgid "You must specify an id and a metadata file" msgid "You must specify an id and a metadata file"
msgstr "Vous devez spécifier un identifiant et un fichier de métadonnées" msgstr "Vous devez spécifier un identifiant et un fichier de métadonnées"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:538 #: /home/kovid/work/calibre/src/calibre/library/cli.py:537
msgid "" msgid ""
"%prog export [options] ids\n" "%prog export [options] ids\n"
"\n" "\n"
@ -7597,28 +7617,28 @@ msgstr ""
"un fichier opf). Vous pouvez obtenir les numéros id à partir de la commande " "un fichier opf). Vous pouvez obtenir les numéros id à partir de la commande "
"list.\n" "list.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:546 #: /home/kovid/work/calibre/src/calibre/library/cli.py:545
msgid "Export all books in database, ignoring the list of ids." msgid "Export all books in database, ignoring the list of ids."
msgstr "" msgstr ""
"Exporter tous les livres dans la base, ignorer la liste des identifiants" "Exporter tous les livres dans la base, ignorer la liste des identifiants"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:548 #: /home/kovid/work/calibre/src/calibre/library/cli.py:547
msgid "Export books to the specified directory. Default is" msgid "Export books to the specified directory. Default is"
msgstr "Exporter les livres vers le répertoire spécifié. Par défaut" msgstr "Exporter les livres vers le répertoire spécifié. Par défaut"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:550 #: /home/kovid/work/calibre/src/calibre/library/cli.py:549
msgid "Export all books into a single directory" msgid "Export all books into a single directory"
msgstr "Exporter les livres vers un seul répertoire" msgstr "Exporter les livres vers un seul répertoire"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:557 #: /home/kovid/work/calibre/src/calibre/library/cli.py:556
msgid "Specifying this switch will turn this behavior off." msgid "Specifying this switch will turn this behavior off."
msgstr "Spécifier cette bascule desactivera ce comportement." msgstr "Spécifier cette bascule desactivera ce comportement."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:580 #: /home/kovid/work/calibre/src/calibre/library/cli.py:579
msgid "You must specify some ids or the %s option" msgid "You must specify some ids or the %s option"
msgstr "Vous devez spécifier des identifiants ou l'option %s" msgstr "Vous devez spécifier des identifiants ou l'option %s"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:592 #: /home/kovid/work/calibre/src/calibre/library/cli.py:591
msgid "" msgid ""
"%%prog command [options] [arguments]\n" "%%prog command [options] [arguments]\n"
"\n" "\n"

View File

@ -8,14 +8,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre_calibre-it\n" "Project-Id-Version: calibre_calibre-it\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-12-02 22:46+0000\n" "POT-Creation-Date: 2009-12-05 16:18+0000\n"
"PO-Revision-Date: 2009-12-03 00:22+0000\n" "PO-Revision-Date: 2009-12-06 22:56+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n" "Last-Translator: oishi56 <oishi56@me.com>\n"
"Language-Team: italiano\n" "Language-Team: italiano\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-03 04:39+0000\n" "X-Launchpad-Export-Date: 2009-12-08 04:38+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
@ -43,8 +43,8 @@ msgstr "Non fa assolutamente niente"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:45 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62
@ -57,8 +57,8 @@ msgstr "Non fa assolutamente niente"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /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/pdf.py:28
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:18 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:40 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44
@ -70,9 +70,9 @@ msgstr "Non fa assolutamente niente"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /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/odt/input.py:51
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:893 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:895
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:900
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:958 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:960
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105
@ -122,7 +122,7 @@ msgstr "Non fa assolutamente niente"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:877
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211
#: /home/kovid/work/calibre/src/calibre/library/cli.py:282 #: /home/kovid/work/calibre/src/calibre/library/cli.py:281
#: /home/kovid/work/calibre/src/calibre/library/database.py:913 #: /home/kovid/work/calibre/src/calibre/library/database.py:913
#: /home/kovid/work/calibre/src/calibre/library/database2.py:702 #: /home/kovid/work/calibre/src/calibre/library/database2.py:702
#: /home/kovid/work/calibre/src/calibre/library/database2.py:714 #: /home/kovid/work/calibre/src/calibre/library/database2.py:714
@ -159,7 +159,7 @@ msgstr "Lettore metadati"
msgid "Metadata writer" msgid "Metadata writer"
msgstr "Scrittore metadati" msgstr "Scrittore metadati"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:13 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14
msgid "" msgid ""
"Follow all local links in an HTML file and create a ZIP file containing all " "Follow all local links in an HTML file and create a ZIP file containing all "
"linked files. This plugin is run every time you add an HTML file to the " "linked files. This plugin is run every time you add an HTML file to the "
@ -169,7 +169,7 @@ msgstr ""
"tutti i file collegati. Questo plug-in viene eseguito ogni volta che si " "tutti i file collegati. Questo plug-in viene eseguito ogni volta che si "
"aggiunge un file HTML alla libreria." "aggiunge un file HTML alla libreria."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:48 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49
msgid "" msgid ""
"Character encoding for the input HTML files. Common choices include: cp1252, " "Character encoding for the input HTML files. Common choices include: cp1252, "
"latin1, iso-8859-1 and utf-8." "latin1, iso-8859-1 and utf-8."
@ -178,46 +178,53 @@ msgstr ""
"iso-8859-1 e utf-8." "iso-8859-1 e utf-8."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56
msgid ""
"Create a PMLZ archive containing the PML file and all images in the "
"directory pmlname_img or images. This plugin is run every time you add a PML "
"file to the library."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87
msgid "Extract cover from comic files" msgid "Extract cover from comic files"
msgstr "Estrae le copertine dai file dei fumetti" msgstr "Estrae le copertine dai file dei fumetti"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:77 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:108
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:89
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:99
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:109
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:150 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:151
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:160 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:161
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:170 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:171
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:192 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:191
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:201
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:225 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:212
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:236 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:223
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:235
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:277
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:287
msgid "Read metadata from %s files" msgid "Read metadata from %s files"
msgstr "Legge i metadati da file %s" msgstr "Legge i metadati da file %s"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:215 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246
msgid "Read metadata from ebooks in RAR archives" msgid "Read metadata from ebooks in RAR archives"
msgstr "Leggi i metadati dai libri negli archivi RAR" msgstr "Leggi i metadati dai libri negli archivi RAR"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298
msgid "Read metadata from ebooks in ZIP archives" msgid "Read metadata from ebooks in ZIP archives"
msgstr "Leggi i metadati dai libri negli archivi ZIP" msgstr "Leggi i metadati dai libri negli archivi ZIP"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:278 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:288 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:319
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:329
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:351
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:331 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:362
msgid "Set metadata in %s files" msgid "Set metadata in %s files"
msgstr "Organizza i metadati in %s file" msgstr "Organizza i metadati in %s file"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340
msgid "Set metadata from %s files" msgid "Set metadata from %s files"
msgstr "imposta metadati da %s file" msgstr "imposta metadati da %s file"
@ -1306,8 +1313,8 @@ msgstr ""
"specificata una, viene generata una copertina di default con il titolo, " "specificata una, viene generata una copertina di default con il titolo, "
"l'autore, etc. Questa opzione disabilita la generazione di questa copertina." "l'autore, etc. Questa opzione disabilita la generazione di questa copertina."
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:130
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113 #: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:114
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
msgid "Table of Contents:" msgid "Table of Contents:"
@ -1857,21 +1864,21 @@ msgstr ""
msgid "Download %s from %s" msgid "Download %s from %s"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:135 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137
msgid "Downloads metadata from Google Books" msgid "Downloads metadata from Google Books"
msgstr "Scarica i metadati da Google Books" msgstr "Scarica i metadati da Google Books"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:151 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:153
msgid "Downloads metadata from isbndb.com" msgid "Downloads metadata from isbndb.com"
msgstr "Scarica i metadati da isbndb.com" msgstr "Scarica i metadati da isbndb.com"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:179 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181
msgid "" msgid ""
"To use isbndb.com you must sign up for a %sfree account%s and enter your " "To use isbndb.com you must sign up for a %sfree account%s and enter your "
"access key below." "access key below."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:187 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189
msgid "Downloads social metadata from amazon.com" msgid "Downloads social metadata from amazon.com"
msgstr "" msgstr ""
@ -1939,7 +1946,7 @@ msgstr ""
"LibraryThing.com\n" "LibraryThing.com\n"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323
msgid "Cover" msgid "Cover"
msgstr "Copertina" msgstr "Copertina"
@ -1970,70 +1977,70 @@ msgstr ""
msgid "All articles" msgid "All articles"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324
msgid "Title Page" msgid "Title Page"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168
msgid "Table of Contents" msgid "Table of Contents"
msgstr "Sommario" msgstr "Sommario"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326
msgid "Index" msgid "Index"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327
msgid "Glossary" msgid "Glossary"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328
msgid "Acknowledgements" msgid "Acknowledgements"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329
msgid "Bibliography" msgid "Bibliography"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330
msgid "Colophon" msgid "Colophon"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331
msgid "Copyright" msgid "Copyright"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332
msgid "Dedication" msgid "Dedication"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333
msgid "Epigraph" msgid "Epigraph"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334
msgid "Foreword" msgid "Foreword"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335
msgid "List of Illustrations" msgid "List of Illustrations"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336
msgid "List of Tables" msgid "List of Tables"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338
msgid "Preface" msgid "Preface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339
msgid "Main Text" msgid "Main Text"
msgstr "" msgstr ""
@ -2098,11 +2105,11 @@ msgid ""
"Generate an Adobe \"page-map\" file if pagination information is available." "Generate an Adobe \"page-map\" file if pagination information is available."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126
msgid "Footnotes" msgid "Footnotes"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135
msgid "Sidebar" msgid "Sidebar"
msgstr "" msgstr ""
@ -3275,7 +3282,7 @@ msgid "RB Output"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1416 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1420
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Scegliere il formato da leggere" msgstr "Scegliere il formato da leggere"
@ -3896,7 +3903,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1094
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
msgid "Error" msgid "Error"
msgstr "Errore" msgstr "Errore"
@ -4591,7 +4598,7 @@ msgid "Choose formats for "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:921 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925
msgid "Books" msgid "Books"
msgstr "Libri" msgstr "Libri"
@ -5490,52 +5497,52 @@ msgstr "Apri libro"
msgid "Configure" msgid "Configure"
msgstr "Configurazione" msgstr "Configurazione"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:24
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "Usa la biblioteca collocata nel percorso specificato." msgstr "Usa la biblioteca collocata nel percorso specificato."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:26
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:28
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "Invia le informazioni di debug alla console" msgstr "Invia le informazioni di debug alla console"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:30
msgid "Do not check for updates" msgid "Do not check for updates"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:80
msgid "If you are sure it is not running" msgid "If you are sure it is not running"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:82
msgid "Cannot Start " msgid "Cannot Start "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:83
msgid "%s is already running." msgid "%s is already running."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:86
msgid "may be running in the system tray, in the" msgid "may be running in the system tray, in the"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:88
msgid "upper right region of the screen." msgid "upper right region of the screen."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:90
msgid "lower right region of the screen." msgid "lower right region of the screen."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:93
msgid "try rebooting your computer." msgid "try rebooting your computer."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:95
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:107
msgid "try deleting the file" msgid "try deleting the file"
msgstr "" msgstr ""
@ -5861,7 +5868,7 @@ msgid "Save to disk in a single directory"
msgstr "Salva su disco in una singola cartella" msgstr "Salva su disco in una singola cartella"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1518 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Salva sul disco solo il formato %s" msgstr "Salva sul disco solo il formato %s"
@ -5896,7 +5903,7 @@ msgid "Calibre Library"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1661 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1665
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Scegliere un percorso per la propria biblioteca." msgstr "Scegliere un percorso per la propria biblioteca."
@ -5949,170 +5956,178 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:913 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:956 msgid "How many empty books?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:873
msgid "How many empty books should be added?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:917
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:960
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Caricamento libri nel dispositivo." msgstr "Caricamento libri nel dispositivo."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:922 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926
msgid "EPUB Books" msgid "EPUB Books"
msgstr "Libri EPUB" msgstr "Libri EPUB"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:923 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927
msgid "LRF Books" msgid "LRF Books"
msgstr "Libri LRF" msgstr "Libri LRF"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:924 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928
msgid "HTML Books" msgid "HTML Books"
msgstr "Libri HTML" msgstr "Libri HTML"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929
msgid "LIT Books" msgid "LIT Books"
msgstr "Libri LIT" msgstr "Libri LIT"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930
msgid "MOBI Books" msgid "MOBI Books"
msgstr "Libri MOBI" msgstr "Libri MOBI"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:931
msgid "Text books" msgid "Text books"
msgstr "Libri TXT" msgstr "Libri TXT"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:932
msgid "PDF Books" msgid "PDF Books"
msgstr "Libri PDF" msgstr "Libri PDF"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933
msgid "Comics" msgid "Comics"
msgstr "Fumetti" msgstr "Fumetti"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934
msgid "Archives" msgid "Archives"
msgstr "Archivi" msgstr "Archivi"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:965 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:969
msgid "Failed to read metadata" msgid "Failed to read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:970
msgid "Failed to read metadata from the following" msgid "Failed to read metadata from the following"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Cancellamento libri dal dispositivo." msgstr "Cancellamento libri dal dispositivo."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1047
msgid "Cannot download metadata" msgid "Cannot download metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1044 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1048
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1101 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1134 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1138
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1163
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1271 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1275
msgid "No books selected" msgid "No books selected"
msgstr "Nessun libro selezionato" msgstr "Nessun libro selezionato"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063
msgid "social metadata" msgid "social metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "covers" msgid "covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "metadata" msgid "metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067
msgid "Downloading %s for %d book(s)" msgid "Downloading %s for %d book(s)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089
msgid "Failed to download some metadata" msgid "Failed to download some metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1086 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090
msgid "Failed to download metadata for the following:" msgid "Failed to download metadata for the following:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1093
msgid "Failed to download metadata:" msgid "Failed to download metadata:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1100 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1104
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1133 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1137
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Impossibile modificare i metadati" msgstr "Impossibile modificare i metadati"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1162
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Impossibile salvare sul disco" msgstr "Impossibile salvare sul disco"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1161 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1165
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "Scegliere la cartella di destinazione" msgstr "Scegliere la cartella di destinazione"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1188 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192
msgid "Error while saving" msgid "Error while saving"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1189 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193
msgid "There was an error while saving." msgid "There was an error while saving."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1196 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201
msgid "Could not save some books" msgid "Could not save some books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1198 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202
msgid "Click the show details button to see which ones." msgid "Click the show details button to see which ones."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Scaricamento notizie da " msgstr "Scaricamento notizie da "
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1230 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234
msgid " fetched." msgid " fetched."
msgstr " preso." msgstr " preso."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1274
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Impossibile convertire" msgstr "Impossibile convertire"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1299 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1303
msgid "Starting conversion of %d book(s)" msgid "Starting conversion of %d book(s)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1429 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433
msgid "No book selected" msgid "No book selected"
msgstr "Nessun libro selezionato" msgstr "Nessun libro selezionato"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1464
msgid "Cannot view" msgid "Cannot view"
msgstr "Impossibile leggere" msgstr "Impossibile leggere"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1432
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "Impossibile aprire la cartella" msgstr "Impossibile aprire la cartella"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1445 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1449
msgid "Multiple Books Selected" msgid "Multiple Books Selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1446 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1450
msgid "" msgid ""
"You are attempting to open %d books. Opening too many books at once can be " "You are attempting to open %d books. Opening too many books at once can be "
"slow and have a negative effect on the responsiveness of your computer. Once " "slow and have a negative effect on the responsiveness of your computer. Once "
@ -6120,33 +6135,33 @@ msgid ""
"continue?" "continue?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1461 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1465
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s non ha formati disponibili" msgstr "%s non ha formati disponibili"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1502 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1506
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Impossibile configurare" msgstr "Impossibile configurare"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1503 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Impossibile configurare mentre ci sono lavori in esecuzione" msgstr "Impossibile configurare mentre ci sono lavori in esecuzione"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1546 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1550
msgid "No detailed info available" msgid "No detailed info available"
msgstr "Nessuna informazione dettagliata disponibile" msgstr "Nessuna informazione dettagliata disponibile"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1547 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
"Non è disponibile alcuna informazione dettagliata per i libri nel " "Non è disponibile alcuna informazione dettagliata per i libri nel "
"dispositivo." "dispositivo."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1599 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1603
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Errore di comunicazione col dispositivo" msgstr "Errore di comunicazione col dispositivo"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1600 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1604
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -6154,30 +6169,30 @@ msgstr ""
"Si è verificato un errore di comunicazione temporaneo col dispositivo. " "Si è verificato un errore di comunicazione temporaneo col dispositivo. "
"Disconnettere e riconnettere il dispositivo e/o riavviare" "Disconnettere e riconnettere il dispositivo e/o riavviare"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1623 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1627
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1641 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1645
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Errore di conversione" msgstr "Errore di conversione"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1624 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1628
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using third party tools." "first remove the DRM using third party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1642 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1646
msgid "<b>Failed</b>" msgid "<b>Failed</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1670 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674
msgid "Invalid library location" msgid "Invalid library location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1675
msgid "Could not access %s. Using %s as the library." msgid "Could not access %s. Using %s as the library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1719 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1723
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
@ -6185,22 +6200,22 @@ msgstr ""
"è il risultato degli sforzi di tanti volontari da tutto il mondo. Se lo " "è il risultato degli sforzi di tanti volontari da tutto il mondo. Se lo "
"trovi utile, puoi fare una donazione per supportare il suo sviluppo." "trovi utile, puoi fare una donazione per supportare il suo sviluppo."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1748
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "Ci sono lavori attivi. Uscire comunque?" msgstr "Ci sono lavori attivi. Uscire comunque?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" Quitting may cause corruption on the device.<br>\n" " Quitting may cause corruption on the device.<br>\n"
" Are you sure you want to quit?" " Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1755
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "ATTENZIONE: Lavori attivi" msgstr "ATTENZIONE: Lavori attivi"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1803 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1807
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
@ -6208,7 +6223,7 @@ msgstr ""
"continuerà a lavorare nel vassoio di sistema. Per chiuderlo, selezionare " "continuerà a lavorare nel vassoio di sistema. Per chiuderlo, selezionare "
"<b>Esci</b> nel menu contestuale del vassoio di sistema." "<b>Esci</b> nel menu contestuale del vassoio di sistema."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1822 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1826
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
@ -6216,11 +6231,11 @@ msgstr ""
"<span style=\"color:red; font-weight:bold\">Ultima versione: <a " "<span style=\"color:red; font-weight:bold\">Ultima versione: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1834
msgid "Update available" msgid "Update available"
msgstr "Aggiornamento disponibile" msgstr "Aggiornamento disponibile"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1835
msgid "" msgid ""
"%s has been updated to version %s. See the <a href=\"http://calibre-" "%s has been updated to version %s. See the <a href=\"http://calibre-"
"ebook.com/whats-new\">new features</a>. Visit the download page?" "ebook.com/whats-new\">new features</a>. Visit the download page?"
@ -6936,7 +6951,7 @@ msgid ""
"WordPlayer, etc. integration." "WordPlayer, etc. integration."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:120 #: /home/kovid/work/calibre/src/calibre/library/cli.py:121
msgid "" msgid ""
"Path to the calibre library. Default is to use the path stored in the " "Path to the calibre library. Default is to use the path stored in the "
"settings." "settings."
@ -6944,7 +6959,7 @@ msgstr ""
"Percorso alla biblioteca di calibre. L'impostazione predefinita è quella di " "Percorso alla biblioteca di calibre. L'impostazione predefinita è quella di "
"usare il percorso salvato nelle impostazioni." "usare il percorso salvato nelle impostazioni."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:201 #: /home/kovid/work/calibre/src/calibre/library/cli.py:200
msgid "" msgid ""
"%prog list [options]\n" "%prog list [options]\n"
"\n" "\n"
@ -6954,7 +6969,7 @@ msgstr ""
"\n" "\n"
"Elenca i libri disponibili nel database di calibre.\n" "Elenca i libri disponibili nel database di calibre.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:209 #: /home/kovid/work/calibre/src/calibre/library/cli.py:208
msgid "" msgid ""
"The fields to display when listing books in the database. Should be a comma " "The fields to display when listing books in the database. Should be a comma "
"separated list of fields.\n" "separated list of fields.\n"
@ -6969,7 +6984,7 @@ msgstr ""
"selezionare tutti i campi. Ha effetto solamente nel formato in uscita del " "selezionare tutti i campi. Ha effetto solamente nel formato in uscita del "
"testo." "testo."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:211 #: /home/kovid/work/calibre/src/calibre/library/cli.py:210
msgid "" msgid ""
"The field by which to sort the results.\n" "The field by which to sort the results.\n"
"Available fields: %s\n" "Available fields: %s\n"
@ -6979,11 +6994,11 @@ msgstr ""
"Campi disponibili: %s\n" "Campi disponibili: %s\n"
"Predefinito: %%default" "Predefinito: %%default"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/cli.py:212
msgid "Sort results in ascending order" msgid "Sort results in ascending order"
msgstr "Ordina i risultati in ordine crescente" msgstr "Ordina i risultati in ordine crescente"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:215 #: /home/kovid/work/calibre/src/calibre/library/cli.py:214
msgid "" msgid ""
"Filter the results by the search query. For the format of the search query, " "Filter the results by the search query. For the format of the search query, "
"please see the search related documentation in the User Manual. Default is " "please see the search related documentation in the User Manual. Default is "
@ -6993,7 +7008,7 @@ msgstr ""
"documentazione relativa alla ricerca nel Manuale Utente. L'opzione " "documentazione relativa alla ricerca nel Manuale Utente. L'opzione "
"predefinita è quella di non filtrare." "predefinita è quella di non filtrare."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 #: /home/kovid/work/calibre/src/calibre/library/cli.py:216
msgid "" msgid ""
"The maximum width of a single line in the output. Defaults to detecting " "The maximum width of a single line in the output. Defaults to detecting "
"screen size." "screen size."
@ -7001,11 +7016,11 @@ msgstr ""
"La larghezza massima di una singola linea nell'output. L'impostazione " "La larghezza massima di una singola linea nell'output. L'impostazione "
"predefinita è quella di rilevare la dimensione dello schermo." "predefinita è quella di rilevare la dimensione dello schermo."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 #: /home/kovid/work/calibre/src/calibre/library/cli.py:217
msgid "The string used to separate fields. Default is a space." msgid "The string used to separate fields. Default is a space."
msgstr "La stringa usata per separare i campi. Predefinita: spazio." msgstr "La stringa usata per separare i campi. Predefinita: spazio."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:219 #: /home/kovid/work/calibre/src/calibre/library/cli.py:218
msgid "" msgid ""
"The prefix for all file paths. Default is the absolute path to the library " "The prefix for all file paths. Default is the absolute path to the library "
"folder." "folder."
@ -7013,7 +7028,7 @@ msgstr ""
"Il prefisso per tutti i percorsi. L'impostazione predefinita è il percorso " "Il prefisso per tutti i percorsi. L'impostazione predefinita è il percorso "
"alla cartella della biblioteca." "alla cartella della biblioteca."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:222 #: /home/kovid/work/calibre/src/calibre/library/cli.py:221
msgid "" msgid ""
"The format in which to output the data. Available choices: %s. Defaults is " "The format in which to output the data. Available choices: %s. Defaults is "
"text." "text."
@ -7021,15 +7036,15 @@ msgstr ""
"Il formato in cui fornire i dati. Scelte disponibili: %s. Il formato " "Il formato in cui fornire i dati. Scelte disponibili: %s. Il formato "
"predefinito è: testo." "predefinito è: testo."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:235 #: /home/kovid/work/calibre/src/calibre/library/cli.py:234
msgid "Invalid fields. Available fields:" msgid "Invalid fields. Available fields:"
msgstr "Campi non validi. Campi disponibili:" msgstr "Campi non validi. Campi disponibili:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:242 #: /home/kovid/work/calibre/src/calibre/library/cli.py:241
msgid "Invalid sort field. Available fields:" msgid "Invalid sort field. Available fields:"
msgstr "Campo per l'ordinamento non valido. Campi disponibili:" msgstr "Campo per l'ordinamento non valido. Campi disponibili:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:313 #: /home/kovid/work/calibre/src/calibre/library/cli.py:312
msgid "" msgid ""
"The following books were not added as they already exist in the database " "The following books were not added as they already exist in the database "
"(see --duplicates option):" "(see --duplicates option):"
@ -7037,7 +7052,7 @@ msgstr ""
"I seguenti libri non sono stati aggiunti perché già esistenti nel database " "I seguenti libri non sono stati aggiunti perché già esistenti nel database "
"(vedere l'opzione --duplicates):" "(vedere l'opzione --duplicates):"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:336 #: /home/kovid/work/calibre/src/calibre/library/cli.py:335
msgid "" msgid ""
"%prog add [options] file1 file2 file3 ...\n" "%prog add [options] file1 file2 file3 ...\n"
"\n" "\n"
@ -7051,7 +7066,7 @@ msgstr ""
"specificare cartelle, vedere\n" "specificare cartelle, vedere\n"
"la cartella sottostante relativa alle opzioni.\n" "la cartella sottostante relativa alle opzioni.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:345 #: /home/kovid/work/calibre/src/calibre/library/cli.py:344
msgid "" msgid ""
"Assume that each directory has only a single logical book and that all files " "Assume that each directory has only a single logical book and that all files "
"in it are different e-book formats of that book" "in it are different e-book formats of that book"
@ -7059,21 +7074,21 @@ msgstr ""
"Assume che ogni cartella abbia un solo libro logico e che tutti i file " "Assume che ogni cartella abbia un solo libro logico e che tutti i file "
"presenti siano diversi formati per quel libro" "presenti siano diversi formati per quel libro"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:347 #: /home/kovid/work/calibre/src/calibre/library/cli.py:346
msgid "Process directories recursively" msgid "Process directories recursively"
msgstr "Processa cartelle ricorsivamente" msgstr "Processa cartelle ricorsivamente"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:349 #: /home/kovid/work/calibre/src/calibre/library/cli.py:348
msgid "" msgid ""
"Add books to database even if they already exist. Comparison is done based " "Add books to database even if they already exist. Comparison is done based "
"on book titles." "on book titles."
msgstr "Aggiunge libri al database anche se esistono già." msgstr "Aggiunge libri al database anche se esistono già."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:359 #: /home/kovid/work/calibre/src/calibre/library/cli.py:358
msgid "You must specify at least one file to add" msgid "You must specify at least one file to add"
msgstr "È necessario specificare almeno un file da aggiungere" msgstr "È necessario specificare almeno un file da aggiungere"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:375 #: /home/kovid/work/calibre/src/calibre/library/cli.py:374
msgid "" msgid ""
"%prog remove ids\n" "%prog remove ids\n"
"\n" "\n"
@ -7087,11 +7102,11 @@ msgstr ""
"separata da virgole di numeri id (è possibile ottenere i numeri id usando il " "separata da virgole di numeri id (è possibile ottenere i numeri id usando il "
"comando list). Ad esempio: 23,34,57-85\n" "comando list). Ad esempio: 23,34,57-85\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:390 #: /home/kovid/work/calibre/src/calibre/library/cli.py:389
msgid "You must specify at least one book to remove" msgid "You must specify at least one book to remove"
msgstr "È necessario specificare almeno un libro da aggiungere" msgstr "È necessario specificare almeno un libro da aggiungere"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:409 #: /home/kovid/work/calibre/src/calibre/library/cli.py:408
msgid "" msgid ""
"%prog add_format [options] id ebook_file\n" "%prog add_format [options] id ebook_file\n"
"\n" "\n"
@ -7105,15 +7120,15 @@ msgstr ""
"identificato da id. È possibile ottenere gli id usando il comando list. Se " "identificato da id. È possibile ottenere gli id usando il comando list. Se "
"il formato esiste già, verrà sovrascritto.\n" "il formato esiste già, verrà sovrascritto.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:424 #: /home/kovid/work/calibre/src/calibre/library/cli.py:423
msgid "You must specify an id and an ebook file" msgid "You must specify an id and an ebook file"
msgstr "È necessario specificare un id e un file ebook" msgstr "È necessario specificare un id e un file ebook"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:429 #: /home/kovid/work/calibre/src/calibre/library/cli.py:428
msgid "ebook file must have an extension" msgid "ebook file must have an extension"
msgstr "I file ebook devono avere un'estensione" msgstr "I file ebook devono avere un'estensione"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:437 #: /home/kovid/work/calibre/src/calibre/library/cli.py:436
msgid "" msgid ""
"\n" "\n"
"%prog remove_format [options] id fmt\n" "%prog remove_format [options] id fmt\n"
@ -7130,11 +7145,11 @@ msgstr ""
"file come LRF, TXT o EPUB. Se il libro logico non ha un fmt disponibile, non " "file come LRF, TXT o EPUB. Se il libro logico non ha un fmt disponibile, non "
"fa niente.\n" "fa niente.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:454 #: /home/kovid/work/calibre/src/calibre/library/cli.py:453
msgid "You must specify an id and a format" msgid "You must specify an id and a format"
msgstr "È necessario specificare un id e un formato" msgstr "È necessario specificare un id e un formato"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:472 #: /home/kovid/work/calibre/src/calibre/library/cli.py:471
msgid "" msgid ""
"\n" "\n"
"%prog show_metadata [options] id\n" "%prog show_metadata [options] id\n"
@ -7150,15 +7165,15 @@ msgstr ""
"con id.\n" "con id.\n"
"id è un numero dalla lista dei comandi.\n" "id è un numero dalla lista dei comandi.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:480 #: /home/kovid/work/calibre/src/calibre/library/cli.py:479
msgid "Print metadata in OPF form (XML)" msgid "Print metadata in OPF form (XML)"
msgstr "Stampa i metafati in formato OPF (XML)" msgstr "Stampa i metafati in formato OPF (XML)"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:489 #: /home/kovid/work/calibre/src/calibre/library/cli.py:488
msgid "You must specify an id" msgid "You must specify an id"
msgstr "È necessario specificare un id" msgstr "È necessario specificare un id"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:502 #: /home/kovid/work/calibre/src/calibre/library/cli.py:501
msgid "" msgid ""
"\n" "\n"
"%prog set_metadata [options] id /path/to/metadata.opf\n" "%prog set_metadata [options] id /path/to/metadata.opf\n"
@ -7180,11 +7195,11 @@ msgstr ""
"nel\n" "nel\n"
"comando show_metadata.\n" "comando show_metadata.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:518 #: /home/kovid/work/calibre/src/calibre/library/cli.py:517
msgid "You must specify an id and a metadata file" msgid "You must specify an id and a metadata file"
msgstr "È necessario specificare un id e un file di metadati" msgstr "È necessario specificare un id e un file di metadati"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:538 #: /home/kovid/work/calibre/src/calibre/library/cli.py:537
msgid "" msgid ""
"%prog export [options] ids\n" "%prog export [options] ids\n"
"\n" "\n"
@ -7202,27 +7217,27 @@ msgstr ""
"(in un file opf). È possibile prendere i numeri di id dalla lista dei " "(in un file opf). È possibile prendere i numeri di id dalla lista dei "
"comandi.\n" "comandi.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:546 #: /home/kovid/work/calibre/src/calibre/library/cli.py:545
msgid "Export all books in database, ignoring the list of ids." msgid "Export all books in database, ignoring the list of ids."
msgstr "Esporta tutti i libri del database, ignorando la lista di id." msgstr "Esporta tutti i libri del database, ignorando la lista di id."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:548 #: /home/kovid/work/calibre/src/calibre/library/cli.py:547
msgid "Export books to the specified directory. Default is" msgid "Export books to the specified directory. Default is"
msgstr "Esporta i libri nella cartella specificata. Predefinita:" msgstr "Esporta i libri nella cartella specificata. Predefinita:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:550 #: /home/kovid/work/calibre/src/calibre/library/cli.py:549
msgid "Export all books into a single directory" msgid "Export all books into a single directory"
msgstr "Esporta tutti i libri nella stessa cartella" msgstr "Esporta tutti i libri nella stessa cartella"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:557 #: /home/kovid/work/calibre/src/calibre/library/cli.py:556
msgid "Specifying this switch will turn this behavior off." msgid "Specifying this switch will turn this behavior off."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:580 #: /home/kovid/work/calibre/src/calibre/library/cli.py:579
msgid "You must specify some ids or the %s option" msgid "You must specify some ids or the %s option"
msgstr "È necessario specificare qualche id o l'opzione %s" msgstr "È necessario specificare qualche id o l'opzione %s"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:592 #: /home/kovid/work/calibre/src/calibre/library/cli.py:591
msgid "" msgid ""
"%%prog command [options] [arguments]\n" "%%prog command [options] [arguments]\n"
"\n" "\n"

File diff suppressed because it is too large Load Diff

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-02 22:46+0000\n" "POT-Creation-Date: 2009-12-04 21:05+0000\n"
"PO-Revision-Date: 2009-12-03 03:32+0000\n" "PO-Revision-Date: 2009-12-04 20:16+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n" "Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: Latvian <ivars_a@inbox.lv>\n" "Language-Team: Latvian <ivars_a@inbox.lv>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-03 04:39+0000\n" "X-Launchpad-Export-Date: 2009-12-05 04:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: LATVIA\n" "X-Poedit-Country: LATVIA\n"
"X-Poedit-Language: Latvian\n" "X-Poedit-Language: Latvian\n"
@ -43,8 +43,8 @@ msgstr "Pilnīgi neko nedara"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:45 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62
@ -57,8 +57,8 @@ msgstr "Pilnīgi neko nedara"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /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/pdf.py:28
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:18 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:40 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44
@ -70,9 +70,9 @@ msgstr "Pilnīgi neko nedara"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /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/odt/input.py:51
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:893 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:895
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:900
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:958 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:960
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105
@ -122,7 +122,7 @@ msgstr "Pilnīgi neko nedara"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:877
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211
#: /home/kovid/work/calibre/src/calibre/library/cli.py:282 #: /home/kovid/work/calibre/src/calibre/library/cli.py:281
#: /home/kovid/work/calibre/src/calibre/library/database.py:913 #: /home/kovid/work/calibre/src/calibre/library/database.py:913
#: /home/kovid/work/calibre/src/calibre/library/database2.py:702 #: /home/kovid/work/calibre/src/calibre/library/database2.py:702
#: /home/kovid/work/calibre/src/calibre/library/database2.py:714 #: /home/kovid/work/calibre/src/calibre/library/database2.py:714
@ -159,60 +159,72 @@ msgstr "Metadatu lasītājs"
msgid "Metadata writer" msgid "Metadata writer"
msgstr "Metadatu rakstītājs" msgstr "Metadatu rakstītājs"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:13 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14
msgid "" msgid ""
"Follow all local links in an HTML file and create a ZIP file containing all " "Follow all local links in an HTML file and create a ZIP file containing all "
"linked files. This plugin is run every time you add an HTML file to the " "linked files. This plugin is run every time you add an HTML file to the "
"library." "library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:48 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49
msgid "" msgid ""
"Character encoding for the input HTML files. Common choices include: cp1252, " "Character encoding for the input HTML files. Common choices include: cp1252, "
"latin1, iso-8859-1 and utf-8." "latin1, iso-8859-1 and utf-8."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56
msgid ""
" Create a PMLZ archive containing the PML file and all images "
"in the directory pmlname_img or images file containing all linked "
"files. This plugin is run every time you add an PML file to the "
"library. "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87
msgid "Character encoding for the input PML files. Should ways be: cp1252."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94
msgid "Extract cover from comic files" msgid "Extract cover from comic files"
msgstr "Izvilkt vāku no komiksu failiem" msgstr "Izvilkt vāku no komiksu failiem"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:77 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:115
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:89 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:127
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:99 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:137
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:109 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:147
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:158
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:168
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:178
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:150 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:188
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:160 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:198
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:170 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:208
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:219
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:192 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:230
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:242
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:225 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:263
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:236 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:274
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:284
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:294
msgid "Read metadata from %s files" msgid "Read metadata from %s files"
msgstr "Lasīt metadatus no %s failiem" msgstr "Lasīt metadatus no %s failiem"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:215 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:253
msgid "Read metadata from ebooks in RAR archives" msgid "Read metadata from ebooks in RAR archives"
msgstr "Lasīt metadatus no e-grāmatām RAR arhīvos" msgstr "Lasīt metadatus no e-grāmatām RAR arhīvos"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:305
msgid "Read metadata from ebooks in ZIP archives" msgid "Read metadata from ebooks in ZIP archives"
msgstr "Lasīt metadatus no e-grāmatām ZIP arhīvos" msgstr "Lasīt metadatus no e-grāmatām ZIP arhīvos"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:278 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:316
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:288 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:326
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:336
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:358
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:331 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:369
msgid "Set metadata in %s files" msgid "Set metadata in %s files"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:347
msgid "Set metadata from %s files" msgid "Set metadata from %s files"
msgstr "" msgstr ""
@ -1144,7 +1156,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113 #: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:114
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
msgid "Table of Contents:" msgid "Table of Contents:"
@ -1712,7 +1724,7 @@ msgid ""
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323
msgid "Cover" msgid "Cover"
msgstr "Vāks" msgstr "Vāks"
@ -1743,70 +1755,70 @@ msgstr ""
msgid "All articles" msgid "All articles"
msgstr "Visi raksti" msgstr "Visi raksti"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324
msgid "Title Page" msgid "Title Page"
msgstr "Titullapa" msgstr "Titullapa"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168
msgid "Table of Contents" msgid "Table of Contents"
msgstr "Satura rādītājs" msgstr "Satura rādītājs"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326
msgid "Index" msgid "Index"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327
msgid "Glossary" msgid "Glossary"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328
msgid "Acknowledgements" msgid "Acknowledgements"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329
msgid "Bibliography" msgid "Bibliography"
msgstr "Bibliogrāfija" msgstr "Bibliogrāfija"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330
msgid "Colophon" msgid "Colophon"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331
msgid "Copyright" msgid "Copyright"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332
msgid "Dedication" msgid "Dedication"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333
msgid "Epigraph" msgid "Epigraph"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334
msgid "Foreword" msgid "Foreword"
msgstr "Priekšvārds" msgstr "Priekšvārds"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335
msgid "List of Illustrations" msgid "List of Illustrations"
msgstr "Ilustrāciju saraksts" msgstr "Ilustrāciju saraksts"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336
msgid "List of Tables" msgid "List of Tables"
msgstr "Tabulu saraksts" msgstr "Tabulu saraksts"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337
msgid "Notes" msgid "Notes"
msgstr "Piezīmes" msgstr "Piezīmes"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338
msgid "Preface" msgid "Preface"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339
msgid "Main Text" msgid "Main Text"
msgstr "" msgstr ""
@ -1868,11 +1880,11 @@ msgid ""
"Generate an Adobe \"page-map\" file if pagination information is available." "Generate an Adobe \"page-map\" file if pagination information is available."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126
msgid "Footnotes" msgid "Footnotes"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135
msgid "Sidebar" msgid "Sidebar"
msgstr "" msgstr ""
@ -3033,7 +3045,7 @@ msgid "RB Output"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1416 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1420
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "" msgstr ""
@ -3649,7 +3661,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1094
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
msgid "Error" msgid "Error"
msgstr "" msgstr ""
@ -4325,7 +4337,7 @@ msgid "Choose formats for "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:921 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925
msgid "Books" msgid "Books"
msgstr "" msgstr ""
@ -5198,52 +5210,52 @@ msgstr "Atvērt e-grāmatu"
msgid "Configure" msgid "Configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:24
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:26
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:28
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:30
msgid "Do not check for updates" msgid "Do not check for updates"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:80
msgid "If you are sure it is not running" msgid "If you are sure it is not running"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:82
msgid "Cannot Start " msgid "Cannot Start "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:83
msgid "%s is already running." msgid "%s is already running."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:86
msgid "may be running in the system tray, in the" msgid "may be running in the system tray, in the"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:88
msgid "upper right region of the screen." msgid "upper right region of the screen."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:90
msgid "lower right region of the screen." msgid "lower right region of the screen."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:93
msgid "try rebooting your computer." msgid "try rebooting your computer."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:95
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:107
msgid "try deleting the file" msgid "try deleting the file"
msgstr "" msgstr ""
@ -5571,7 +5583,7 @@ msgid "Save to disk in a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1518 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "" msgstr ""
@ -5606,7 +5618,7 @@ msgid "Calibre Library"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1661 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1665
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "" msgstr ""
@ -5646,170 +5658,178 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:913 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:956 msgid "How many empty books?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:873
msgid "How many empty boks should be added?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:917
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:960
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:922 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926
msgid "EPUB Books" msgid "EPUB Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:923 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927
msgid "LRF Books" msgid "LRF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:924 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928
msgid "HTML Books" msgid "HTML Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929
msgid "LIT Books" msgid "LIT Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930
msgid "MOBI Books" msgid "MOBI Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:931
msgid "Text books" msgid "Text books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:932
msgid "PDF Books" msgid "PDF Books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933
msgid "Comics" msgid "Comics"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:965 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:969
msgid "Failed to read metadata" msgid "Failed to read metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:970
msgid "Failed to read metadata from the following" msgid "Failed to read metadata from the following"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1047
msgid "Cannot download metadata" msgid "Cannot download metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1044 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1048
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1101 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1134 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1138
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1163
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1271 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1275
msgid "No books selected" msgid "No books selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063
msgid "social metadata" msgid "social metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "covers" msgid "covers"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "metadata" msgid "metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067
msgid "Downloading %s for %d book(s)" msgid "Downloading %s for %d book(s)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089
msgid "Failed to download some metadata" msgid "Failed to download some metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1086 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090
msgid "Failed to download metadata for the following:" msgid "Failed to download metadata for the following:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1093
msgid "Failed to download metadata:" msgid "Failed to download metadata:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1100 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1104
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1133 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1137
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1162
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1161 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1165
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1188 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192
msgid "Error while saving" msgid "Error while saving"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1189 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193
msgid "There was an error while saving." msgid "There was an error while saving."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1196 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201
msgid "Could not save some books" msgid "Could not save some books"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1198 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202
msgid "Click the show details button to see which ones." msgid "Click the show details button to see which ones."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221
msgid "Fetching news from " msgid "Fetching news from "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1230 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234
msgid " fetched." msgid " fetched."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1274
msgid "Cannot convert" msgid "Cannot convert"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1299 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1303
msgid "Starting conversion of %d book(s)" msgid "Starting conversion of %d book(s)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1429 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433
msgid "No book selected" msgid "No book selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1464
msgid "Cannot view" msgid "Cannot view"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1432
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1445 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1449
msgid "Multiple Books Selected" msgid "Multiple Books Selected"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1446 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1450
msgid "" msgid ""
"You are attempting to open %d books. Opening too many books at once can be " "You are attempting to open %d books. Opening too many books at once can be "
"slow and have a negative effect on the responsiveness of your computer. Once " "slow and have a negative effect on the responsiveness of your computer. Once "
@ -5817,97 +5837,97 @@ msgid ""
"continue?" "continue?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1461 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1465
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1502 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1506
msgid "Cannot configure" msgid "Cannot configure"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1503 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1546 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1550
msgid "No detailed info available" msgid "No detailed info available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1547 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1599 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1603
msgid "Error talking to device" msgid "Error talking to device"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1600 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1604
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1623 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1627
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1641 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1645
msgid "Conversion Error" msgid "Conversion Error"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1624 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1628
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using third party tools." "first remove the DRM using third party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1642 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1646
msgid "<b>Failed</b>" msgid "<b>Failed</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1670 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674
msgid "Invalid library location" msgid "Invalid library location"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1675
msgid "Could not access %s. Using %s as the library." msgid "Could not access %s. Using %s as the library."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1719 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1723
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1748
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" Quitting may cause corruption on the device.<br>\n" " Quitting may cause corruption on the device.<br>\n"
" Are you sure you want to quit?" " Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1755
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1803 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1807
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1822 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1826
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1834
msgid "Update available" msgid "Update available"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1835
msgid "" msgid ""
"%s has been updated to version %s. See the <a href=\"http://calibre-" "%s has been updated to version %s. See the <a href=\"http://calibre-"
"ebook.com/whats-new\">new features</a>. Visit the download page?" "ebook.com/whats-new\">new features</a>. Visit the download page?"
@ -6610,20 +6630,20 @@ msgid ""
"WordPlayer, etc. integration." "WordPlayer, etc. integration."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:120 #: /home/kovid/work/calibre/src/calibre/library/cli.py:121
msgid "" msgid ""
"Path to the calibre library. Default is to use the path stored in the " "Path to the calibre library. Default is to use the path stored in the "
"settings." "settings."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:201 #: /home/kovid/work/calibre/src/calibre/library/cli.py:200
msgid "" msgid ""
"%prog list [options]\n" "%prog list [options]\n"
"\n" "\n"
"List the books available in the calibre database.\n" "List the books available in the calibre database.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:209 #: /home/kovid/work/calibre/src/calibre/library/cli.py:208
msgid "" msgid ""
"The fields to display when listing books in the database. Should be a comma " "The fields to display when listing books in the database. Should be a comma "
"separated list of fields.\n" "separated list of fields.\n"
@ -6632,61 +6652,61 @@ msgid ""
"fields. Only has effect in the text output format." "fields. Only has effect in the text output format."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:211 #: /home/kovid/work/calibre/src/calibre/library/cli.py:210
msgid "" msgid ""
"The field by which to sort the results.\n" "The field by which to sort the results.\n"
"Available fields: %s\n" "Available fields: %s\n"
"Default: %%default" "Default: %%default"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/cli.py:212
msgid "Sort results in ascending order" msgid "Sort results in ascending order"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:215 #: /home/kovid/work/calibre/src/calibre/library/cli.py:214
msgid "" msgid ""
"Filter the results by the search query. For the format of the search query, " "Filter the results by the search query. For the format of the search query, "
"please see the search related documentation in the User Manual. Default is " "please see the search related documentation in the User Manual. Default is "
"to do no filtering." "to do no filtering."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 #: /home/kovid/work/calibre/src/calibre/library/cli.py:216
msgid "" msgid ""
"The maximum width of a single line in the output. Defaults to detecting " "The maximum width of a single line in the output. Defaults to detecting "
"screen size." "screen size."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 #: /home/kovid/work/calibre/src/calibre/library/cli.py:217
msgid "The string used to separate fields. Default is a space." msgid "The string used to separate fields. Default is a space."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:219 #: /home/kovid/work/calibre/src/calibre/library/cli.py:218
msgid "" msgid ""
"The prefix for all file paths. Default is the absolute path to the library " "The prefix for all file paths. Default is the absolute path to the library "
"folder." "folder."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:222 #: /home/kovid/work/calibre/src/calibre/library/cli.py:221
msgid "" msgid ""
"The format in which to output the data. Available choices: %s. Defaults is " "The format in which to output the data. Available choices: %s. Defaults is "
"text." "text."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:235 #: /home/kovid/work/calibre/src/calibre/library/cli.py:234
msgid "Invalid fields. Available fields:" msgid "Invalid fields. Available fields:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:242 #: /home/kovid/work/calibre/src/calibre/library/cli.py:241
msgid "Invalid sort field. Available fields:" msgid "Invalid sort field. Available fields:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:313 #: /home/kovid/work/calibre/src/calibre/library/cli.py:312
msgid "" msgid ""
"The following books were not added as they already exist in the database " "The following books were not added as they already exist in the database "
"(see --duplicates option):" "(see --duplicates option):"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:336 #: /home/kovid/work/calibre/src/calibre/library/cli.py:335
msgid "" msgid ""
"%prog add [options] file1 file2 file3 ...\n" "%prog add [options] file1 file2 file3 ...\n"
"\n" "\n"
@ -6695,27 +6715,27 @@ msgid ""
"the directory related options below.\n" "the directory related options below.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:345 #: /home/kovid/work/calibre/src/calibre/library/cli.py:344
msgid "" msgid ""
"Assume that each directory has only a single logical book and that all files " "Assume that each directory has only a single logical book and that all files "
"in it are different e-book formats of that book" "in it are different e-book formats of that book"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:347 #: /home/kovid/work/calibre/src/calibre/library/cli.py:346
msgid "Process directories recursively" msgid "Process directories recursively"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:349 #: /home/kovid/work/calibre/src/calibre/library/cli.py:348
msgid "" msgid ""
"Add books to database even if they already exist. Comparison is done based " "Add books to database even if they already exist. Comparison is done based "
"on book titles." "on book titles."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:359 #: /home/kovid/work/calibre/src/calibre/library/cli.py:358
msgid "You must specify at least one file to add" msgid "You must specify at least one file to add"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:375 #: /home/kovid/work/calibre/src/calibre/library/cli.py:374
msgid "" msgid ""
"%prog remove ids\n" "%prog remove ids\n"
"\n" "\n"
@ -6724,11 +6744,11 @@ msgid ""
"command). For example, 23,34,57-85\n" "command). For example, 23,34,57-85\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:390 #: /home/kovid/work/calibre/src/calibre/library/cli.py:389
msgid "You must specify at least one book to remove" msgid "You must specify at least one book to remove"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:409 #: /home/kovid/work/calibre/src/calibre/library/cli.py:408
msgid "" msgid ""
"%prog add_format [options] id ebook_file\n" "%prog add_format [options] id ebook_file\n"
"\n" "\n"
@ -6737,15 +6757,15 @@ msgid ""
"already exists, it is replaced.\n" "already exists, it is replaced.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:424 #: /home/kovid/work/calibre/src/calibre/library/cli.py:423
msgid "You must specify an id and an ebook file" msgid "You must specify an id and an ebook file"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:429 #: /home/kovid/work/calibre/src/calibre/library/cli.py:428
msgid "ebook file must have an extension" msgid "ebook file must have an extension"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:437 #: /home/kovid/work/calibre/src/calibre/library/cli.py:436
msgid "" msgid ""
"\n" "\n"
"%prog remove_format [options] id fmt\n" "%prog remove_format [options] id fmt\n"
@ -6755,11 +6775,11 @@ msgid ""
"EPUB. If the logical book does not have fmt available, do nothing.\n" "EPUB. If the logical book does not have fmt available, do nothing.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:454 #: /home/kovid/work/calibre/src/calibre/library/cli.py:453
msgid "You must specify an id and a format" msgid "You must specify an id and a format"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:472 #: /home/kovid/work/calibre/src/calibre/library/cli.py:471
msgid "" msgid ""
"\n" "\n"
"%prog show_metadata [options] id\n" "%prog show_metadata [options] id\n"
@ -6769,15 +6789,15 @@ msgid ""
"id is an id number from the list command.\n" "id is an id number from the list command.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:480 #: /home/kovid/work/calibre/src/calibre/library/cli.py:479
msgid "Print metadata in OPF form (XML)" msgid "Print metadata in OPF form (XML)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:489 #: /home/kovid/work/calibre/src/calibre/library/cli.py:488
msgid "You must specify an id" msgid "You must specify an id"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:502 #: /home/kovid/work/calibre/src/calibre/library/cli.py:501
msgid "" msgid ""
"\n" "\n"
"%prog set_metadata [options] id /path/to/metadata.opf\n" "%prog set_metadata [options] id /path/to/metadata.opf\n"
@ -6790,11 +6810,11 @@ msgid ""
"show_metadata command.\n" "show_metadata command.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:518 #: /home/kovid/work/calibre/src/calibre/library/cli.py:517
msgid "You must specify an id and a metadata file" msgid "You must specify an id and a metadata file"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:538 #: /home/kovid/work/calibre/src/calibre/library/cli.py:537
msgid "" msgid ""
"%prog export [options] ids\n" "%prog export [options] ids\n"
"\n" "\n"
@ -6805,27 +6825,27 @@ msgid ""
"an opf file). You can get id numbers from the list command.\n" "an opf file). You can get id numbers from the list command.\n"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:546 #: /home/kovid/work/calibre/src/calibre/library/cli.py:545
msgid "Export all books in database, ignoring the list of ids." msgid "Export all books in database, ignoring the list of ids."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:548 #: /home/kovid/work/calibre/src/calibre/library/cli.py:547
msgid "Export books to the specified directory. Default is" msgid "Export books to the specified directory. Default is"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:550 #: /home/kovid/work/calibre/src/calibre/library/cli.py:549
msgid "Export all books into a single directory" msgid "Export all books into a single directory"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:557 #: /home/kovid/work/calibre/src/calibre/library/cli.py:556
msgid "Specifying this switch will turn this behavior off." msgid "Specifying this switch will turn this behavior off."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:580 #: /home/kovid/work/calibre/src/calibre/library/cli.py:579
msgid "You must specify some ids or the %s option" msgid "You must specify some ids or the %s option"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:592 #: /home/kovid/work/calibre/src/calibre/library/cli.py:591
msgid "" msgid ""
"%%prog command [options] [arguments]\n" "%%prog command [options] [arguments]\n"
"\n" "\n"

View File

@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre\n" "Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-02 22:46+0000\n" "POT-Creation-Date: 2009-12-04 21:05+0000\n"
"PO-Revision-Date: 2009-12-02 13:41+0000\n" "PO-Revision-Date: 2009-12-04 20:27+0000\n"
"Last-Translator: Øyvind Øritsland <Unknown>\n" "Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n" "Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-03 04:39+0000\n" "X-Launchpad-Export-Date: 2009-12-05 04:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
@ -41,8 +41,8 @@ msgstr "Gjør absolutt ingenting"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:45 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62
@ -55,8 +55,8 @@ msgstr "Gjør absolutt ingenting"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /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/pdf.py:28
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:18 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:40 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44
@ -68,9 +68,9 @@ msgstr "Gjør absolutt ingenting"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /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/odt/input.py:51
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:893 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:895
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:900
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:958 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:960
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105
@ -120,7 +120,7 @@ msgstr "Gjør absolutt ingenting"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:877
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211
#: /home/kovid/work/calibre/src/calibre/library/cli.py:282 #: /home/kovid/work/calibre/src/calibre/library/cli.py:281
#: /home/kovid/work/calibre/src/calibre/library/database.py:913 #: /home/kovid/work/calibre/src/calibre/library/database.py:913
#: /home/kovid/work/calibre/src/calibre/library/database2.py:702 #: /home/kovid/work/calibre/src/calibre/library/database2.py:702
#: /home/kovid/work/calibre/src/calibre/library/database2.py:714 #: /home/kovid/work/calibre/src/calibre/library/database2.py:714
@ -157,7 +157,7 @@ msgstr "Metadata-leser"
msgid "Metadata writer" msgid "Metadata writer"
msgstr "Metadata-skriver" msgstr "Metadata-skriver"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:13 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14
msgid "" msgid ""
"Follow all local links in an HTML file and create a ZIP file containing all " "Follow all local links in an HTML file and create a ZIP file containing all "
"linked files. This plugin is run every time you add an HTML file to the " "linked files. This plugin is run every time you add an HTML file to the "
@ -167,7 +167,7 @@ msgstr ""
"lenkede filer. Dette programtillegget kjører hver gang du legger til en HTML " "lenkede filer. Dette programtillegget kjører hver gang du legger til en HTML "
"fil til biblioteket." "fil til biblioteket."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:48 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49
msgid "" msgid ""
"Character encoding for the input HTML files. Common choices include: cp1252, " "Character encoding for the input HTML files. Common choices include: cp1252, "
"latin1, iso-8859-1 and utf-8." "latin1, iso-8859-1 and utf-8."
@ -176,46 +176,58 @@ msgstr ""
"latin1, iso-8859-1 og utf-8." "latin1, iso-8859-1 og utf-8."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56
msgid ""
" Create a PMLZ archive containing the PML file and all images "
"in the directory pmlname_img or images file containing all linked "
"files. This plugin is run every time you add an PML file to the "
"library. "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87
msgid "Character encoding for the input PML files. Should ways be: cp1252."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94
msgid "Extract cover from comic files" msgid "Extract cover from comic files"
msgstr "Ekstrakter omslagside fra tegneseriefiler" msgstr "Ekstrakter omslagside fra tegneseriefiler"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:77 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:115
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:89 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:127
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:99 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:137
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:109 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:147
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:158
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:168
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:178
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:150 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:188
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:160 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:198
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:170 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:208
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:219
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:192 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:230
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:242
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:225 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:263
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:236 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:274
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:284
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:294
msgid "Read metadata from %s files" msgid "Read metadata from %s files"
msgstr "Les metadata fra %s filer" msgstr "Les metadata fra %s filer"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:215 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:253
msgid "Read metadata from ebooks in RAR archives" msgid "Read metadata from ebooks in RAR archives"
msgstr "Les metadata fra e boken i RAR arkivene" msgstr "Les metadata fra e boken i RAR arkivene"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:305
msgid "Read metadata from ebooks in ZIP archives" msgid "Read metadata from ebooks in ZIP archives"
msgstr "Les metadata fra e boken i ZIP arkivene" msgstr "Les metadata fra e boken i ZIP arkivene"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:278 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:316
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:288 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:326
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:336
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:358
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:331 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:369
msgid "Set metadata in %s files" msgid "Set metadata in %s files"
msgstr "Set metadata i %s filer" msgstr "Set metadata i %s filer"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:347
msgid "Set metadata from %s files" msgid "Set metadata from %s files"
msgstr "Set metadata fra %s filer" msgstr "Set metadata fra %s filer"
@ -1334,7 +1346,7 @@ msgstr ""
"forfatter osv. Dette valget slår av genereringen av dette omslaget." "forfatter osv. Dette valget slår av genereringen av dette omslaget."
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113 #: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:114
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
msgid "Table of Contents:" msgid "Table of Contents:"
@ -1985,7 +1997,7 @@ msgstr ""
"Finn et omslagsbilde for boken identifisert ved ISBN fra LibraryThing.com\n" "Finn et omslagsbilde for boken identifisert ved ISBN fra LibraryThing.com\n"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323
msgid "Cover" msgid "Cover"
msgstr "Omslagside" msgstr "Omslagside"
@ -2020,70 +2032,70 @@ msgstr "Slå av kompresjon av filinnhold."
msgid "All articles" msgid "All articles"
msgstr "Alle artikler" msgstr "Alle artikler"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324
msgid "Title Page" msgid "Title Page"
msgstr "Tittelside" msgstr "Tittelside"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168
msgid "Table of Contents" msgid "Table of Contents"
msgstr "Innholdsfortegnelse" msgstr "Innholdsfortegnelse"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326
msgid "Index" msgid "Index"
msgstr "Innhold" msgstr "Innhold"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327
msgid "Glossary" msgid "Glossary"
msgstr "Ordliste" msgstr "Ordliste"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328
msgid "Acknowledgements" msgid "Acknowledgements"
msgstr "Påskjønnelse" msgstr "Påskjønnelse"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329
msgid "Bibliography" msgid "Bibliography"
msgstr "Litteraturliste" msgstr "Litteraturliste"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330
msgid "Colophon" msgid "Colophon"
msgstr "Kolofon" msgstr "Kolofon"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331
msgid "Copyright" msgid "Copyright"
msgstr "Opphavsrettighet" msgstr "Opphavsrettighet"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332
msgid "Dedication" msgid "Dedication"
msgstr "Tilegnet" msgstr "Tilegnet"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333
msgid "Epigraph" msgid "Epigraph"
msgstr "Epigraf" msgstr "Epigraf"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334
msgid "Foreword" msgid "Foreword"
msgstr "Forord" msgstr "Forord"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335
msgid "List of Illustrations" msgid "List of Illustrations"
msgstr "Illustrasjonsliste" msgstr "Illustrasjonsliste"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336
msgid "List of Tables" msgid "List of Tables"
msgstr "Tabell-liste" msgstr "Tabell-liste"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337
msgid "Notes" msgid "Notes"
msgstr "Merknader" msgstr "Merknader"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338
msgid "Preface" msgid "Preface"
msgstr "Forord" msgstr "Forord"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339
msgid "Main Text" msgid "Main Text"
msgstr "Hovedtekst" msgstr "Hovedtekst"
@ -2147,11 +2159,11 @@ msgid ""
msgstr "" msgstr ""
"Generer en Adobe \"sidekart\" fil dersom sideinndeling er tilgjengelig." "Generer en Adobe \"sidekart\" fil dersom sideinndeling er tilgjengelig."
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126
msgid "Footnotes" msgid "Footnotes"
msgstr "Fotnoter" msgstr "Fotnoter"
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135
msgid "Sidebar" msgid "Sidebar"
msgstr "Sidepanel" msgstr "Sidepanel"
@ -3414,7 +3426,7 @@ msgid "RB Output"
msgstr "RB Utdata" msgstr "RB Utdata"
#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1416 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1420
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Velg format som skal vises" msgstr "Velg format som skal vises"
@ -4049,7 +4061,7 @@ msgstr "ny e-postadresse"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1094
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
msgid "Error" msgid "Error"
msgstr "Feil" msgstr "Feil"
@ -4771,7 +4783,7 @@ msgid "Choose formats for "
msgstr "Velg formater for " msgstr "Velg formater for "
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:921 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925
msgid "Books" msgid "Books"
msgstr "Bøker" msgstr "Bøker"
@ -5697,52 +5709,52 @@ msgstr "Åpne e-bok"
msgid "Configure" msgid "Configure"
msgstr "Konfigurer" msgstr "Konfigurer"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:24
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "Bruk biblioteket lokalisert ved en spesifikk sti." msgstr "Bruk biblioteket lokalisert ved en spesifikk sti."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:26
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "Start minimalisert til systemstatusfeltet." msgstr "Start minimalisert til systemstatusfeltet."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:28
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "Logg debugging informasjon til konsollen" msgstr "Logg debugging informasjon til konsollen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:30
msgid "Do not check for updates" msgid "Do not check for updates"
msgstr "Ikke søk etter oppdateringer" msgstr "Ikke søk etter oppdateringer"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:80
msgid "If you are sure it is not running" msgid "If you are sure it is not running"
msgstr "Er du sikker på at den ikke kjører" msgstr "Er du sikker på at den ikke kjører"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:82
msgid "Cannot Start " msgid "Cannot Start "
msgstr "Kan ikke Starte " msgstr "Kan ikke Starte "
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:83
msgid "%s is already running." msgid "%s is already running."
msgstr "%s kjører allerede." msgstr "%s kjører allerede."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:86
msgid "may be running in the system tray, in the" msgid "may be running in the system tray, in the"
msgstr "kan kjøre i systemfeltet, i" msgstr "kan kjøre i systemfeltet, i"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:88
msgid "upper right region of the screen." msgid "upper right region of the screen."
msgstr "øvre høyre område av skjermen." msgstr "øvre høyre område av skjermen."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:90
msgid "lower right region of the screen." msgid "lower right region of the screen."
msgstr "nedre høyre område av skjermen." msgstr "nedre høyre område av skjermen."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:93
msgid "try rebooting your computer." msgid "try rebooting your computer."
msgstr "forsøk å re-starte datamaskinen" msgstr "forsøk å re-starte datamaskinen"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:95
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:107
msgid "try deleting the file" msgid "try deleting the file"
msgstr "forsøk å slette filen" msgstr "forsøk å slette filen"
@ -6078,7 +6090,7 @@ msgid "Save to disk in a single directory"
msgstr "Lagre til disk i en enkelt mappe" msgstr "Lagre til disk i en enkelt mappe"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1518 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Lagre kun %s format til disken" msgstr "Lagre kun %s format til disken"
@ -6113,7 +6125,7 @@ msgid "Calibre Library"
msgstr "Calibre-bibliotek" msgstr "Calibre-bibliotek"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1661 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1665
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Velg en lokalisering for ditt e-bokbibliotek" msgstr "Velg en lokalisering for ditt e-bokbibliotek"
@ -6165,56 +6177,64 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:913 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:956 msgid "How many empty books?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:873
msgid "How many empty boks should be added?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:917
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:960
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Laster opp bøker til enheten." msgstr "Laster opp bøker til enheten."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:922 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926
msgid "EPUB Books" msgid "EPUB Books"
msgstr "EPUB bøker" msgstr "EPUB bøker"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:923 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927
msgid "LRF Books" msgid "LRF Books"
msgstr "LRF bøker" msgstr "LRF bøker"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:924 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928
msgid "HTML Books" msgid "HTML Books"
msgstr "HTML-bøker" msgstr "HTML-bøker"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929
msgid "LIT Books" msgid "LIT Books"
msgstr "LIT bøker" msgstr "LIT bøker"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930
msgid "MOBI Books" msgid "MOBI Books"
msgstr "MOBI bøker" msgstr "MOBI bøker"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:931
msgid "Text books" msgid "Text books"
msgstr "Tekst bøker" msgstr "Tekst bøker"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:932
msgid "PDF Books" msgid "PDF Books"
msgstr "PDF-bøker" msgstr "PDF-bøker"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933
msgid "Comics" msgid "Comics"
msgstr "Tegneserier" msgstr "Tegneserier"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934
msgid "Archives" msgid "Archives"
msgstr "Arkiver" msgstr "Arkiver"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:965 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:969
msgid "Failed to read metadata" msgid "Failed to read metadata"
msgstr "Kunne ikke lese metadata" msgstr "Kunne ikke lese metadata"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:970
msgid "Failed to read metadata from the following" msgid "Failed to read metadata from the following"
msgstr "Kunne ikke lese metadata fra følgende" msgstr "Kunne ikke lese metadata fra følgende"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
@ -6222,115 +6242,115 @@ msgstr ""
"De valgte bøkene vil bli <b>slettet permanent</b> og filene vil bli fjernet " "De valgte bøkene vil bli <b>slettet permanent</b> og filene vil bli fjernet "
"fra datamaskinen din. Er du sikker?" "fra datamaskinen din. Er du sikker?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Sletter bøker fra enheten." msgstr "Sletter bøker fra enheten."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1047
msgid "Cannot download metadata" msgid "Cannot download metadata"
msgstr "Kan ikke laste ned metadata" msgstr "Kan ikke laste ned metadata"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1044 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1048
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1101 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1134 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1138
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1163
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1271 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1275
msgid "No books selected" msgid "No books selected"
msgstr "Ingen bøker ble valgt" msgstr "Ingen bøker ble valgt"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063
msgid "social metadata" msgid "social metadata"
msgstr "sosiale metadata" msgstr "sosiale metadata"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "covers" msgid "covers"
msgstr "Omslag" msgstr "Omslag"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "metadata" msgid "metadata"
msgstr "metadata" msgstr "metadata"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067
msgid "Downloading %s for %d book(s)" msgid "Downloading %s for %d book(s)"
msgstr "Laster ned %s for %d bok(bøker)" msgstr "Laster ned %s for %d bok(bøker)"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089
msgid "Failed to download some metadata" msgid "Failed to download some metadata"
msgstr "Klarte ikke å laste ned en del av metadataene" msgstr "Klarte ikke å laste ned en del av metadataene"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1086 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090
msgid "Failed to download metadata for the following:" msgid "Failed to download metadata for the following:"
msgstr "Kunne ikke laste ned metadata for følgende:" msgstr "Kunne ikke laste ned metadata for følgende:"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1093
msgid "Failed to download metadata:" msgid "Failed to download metadata:"
msgstr "Kunne ikke laste ned metadata:" msgstr "Kunne ikke laste ned metadata:"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1100 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1104
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1133 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1137
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Kan ikke redigere metadata" msgstr "Kan ikke redigere metadata"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1162
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Kan ikke lagre til disk" msgstr "Kan ikke lagre til disk"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1161 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1165
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "Velg mottaksmappe" msgstr "Velg mottaksmappe"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1188 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192
msgid "Error while saving" msgid "Error while saving"
msgstr "Feil ved lagring" msgstr "Feil ved lagring"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1189 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193
msgid "There was an error while saving." msgid "There was an error while saving."
msgstr "En feil oppsto ved lagring" msgstr "En feil oppsto ved lagring"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1196 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201
msgid "Could not save some books" msgid "Could not save some books"
msgstr "Kunne ikke lagre enkelte bøker" msgstr "Kunne ikke lagre enkelte bøker"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1198 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202
msgid "Click the show details button to see which ones." msgid "Click the show details button to see which ones."
msgstr "Klikk vis detaljer knappen for å se hvilke." msgstr "Klikk vis detaljer knappen for å se hvilke."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Skaffer nyheter fra " msgstr "Skaffer nyheter fra "
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1230 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234
msgid " fetched." msgid " fetched."
msgstr " funnet." msgstr " funnet."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1274
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Kan ikke konvertere" msgstr "Kan ikke konvertere"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1299 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1303
msgid "Starting conversion of %d book(s)" msgid "Starting conversion of %d book(s)"
msgstr "Starter konverteringen av %d boken(bøkene)" msgstr "Starter konverteringen av %d boken(bøkene)"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1429 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433
msgid "No book selected" msgid "No book selected"
msgstr "Ingen bøker ble valgt" msgstr "Ingen bøker ble valgt"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1464
msgid "Cannot view" msgid "Cannot view"
msgstr "Kan ikke vise" msgstr "Kan ikke vise"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1432
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "Kan ikke åpne folder" msgstr "Kan ikke åpne folder"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1445 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1449
msgid "Multiple Books Selected" msgid "Multiple Books Selected"
msgstr "Flere bøker ble valgt" msgstr "Flere bøker ble valgt"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1446 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1450
msgid "" msgid ""
"You are attempting to open %d books. Opening too many books at once can be " "You are attempting to open %d books. Opening too many books at once can be "
"slow and have a negative effect on the responsiveness of your computer. Once " "slow and have a negative effect on the responsiveness of your computer. Once "
@ -6342,32 +6362,32 @@ msgstr ""
"startet denne prosessen, kan den ikke stanses før den er fullført. Ønsker du " "startet denne prosessen, kan den ikke stanses før den er fullført. Ønsker du "
"å fortsette?" "å fortsette?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1461 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1465
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s har ikke tilgjengelig formater." msgstr "%s har ikke tilgjengelig formater."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1502 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1506
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Kan ikke konfigurere" msgstr "Kan ikke konfigurere"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1503 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Kan ikke konfigurere samtidig som en oppgave kjører." msgstr "Kan ikke konfigurere samtidig som en oppgave kjører."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1546 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1550
msgid "No detailed info available" msgid "No detailed info available"
msgstr "Ingen detaljert informasjon er tilgjengelig" msgstr "Ingen detaljert informasjon er tilgjengelig"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1547 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "" msgstr ""
"Ingen detaljert informasjon er tilgjengelig for bøker på denne enheten." "Ingen detaljert informasjon er tilgjengelig for bøker på denne enheten."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1599 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1603
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Feil ved komminikasjonen med enheten" msgstr "Feil ved komminikasjonen med enheten"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1600 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1604
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -6375,12 +6395,12 @@ msgstr ""
"En midlertidig feil oppsto ved kommunikasjonen med enheten. Vennligst plugg " "En midlertidig feil oppsto ved kommunikasjonen med enheten. Vennligst plugg "
"ut og plugg inn igjen enheten, eller ta en omstart." "ut og plugg inn igjen enheten, eller ta en omstart."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1623 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1627
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1641 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1645
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Feil ved konverteringen" msgstr "Feil ved konverteringen"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1624 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1628
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using third party tools." "first remove the DRM using third party tools."
@ -6389,19 +6409,19 @@ msgstr ""
"Du må først fjerne DRM beskyttelsen ved å benytte et 3.parts program med " "Du må først fjerne DRM beskyttelsen ved å benytte et 3.parts program med "
"slike egenskaper." "slike egenskaper."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1642 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1646
msgid "<b>Failed</b>" msgid "<b>Failed</b>"
msgstr "<b>Feilet</b>" msgstr "<b>Feilet</b>"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1670 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674
msgid "Invalid library location" msgid "Invalid library location"
msgstr "Ugylding biblioteklokalisering" msgstr "Ugylding biblioteklokalisering"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1675
msgid "Could not access %s. Using %s as the library." msgid "Could not access %s. Using %s as the library."
msgstr "Kunne ikke koble til %s. Ved bruk av %s som bibliotek." msgstr "Kunne ikke koble til %s. Ved bruk av %s som bibliotek."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1719 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1723
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
@ -6409,11 +6429,11 @@ msgstr ""
"er resultatet av innsatsen til mange frivillige fra hele verden. Dersom du " "er resultatet av innsatsen til mange frivillige fra hele verden. Dersom du "
"synes programmet er godt, vennligst bidra med støtte til videre utvikling." "synes programmet er godt, vennligst bidra med støtte til videre utvikling."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1748
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "Det finnes aktive oppgaver. Er du sikker på at du ønsker å avslutte?" msgstr "Det finnes aktive oppgaver. Er du sikker på at du ønsker å avslutte?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" Quitting may cause corruption on the device.<br>\n" " Quitting may cause corruption on the device.<br>\n"
@ -6423,11 +6443,11 @@ msgstr ""
" Å avslutte kan føre til feil på enheten.<br>\n" " Å avslutte kan føre til feil på enheten.<br>\n"
" Er du sikker på at du ønsker å avslutte?" " Er du sikker på at du ønsker å avslutte?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1755
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "ADVARSEL: Aktive oppgaver" msgstr "ADVARSEL: Aktive oppgaver"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1803 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1807
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
@ -6435,7 +6455,7 @@ msgstr ""
"vil fortsette å kjøre i systemstatusfeltet. For å stenge programmet, velg " "vil fortsette å kjøre i systemstatusfeltet. For å stenge programmet, velg "
"<b>Stopp</b> innholdslisten i systemstatusfeltet." "<b>Stopp</b> innholdslisten i systemstatusfeltet."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1822 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1826
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
@ -6443,11 +6463,11 @@ msgstr ""
"<span style=\"color:red; font-weight:bold\">Siste versjon: <a " "<span style=\"color:red; font-weight:bold\">Siste versjon: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1834
msgid "Update available" msgid "Update available"
msgstr "Oppdatering tilgjengelig" msgstr "Oppdatering tilgjengelig"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1835
msgid "" msgid ""
"%s has been updated to version %s. See the <a href=\"http://calibre-" "%s has been updated to version %s. See the <a href=\"http://calibre-"
"ebook.com/whats-new\">new features</a>. Visit the download page?" "ebook.com/whats-new\">new features</a>. Visit the download page?"
@ -7215,7 +7235,7 @@ msgstr ""
"Maksimum antall treff som resultat per OPDS spørring. Dette affekterer " "Maksimum antall treff som resultat per OPDS spørring. Dette affekterer "
"Stanza, WordPlayer osv integrering." "Stanza, WordPlayer osv integrering."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:120 #: /home/kovid/work/calibre/src/calibre/library/cli.py:121
msgid "" msgid ""
"Path to the calibre library. Default is to use the path stored in the " "Path to the calibre library. Default is to use the path stored in the "
"settings." "settings."
@ -7223,7 +7243,7 @@ msgstr ""
"Sti til calibre-biblioteket. Standard er å benytte stien som er lagret under " "Sti til calibre-biblioteket. Standard er å benytte stien som er lagret under "
"innstillinger." "innstillinger."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:201 #: /home/kovid/work/calibre/src/calibre/library/cli.py:200
msgid "" msgid ""
"%prog list [options]\n" "%prog list [options]\n"
"\n" "\n"
@ -7232,7 +7252,7 @@ msgstr ""
"%programliste [brukervalg]\n" "%programliste [brukervalg]\n"
"Lister opp bøker som er tiljengelig i calibres database.\n" "Lister opp bøker som er tiljengelig i calibres database.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:209 #: /home/kovid/work/calibre/src/calibre/library/cli.py:208
msgid "" msgid ""
"The fields to display when listing books in the database. Should be a comma " "The fields to display when listing books in the database. Should be a comma "
"separated list of fields.\n" "separated list of fields.\n"
@ -7246,7 +7266,7 @@ msgstr ""
"Standard: %%default. Spesialfeltet \"alt\" kan benyttes for å velge alle " "Standard: %%default. Spesialfeltet \"alt\" kan benyttes for å velge alle "
"felt. Dette har kun effekt i tekst utdata format." "felt. Dette har kun effekt i tekst utdata format."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:211 #: /home/kovid/work/calibre/src/calibre/library/cli.py:210
msgid "" msgid ""
"The field by which to sort the results.\n" "The field by which to sort the results.\n"
"Available fields: %s\n" "Available fields: %s\n"
@ -7256,11 +7276,11 @@ msgstr ""
"Tilgjengelige fel: %s\n" "Tilgjengelige fel: %s\n"
"Standard: %%default" "Standard: %%default"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/cli.py:212
msgid "Sort results in ascending order" msgid "Sort results in ascending order"
msgstr "Sorter resultater i stigende rekkefølge" msgstr "Sorter resultater i stigende rekkefølge"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:215 #: /home/kovid/work/calibre/src/calibre/library/cli.py:214
msgid "" msgid ""
"Filter the results by the search query. For the format of the search query, " "Filter the results by the search query. For the format of the search query, "
"please see the search related documentation in the User Manual. Default is " "please see the search related documentation in the User Manual. Default is "
@ -7270,18 +7290,18 @@ msgstr ""
"vennligst se søksrelatert dokumentasjon i brukermanualen. Standard er satt " "vennligst se søksrelatert dokumentasjon i brukermanualen. Standard er satt "
"til: Ingen filtrering" "til: Ingen filtrering"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 #: /home/kovid/work/calibre/src/calibre/library/cli.py:216
msgid "" msgid ""
"The maximum width of a single line in the output. Defaults to detecting " "The maximum width of a single line in the output. Defaults to detecting "
"screen size." "screen size."
msgstr "" msgstr ""
"Maksimal bredde for enkeltlinje i utdata. Standard er: Følg skjermstørrelse." "Maksimal bredde for enkeltlinje i utdata. Standard er: Følg skjermstørrelse."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 #: /home/kovid/work/calibre/src/calibre/library/cli.py:217
msgid "The string used to separate fields. Default is a space." msgid "The string used to separate fields. Default is a space."
msgstr "Strengen som brukes for å dele felt. Standard er et mellomrom." msgstr "Strengen som brukes for å dele felt. Standard er et mellomrom."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:219 #: /home/kovid/work/calibre/src/calibre/library/cli.py:218
msgid "" msgid ""
"The prefix for all file paths. Default is the absolute path to the library " "The prefix for all file paths. Default is the absolute path to the library "
"folder." "folder."
@ -7289,22 +7309,22 @@ msgstr ""
"Benevnelse for alle filbaner. Standard er den absolutte banen til " "Benevnelse for alle filbaner. Standard er den absolutte banen til "
"bibliotekfolderen." "bibliotekfolderen."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:222 #: /home/kovid/work/calibre/src/calibre/library/cli.py:221
msgid "" msgid ""
"The format in which to output the data. Available choices: %s. Defaults is " "The format in which to output the data. Available choices: %s. Defaults is "
"text." "text."
msgstr "" msgstr ""
"Formatet som utdata skal ha. Valgmuligheter er: %s. Standard er tekst." "Formatet som utdata skal ha. Valgmuligheter er: %s. Standard er tekst."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:235 #: /home/kovid/work/calibre/src/calibre/library/cli.py:234
msgid "Invalid fields. Available fields:" msgid "Invalid fields. Available fields:"
msgstr "Ugyldige felt. Tilgjengelige felt:" msgstr "Ugyldige felt. Tilgjengelige felt:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:242 #: /home/kovid/work/calibre/src/calibre/library/cli.py:241
msgid "Invalid sort field. Available fields:" msgid "Invalid sort field. Available fields:"
msgstr "Ugyldig sorteringsfelt. Tilgjengelige felt:" msgstr "Ugyldig sorteringsfelt. Tilgjengelige felt:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:313 #: /home/kovid/work/calibre/src/calibre/library/cli.py:312
msgid "" msgid ""
"The following books were not added as they already exist in the database " "The following books were not added as they already exist in the database "
"(see --duplicates option):" "(see --duplicates option):"
@ -7312,7 +7332,7 @@ msgstr ""
"De følgende bøkene ble ikke lagt til, da de allerede finnes i databasen (se -" "De følgende bøkene ble ikke lagt til, da de allerede finnes i databasen (se -"
"-duplicates)" "-duplicates)"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:336 #: /home/kovid/work/calibre/src/calibre/library/cli.py:335
msgid "" msgid ""
"%prog add [options] file1 file2 file3 ...\n" "%prog add [options] file1 file2 file3 ...\n"
"\n" "\n"
@ -7326,7 +7346,7 @@ msgstr ""
"spesifisere mapper, se\n" "spesifisere mapper, se\n"
"de mapperelaterte valgene under.\n" "de mapperelaterte valgene under.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:345 #: /home/kovid/work/calibre/src/calibre/library/cli.py:344
msgid "" msgid ""
"Assume that each directory has only a single logical book and that all files " "Assume that each directory has only a single logical book and that all files "
"in it are different e-book formats of that book" "in it are different e-book formats of that book"
@ -7334,11 +7354,11 @@ msgstr ""
"Forutsett at hver mappe har kun en enkelt logisk bok og at alle filer i " "Forutsett at hver mappe har kun en enkelt logisk bok og at alle filer i "
"denne mappen er forskjellige e-bokformater av den boken." "denne mappen er forskjellige e-bokformater av den boken."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:347 #: /home/kovid/work/calibre/src/calibre/library/cli.py:346
msgid "Process directories recursively" msgid "Process directories recursively"
msgstr "Prosesser mappene gjentagende" msgstr "Prosesser mappene gjentagende"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:349 #: /home/kovid/work/calibre/src/calibre/library/cli.py:348
msgid "" msgid ""
"Add books to database even if they already exist. Comparison is done based " "Add books to database even if they already exist. Comparison is done based "
"on book titles." "on book titles."
@ -7346,11 +7366,11 @@ msgstr ""
"Legg bøker til databasen selv om de allerede finnes. Sammenligning gjøres " "Legg bøker til databasen selv om de allerede finnes. Sammenligning gjøres "
"basert på boktitler." "basert på boktitler."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:359 #: /home/kovid/work/calibre/src/calibre/library/cli.py:358
msgid "You must specify at least one file to add" msgid "You must specify at least one file to add"
msgstr "Du må spesifisere minst en fil som skal legges til" msgstr "Du må spesifisere minst en fil som skal legges til"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:375 #: /home/kovid/work/calibre/src/calibre/library/cli.py:374
msgid "" msgid ""
"%prog remove ids\n" "%prog remove ids\n"
"\n" "\n"
@ -7364,11 +7384,11 @@ msgstr ""
"liste over id-nummer (du kan få tak i id-nummerene ved å benytte list " "liste over id-nummer (du kan få tak i id-nummerene ved å benytte list "
"kommandoen).\n" "kommandoen).\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:390 #: /home/kovid/work/calibre/src/calibre/library/cli.py:389
msgid "You must specify at least one book to remove" msgid "You must specify at least one book to remove"
msgstr "Du må spesifisere minst en bok som skal fjernes" msgstr "Du må spesifisere minst en bok som skal fjernes"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:409 #: /home/kovid/work/calibre/src/calibre/library/cli.py:408
msgid "" msgid ""
"%prog add_format [options] id ebook_file\n" "%prog add_format [options] id ebook_file\n"
"\n" "\n"
@ -7377,15 +7397,15 @@ msgid ""
"already exists, it is replaced.\n" "already exists, it is replaced.\n"
msgstr "%prog add_format[valgmuligheter] id ebok_fil\n" msgstr "%prog add_format[valgmuligheter] id ebok_fil\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:424 #: /home/kovid/work/calibre/src/calibre/library/cli.py:423
msgid "You must specify an id and an ebook file" msgid "You must specify an id and an ebook file"
msgstr "Du må spesifisere en id og en e-bokfil" msgstr "Du må spesifisere en id og en e-bokfil"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:429 #: /home/kovid/work/calibre/src/calibre/library/cli.py:428
msgid "ebook file must have an extension" msgid "ebook file must have an extension"
msgstr "e-bokfilen må ha en filforlengelse" msgstr "e-bokfilen må ha en filforlengelse"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:437 #: /home/kovid/work/calibre/src/calibre/library/cli.py:436
msgid "" msgid ""
"\n" "\n"
"%prog remove_format [options] id fmt\n" "%prog remove_format [options] id fmt\n"
@ -7402,11 +7422,11 @@ msgstr ""
"eller TXT eller EPUB. Dersom den logiske boken ikke har en fmt tilgjengelig, " "eller TXT eller EPUB. Dersom den logiske boken ikke har en fmt tilgjengelig, "
"unnlat å gjøre noe som helst.\n" "unnlat å gjøre noe som helst.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:454 #: /home/kovid/work/calibre/src/calibre/library/cli.py:453
msgid "You must specify an id and a format" msgid "You must specify an id and a format"
msgstr "Du må spesifisere en id og et format" msgstr "Du må spesifisere en id og et format"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:472 #: /home/kovid/work/calibre/src/calibre/library/cli.py:471
msgid "" msgid ""
"\n" "\n"
"%prog show_metadata [options] id\n" "%prog show_metadata [options] id\n"
@ -7421,15 +7441,15 @@ msgstr ""
"Vis metadata lagret i calibres database for bøker identifisert med id.\n" "Vis metadata lagret i calibres database for bøker identifisert med id.\n"
"id er et id-nummer fra list kommandoen.\n" "id er et id-nummer fra list kommandoen.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:480 #: /home/kovid/work/calibre/src/calibre/library/cli.py:479
msgid "Print metadata in OPF form (XML)" msgid "Print metadata in OPF form (XML)"
msgstr "Skriv ut metadata i OPF format (XML)" msgstr "Skriv ut metadata i OPF format (XML)"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:489 #: /home/kovid/work/calibre/src/calibre/library/cli.py:488
msgid "You must specify an id" msgid "You must specify an id"
msgstr "Du må spesifisere en ID" msgstr "Du må spesifisere en ID"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:502 #: /home/kovid/work/calibre/src/calibre/library/cli.py:501
msgid "" msgid ""
"\n" "\n"
"%prog set_metadata [options] id /path/to/metadata.opf\n" "%prog set_metadata [options] id /path/to/metadata.opf\n"
@ -7450,11 +7470,11 @@ msgstr ""
"\n" "\n"
"vis_metadata kommandoen.\n" "vis_metadata kommandoen.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:518 #: /home/kovid/work/calibre/src/calibre/library/cli.py:517
msgid "You must specify an id and a metadata file" msgid "You must specify an id and a metadata file"
msgstr "Du må spesifisere en ID og metadatafil" msgstr "Du må spesifisere en ID og metadatafil"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:538 #: /home/kovid/work/calibre/src/calibre/library/cli.py:537
msgid "" msgid ""
"%prog export [options] ids\n" "%prog export [options] ids\n"
"\n" "\n"
@ -7472,27 +7492,27 @@ msgstr ""
"metadata (i\n" "metadata (i\n"
"en opf fil). Du kan få tak i ID-nummerene ved å benytte list kommandoen.\n" "en opf fil). Du kan få tak i ID-nummerene ved å benytte list kommandoen.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:546 #: /home/kovid/work/calibre/src/calibre/library/cli.py:545
msgid "Export all books in database, ignoring the list of ids." msgid "Export all books in database, ignoring the list of ids."
msgstr "Eksporter alle bøker i databasen, ignorer ID listen." msgstr "Eksporter alle bøker i databasen, ignorer ID listen."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:548 #: /home/kovid/work/calibre/src/calibre/library/cli.py:547
msgid "Export books to the specified directory. Default is" msgid "Export books to the specified directory. Default is"
msgstr "Eksporter bøker til den spesifiserte mappen. Standard er" msgstr "Eksporter bøker til den spesifiserte mappen. Standard er"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:550 #: /home/kovid/work/calibre/src/calibre/library/cli.py:549
msgid "Export all books into a single directory" msgid "Export all books into a single directory"
msgstr "Eksporter alle bøker inn til en enkelt mappe" msgstr "Eksporter alle bøker inn til en enkelt mappe"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:557 #: /home/kovid/work/calibre/src/calibre/library/cli.py:556
msgid "Specifying this switch will turn this behavior off." msgid "Specifying this switch will turn this behavior off."
msgstr "Ved å spesifisere denne bryteren vil det slå denne atferden av" msgstr "Ved å spesifisere denne bryteren vil det slå denne atferden av"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:580 #: /home/kovid/work/calibre/src/calibre/library/cli.py:579
msgid "You must specify some ids or the %s option" msgid "You must specify some ids or the %s option"
msgstr "Du må spesifisere noen ID'er eller %s valget" msgstr "Du må spesifisere noen ID'er eller %s valget"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:592 #: /home/kovid/work/calibre/src/calibre/library/cli.py:591
msgid "" msgid ""
"%%prog command [options] [arguments]\n" "%%prog command [options] [arguments]\n"
"\n" "\n"

File diff suppressed because it is too large Load Diff

View File

@ -6,14 +6,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: calibre 0.4.55\n" "Project-Id-Version: calibre 0.4.55\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-12-02 22:46+0000\n" "POT-Creation-Date: 2009-12-04 21:05+0000\n"
"PO-Revision-Date: 2009-12-03 03:28+0000\n" "PO-Revision-Date: 2009-12-04 20:31+0000\n"
"Last-Translator: Nkolay Parukhin <parukhin@gmail.com>\n" "Last-Translator: Nkolay Parukhin <parukhin@gmail.com>\n"
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n" "Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-03 04:39+0000\n" "X-Launchpad-Export-Date: 2009-12-05 04:37+0000\n"
"X-Generator: Launchpad (build Unknown)\n" "X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Country: RUSSIAN FEDERATION\n"
"X-Poedit-Language: Russian\n" "X-Poedit-Language: Russian\n"
@ -45,8 +45,8 @@ msgstr "Ничего не делает"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:45 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:60
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62
@ -59,8 +59,8 @@ msgstr "Ничего не делает"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /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/pdf.py:28
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:18 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:40 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44
@ -72,9 +72,9 @@ msgstr "Ничего не делает"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /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/odt/input.py:51
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:893 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:895
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:900
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:958 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:960
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105
@ -124,7 +124,7 @@ msgstr "Ничего не делает"
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:877
#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211
#: /home/kovid/work/calibre/src/calibre/library/cli.py:282 #: /home/kovid/work/calibre/src/calibre/library/cli.py:281
#: /home/kovid/work/calibre/src/calibre/library/database.py:913 #: /home/kovid/work/calibre/src/calibre/library/database.py:913
#: /home/kovid/work/calibre/src/calibre/library/database2.py:702 #: /home/kovid/work/calibre/src/calibre/library/database2.py:702
#: /home/kovid/work/calibre/src/calibre/library/database2.py:714 #: /home/kovid/work/calibre/src/calibre/library/database2.py:714
@ -161,7 +161,7 @@ msgstr "Чтение метаданных"
msgid "Metadata writer" msgid "Metadata writer"
msgstr "Запись метаданных" msgstr "Запись метаданных"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:13 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14
msgid "" msgid ""
"Follow all local links in an HTML file and create a ZIP file containing all " "Follow all local links in an HTML file and create a ZIP file containing all "
"linked files. This plugin is run every time you add an HTML file to the " "linked files. This plugin is run every time you add an HTML file to the "
@ -171,7 +171,7 @@ msgstr ""
"содержащий все связанные файлы. Этот модуль запускается каждый раз, когда вы " "содержащий все связанные файлы. Этот модуль запускается каждый раз, когда вы "
"добавляете HTML файл в библиотеку." "добавляете HTML файл в библиотеку."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:48 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49
msgid "" msgid ""
"Character encoding for the input HTML files. Common choices include: cp1252, " "Character encoding for the input HTML files. Common choices include: cp1252, "
"latin1, iso-8859-1 and utf-8." "latin1, iso-8859-1 and utf-8."
@ -180,46 +180,58 @@ msgstr ""
"iso-8859-1 и utf-8." "iso-8859-1 и utf-8."
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56
msgid ""
" Create a PMLZ archive containing the PML file and all images "
"in the directory pmlname_img or images file containing all linked "
"files. This plugin is run every time you add an PML file to the "
"library. "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87
msgid "Character encoding for the input PML files. Should ways be: cp1252."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94
msgid "Extract cover from comic files" msgid "Extract cover from comic files"
msgstr "Извлечь обложку из файлов комикса" msgstr "Извлечь обложку из файлов комикса"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:77 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:115
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:89 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:127
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:99 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:137
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:109 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:147
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:158
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:168
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:178
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:150 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:188
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:160 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:198
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:170 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:208
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:219
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:192 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:230
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:242
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:225 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:263
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:236 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:274
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:284
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:294
msgid "Read metadata from %s files" msgid "Read metadata from %s files"
msgstr "Читать метаданные из %s файлов" msgstr "Читать метаданные из %s файлов"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:215 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:253
msgid "Read metadata from ebooks in RAR archives" msgid "Read metadata from ebooks in RAR archives"
msgstr "Читать метаданные из книг в архивах RAR" msgstr "Читать метаданные из книг в архивах RAR"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:305
msgid "Read metadata from ebooks in ZIP archives" msgid "Read metadata from ebooks in ZIP archives"
msgstr "Читать метаданные из книг в архивах ZIP" msgstr "Читать метаданные из книг в архивах ZIP"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:278 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:316
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:288 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:326
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:336
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:358
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:331 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:369
msgid "Set metadata in %s files" msgid "Set metadata in %s files"
msgstr "Внести метаданные в файлы %s" msgstr "Внести метаданные в файлы %s"
#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:347
msgid "Set metadata from %s files" msgid "Set metadata from %s files"
msgstr "Внести метаданные из файлов %s" msgstr "Внести метаданные из файлов %s"
@ -1326,7 +1338,7 @@ msgstr ""
"отключает генерацию такой обложки." "отключает генерацию такой обложки."
#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:126
#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113 #: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:114
#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77
msgid "Table of Contents:" msgid "Table of Contents:"
@ -1932,7 +1944,7 @@ msgstr ""
"LibraryThing.com\n" "LibraryThing.com\n"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323
msgid "Cover" msgid "Cover"
msgstr "Обложка" msgstr "Обложка"
@ -1963,70 +1975,70 @@ msgstr ""
msgid "All articles" msgid "All articles"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324
msgid "Title Page" msgid "Title Page"
msgstr "Титульная страница" msgstr "Титульная страница"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168
msgid "Table of Contents" msgid "Table of Contents"
msgstr "Содержание" msgstr "Содержание"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326
msgid "Index" msgid "Index"
msgstr "Индекс" msgstr "Индекс"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327
msgid "Glossary" msgid "Glossary"
msgstr "Глоссарий" msgstr "Глоссарий"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328
msgid "Acknowledgements" msgid "Acknowledgements"
msgstr "Подтверждения" msgstr "Подтверждения"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329
msgid "Bibliography" msgid "Bibliography"
msgstr "Библиография" msgstr "Библиография"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330
msgid "Colophon" msgid "Colophon"
msgstr "Колофон" msgstr "Колофон"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331
msgid "Copyright" msgid "Copyright"
msgstr "Копирайт" msgstr "Копирайт"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332
msgid "Dedication" msgid "Dedication"
msgstr "Посвящение" msgstr "Посвящение"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333
msgid "Epigraph" msgid "Epigraph"
msgstr "Эпиграф" msgstr "Эпиграф"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334
msgid "Foreword" msgid "Foreword"
msgstr "Предисловие" msgstr "Предисловие"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335
msgid "List of Illustrations" msgid "List of Illustrations"
msgstr "Список иллюстраций" msgstr "Список иллюстраций"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336
msgid "List of Tables" msgid "List of Tables"
msgstr "Оглавление" msgstr "Оглавление"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337
msgid "Notes" msgid "Notes"
msgstr "Заметки" msgstr "Заметки"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338
msgid "Preface" msgid "Preface"
msgstr "Введение" msgstr "Введение"
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339
msgid "Main Text" msgid "Main Text"
msgstr "Основной текст" msgstr "Основной текст"
@ -2089,11 +2101,11 @@ msgid ""
"Generate an Adobe \"page-map\" file if pagination information is available." "Generate an Adobe \"page-map\" file if pagination information is available."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126
msgid "Footnotes" msgid "Footnotes"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135
msgid "Sidebar" msgid "Sidebar"
msgstr "" msgstr ""
@ -3258,7 +3270,7 @@ msgid "RB Output"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1416 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1420
msgid "Choose the format to view" msgid "Choose the format to view"
msgstr "Выберете для просмотра формат" msgstr "Выберете для просмотра формат"
@ -3882,7 +3894,7 @@ msgstr "новый email адрес"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1094
#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53
msgid "Error" msgid "Error"
msgstr "Ошибка" msgstr "Ошибка"
@ -4578,7 +4590,7 @@ msgid "Choose formats for "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:921 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925
msgid "Books" msgid "Books"
msgstr "Книги" msgstr "Книги"
@ -5480,52 +5492,52 @@ msgstr "Открыть книгу"
msgid "Configure" msgid "Configure"
msgstr "Настроить" msgstr "Настроить"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:24
msgid "Use the library located at the specified path." msgid "Use the library located at the specified path."
msgstr "Использовать библиотеку по указанному пути." msgstr "Использовать библиотеку по указанному пути."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:26
msgid "Start minimized to system tray." msgid "Start minimized to system tray."
msgstr "Старт минимизированным в трей" msgstr "Старт минимизированным в трей"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:28
msgid "Log debugging information to console" msgid "Log debugging information to console"
msgstr "Выводить отладочную информацию на консоль" msgstr "Выводить отладочную информацию на консоль"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:30
msgid "Do not check for updates" msgid "Do not check for updates"
msgstr "Не проверять наличие обновлений" msgstr "Не проверять наличие обновлений"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:80
msgid "If you are sure it is not running" msgid "If you are sure it is not running"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:82
msgid "Cannot Start " msgid "Cannot Start "
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:83
msgid "%s is already running." msgid "%s is already running."
msgstr "%s уже запущен." msgstr "%s уже запущен."
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:86
msgid "may be running in the system tray, in the" msgid "may be running in the system tray, in the"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:88
msgid "upper right region of the screen." msgid "upper right region of the screen."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:90
msgid "lower right region of the screen." msgid "lower right region of the screen."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:93
msgid "try rebooting your computer." msgid "try rebooting your computer."
msgstr "попробуйте перезагрузить ваш компьютер" msgstr "попробуйте перезагрузить ваш компьютер"
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:95
#: /home/kovid/work/calibre/src/calibre/gui2/main.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:107
msgid "try deleting the file" msgid "try deleting the file"
msgstr "попробуйте удалить файл" msgstr "попробуйте удалить файл"
@ -5857,7 +5869,7 @@ msgid "Save to disk in a single directory"
msgstr "Сохранить на диск в одну директорию" msgstr "Сохранить на диск в одну директорию"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1518 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522
msgid "Save only %s format to disk" msgid "Save only %s format to disk"
msgstr "Сохранять на диск только формат %s" msgstr "Сохранять на диск только формат %s"
@ -5892,7 +5904,7 @@ msgid "Calibre Library"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1661 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1665
msgid "Choose a location for your ebook library." msgid "Choose a location for your ebook library."
msgstr "Выбрите расположение Вашей библиотеки электронных книг." msgstr "Выбрите расположение Вашей библиотеки электронных книг."
@ -5946,56 +5958,64 @@ msgstr ""
" </ol>\n" " </ol>\n"
" " " "
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:913 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:956 msgid "How many empty books?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:873
msgid "How many empty boks should be added?"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:917
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:960
msgid "Uploading books to device." msgid "Uploading books to device."
msgstr "Загрузка книг в устройство." msgstr "Загрузка книг в устройство."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:922 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926
msgid "EPUB Books" msgid "EPUB Books"
msgstr "Книги EPUB" msgstr "Книги EPUB"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:923 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927
msgid "LRF Books" msgid "LRF Books"
msgstr "Книги LRF" msgstr "Книги LRF"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:924 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928
msgid "HTML Books" msgid "HTML Books"
msgstr "Книги HTML" msgstr "Книги HTML"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929
msgid "LIT Books" msgid "LIT Books"
msgstr "Книги LIT" msgstr "Книги LIT"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930
msgid "MOBI Books" msgid "MOBI Books"
msgstr "Книги MOBI" msgstr "Книги MOBI"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:931
msgid "Text books" msgid "Text books"
msgstr "Текстовые книги" msgstr "Текстовые книги"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:932
msgid "PDF Books" msgid "PDF Books"
msgstr "Книги PDF" msgstr "Книги PDF"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933
msgid "Comics" msgid "Comics"
msgstr "Комиксы" msgstr "Комиксы"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934
msgid "Archives" msgid "Archives"
msgstr "Архивы" msgstr "Архивы"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:965 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:969
msgid "Failed to read metadata" msgid "Failed to read metadata"
msgstr "Сбой чтения метаданных" msgstr "Сбой чтения метаданных"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:970
msgid "Failed to read metadata from the following" msgid "Failed to read metadata from the following"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989
msgid "" msgid ""
"The selected books will be <b>permanently deleted</b> and the files removed " "The selected books will be <b>permanently deleted</b> and the files removed "
"from your computer. Are you sure?" "from your computer. Are you sure?"
@ -6003,115 +6023,115 @@ msgstr ""
"Выбранные книги будут <b>навсегда удалены</b> вместе с файлами с Вашего " "Выбранные книги будут <b>навсегда удалены</b> вместе с файлами с Вашего "
"компьютера. Вы уверены?" "компьютера. Вы уверены?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016
msgid "Deleting books from device." msgid "Deleting books from device."
msgstr "Удаляются книги из устройства." msgstr "Удаляются книги из устройства."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1047
msgid "Cannot download metadata" msgid "Cannot download metadata"
msgstr "Не удалось загрузить метаданные" msgstr "Не удалось загрузить метаданные"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1044 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1048
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1101 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1134 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1138
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1163
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1271 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1275
msgid "No books selected" msgid "No books selected"
msgstr "Нет Выбранных книг" msgstr "Нет Выбранных книг"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063
msgid "social metadata" msgid "social metadata"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "covers" msgid "covers"
msgstr "обложек" msgstr "обложек"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1061 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065
msgid "metadata" msgid "metadata"
msgstr "метаданных" msgstr "метаданных"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067
msgid "Downloading %s for %d book(s)" msgid "Downloading %s for %d book(s)"
msgstr "Загрузка %s для %d книг(и)" msgstr "Загрузка %s для %d книг(и)"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089
msgid "Failed to download some metadata" msgid "Failed to download some metadata"
msgstr "Не удалось загрузить некоторые метаданные" msgstr "Не удалось загрузить некоторые метаданные"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1086 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090
msgid "Failed to download metadata for the following:" msgid "Failed to download metadata for the following:"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1093
msgid "Failed to download metadata:" msgid "Failed to download metadata:"
msgstr "Не удалось загрузить метаданные:" msgstr "Не удалось загрузить метаданные:"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1100 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1104
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1133 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1137
msgid "Cannot edit metadata" msgid "Cannot edit metadata"
msgstr "Невозможно редактировать метаданные" msgstr "Невозможно редактировать метаданные"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1162
msgid "Cannot save to disk" msgid "Cannot save to disk"
msgstr "Невозможно сохранить на диск" msgstr "Невозможно сохранить на диск"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1161 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1165
msgid "Choose destination directory" msgid "Choose destination directory"
msgstr "Выберете директорию получателя" msgstr "Выберете директорию получателя"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1188 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192
msgid "Error while saving" msgid "Error while saving"
msgstr "Ошибка при сохранении" msgstr "Ошибка при сохранении"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1189 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193
msgid "There was an error while saving." msgid "There was an error while saving."
msgstr "Произошла ошибка при сохранении." msgstr "Произошла ошибка при сохранении."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1196 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201
msgid "Could not save some books" msgid "Could not save some books"
msgstr "Не удалось сохранить некоторые книги" msgstr "Не удалось сохранить некоторые книги"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1198 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202
msgid "Click the show details button to see which ones." msgid "Click the show details button to see which ones."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221
msgid "Fetching news from " msgid "Fetching news from "
msgstr "Вызвать новость из " msgstr "Вызвать новость из "
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1230 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234
msgid " fetched." msgid " fetched."
msgstr " загружено." msgstr " загружено."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1270 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1274
msgid "Cannot convert" msgid "Cannot convert"
msgstr "Не преобразуется" msgstr "Не преобразуется"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1299 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1303
msgid "Starting conversion of %d book(s)" msgid "Starting conversion of %d book(s)"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1429 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433
msgid "No book selected" msgid "No book selected"
msgstr "Нет выбранных книг" msgstr "Нет выбранных книг"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1460 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1464
msgid "Cannot view" msgid "Cannot view"
msgstr "Невозможно просмотреть" msgstr "Невозможно просмотреть"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1432
msgid "Cannot open folder" msgid "Cannot open folder"
msgstr "Не могу открыть папку" msgstr "Не могу открыть папку"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1445 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1449
msgid "Multiple Books Selected" msgid "Multiple Books Selected"
msgstr "Выбраны несколько книг" msgstr "Выбраны несколько книг"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1446 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1450
msgid "" msgid ""
"You are attempting to open %d books. Opening too many books at once can be " "You are attempting to open %d books. Opening too many books at once can be "
"slow and have a negative effect on the responsiveness of your computer. Once " "slow and have a negative effect on the responsiveness of your computer. Once "
@ -6119,31 +6139,31 @@ msgid ""
"continue?" "continue?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1461 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1465
msgid "%s has no available formats." msgid "%s has no available formats."
msgstr "%s неизвестный формат." msgstr "%s неизвестный формат."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1502 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1506
msgid "Cannot configure" msgid "Cannot configure"
msgstr "Невозможно настроить" msgstr "Невозможно настроить"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1503 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507
msgid "Cannot configure while there are running jobs." msgid "Cannot configure while there are running jobs."
msgstr "Пока запущено задание, не могу настроить" msgstr "Пока запущено задание, не могу настроить"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1546 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1550
msgid "No detailed info available" msgid "No detailed info available"
msgstr "Нет доступной подробной информации" msgstr "Нет доступной подробной информации"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1547 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551
msgid "No detailed information is available for books on the device." msgid "No detailed information is available for books on the device."
msgstr "Не доступна подробная информация книг на устройстве" msgstr "Не доступна подробная информация книг на устройстве"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1599 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1603
msgid "Error talking to device" msgid "Error talking to device"
msgstr "Ошибка согласования устройства" msgstr "Ошибка согласования устройства"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1600 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1604
msgid "" msgid ""
"There was a temporary error talking to the device. Please unplug and " "There was a temporary error talking to the device. Please unplug and "
"reconnect the device and or reboot." "reconnect the device and or reboot."
@ -6151,30 +6171,30 @@ msgstr ""
"Была временная ошибка общения с устройством. Пожалуста, переподключите " "Была временная ошибка общения с устройством. Пожалуста, переподключите "
"устройство или перегрузите его." "устройство или перегрузите его."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1623 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1627
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1641 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1645
msgid "Conversion Error" msgid "Conversion Error"
msgstr "Ошибка преобразования" msgstr "Ошибка преобразования"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1624 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1628
msgid "" msgid ""
"<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must "
"first remove the DRM using third party tools." "first remove the DRM using third party tools."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1642 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1646
msgid "<b>Failed</b>" msgid "<b>Failed</b>"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1670 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674
msgid "Invalid library location" msgid "Invalid library location"
msgstr "Неверное расположение библиотеки" msgstr "Неверное расположение библиотеки"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1675
msgid "Could not access %s. Using %s as the library." msgid "Could not access %s. Using %s as the library."
msgstr "Нет доступа к %s. Использование %s в качестве библиотеки." msgstr "Нет доступа к %s. Использование %s в качестве библиотеки."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1719 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1723
msgid "" msgid ""
"is the result of the efforts of many volunteers from all over the world. If " "is the result of the efforts of many volunteers from all over the world. If "
"you find it useful, please consider donating to support its development." "you find it useful, please consider donating to support its development."
@ -6182,22 +6202,22 @@ msgstr ""
"является результато труда многих добровольцев по всему миру. Если Вы сочли " "является результато труда многих добровольцев по всему миру. Если Вы сочли "
"его полезным, будьте добры пожертвовать на его развитие." "его полезным, будьте добры пожертвовать на его развитие."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1748
msgid "There are active jobs. Are you sure you want to quit?" msgid "There are active jobs. Are you sure you want to quit?"
msgstr "Имеется активное задание. Вы все равно хотите выйти?" msgstr "Имеется активное задание. Вы все равно хотите выйти?"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751
msgid "" msgid ""
" is communicating with the device!<br>\n" " is communicating with the device!<br>\n"
" Quitting may cause corruption on the device.<br>\n" " Quitting may cause corruption on the device.<br>\n"
" Are you sure you want to quit?" " Are you sure you want to quit?"
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1751 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1755
msgid "WARNING: Active jobs" msgid "WARNING: Active jobs"
msgstr "ПРЕДУПРЕЖДЕНИЕ: Активные задания" msgstr "ПРЕДУПРЕЖДЕНИЕ: Активные задания"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1803 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1807
msgid "" msgid ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the " "will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray." "context menu of the system tray."
@ -6205,7 +6225,7 @@ msgstr ""
"продолжит работать в трее. Для завершения работы выберите<b>Quit</b> в " "продолжит работать в трее. Для завершения работы выберите<b>Quit</b> в "
"контекстном меню трея." "контекстном меню трея."
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1822 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1826
msgid "" msgid ""
"<span style=\"color:red; font-weight:bold\">Latest version: <a " "<span style=\"color:red; font-weight:bold\">Latest version: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
@ -6213,11 +6233,11 @@ msgstr ""
"<span style=\"color:red; font-weight:bold\">Последняя версия: <a " "<span style=\"color:red; font-weight:bold\">Последняя версия: <a "
"href=\"%s\">%s</a></span>" "href=\"%s\">%s</a></span>"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1834
msgid "Update available" msgid "Update available"
msgstr "Доступно обновление" msgstr "Доступно обновление"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1835
msgid "" msgid ""
"%s has been updated to version %s. See the <a href=\"http://calibre-" "%s has been updated to version %s. See the <a href=\"http://calibre-"
"ebook.com/whats-new\">new features</a>. Visit the download page?" "ebook.com/whats-new\">new features</a>. Visit the download page?"
@ -6940,14 +6960,14 @@ msgid ""
"WordPlayer, etc. integration." "WordPlayer, etc. integration."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:120 #: /home/kovid/work/calibre/src/calibre/library/cli.py:121
msgid "" msgid ""
"Path to the calibre library. Default is to use the path stored in the " "Path to the calibre library. Default is to use the path stored in the "
"settings." "settings."
msgstr "" msgstr ""
"Путь к библиотеки Calibre. По умолчаниюиспользовать путь в установках." "Путь к библиотеки Calibre. По умолчаниюиспользовать путь в установках."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:201 #: /home/kovid/work/calibre/src/calibre/library/cli.py:200
msgid "" msgid ""
"%prog list [options]\n" "%prog list [options]\n"
"\n" "\n"
@ -6957,7 +6977,7 @@ msgstr ""
"\n" "\n"
"Список книг в базе данных Calibre.\n" "Список книг в базе данных Calibre.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:209 #: /home/kovid/work/calibre/src/calibre/library/cli.py:208
msgid "" msgid ""
"The fields to display when listing books in the database. Should be a comma " "The fields to display when listing books in the database. Should be a comma "
"separated list of fields.\n" "separated list of fields.\n"
@ -6971,7 +6991,7 @@ msgstr ""
"По умолчанию: %%default. Спецполе \"all\" можно использовать для выбора всех " "По умолчанию: %%default. Спецполе \"all\" можно использовать для выбора всех "
"полей. Эффективно только для текстового формата." "полей. Эффективно только для текстового формата."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:211 #: /home/kovid/work/calibre/src/calibre/library/cli.py:210
msgid "" msgid ""
"The field by which to sort the results.\n" "The field by which to sort the results.\n"
"Available fields: %s\n" "Available fields: %s\n"
@ -6981,11 +7001,11 @@ msgstr ""
"Доступные поля: %s\n" "Доступные поля: %s\n"
"По умолчанию: %%default" "По умолчанию: %%default"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/cli.py:212
msgid "Sort results in ascending order" msgid "Sort results in ascending order"
msgstr "Сортировать по убыванию" msgstr "Сортировать по убыванию"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:215 #: /home/kovid/work/calibre/src/calibre/library/cli.py:214
msgid "" msgid ""
"Filter the results by the search query. For the format of the search query, " "Filter the results by the search query. For the format of the search query, "
"please see the search related documentation in the User Manual. Default is " "please see the search related documentation in the User Manual. Default is "
@ -6995,17 +7015,17 @@ msgstr ""
"соответствующей документации в руководстве пользователя. По умолчанию не " "соответствующей документации в руководстве пользователя. По умолчанию не "
"фильтровать." "фильтровать."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 #: /home/kovid/work/calibre/src/calibre/library/cli.py:216
msgid "" msgid ""
"The maximum width of a single line in the output. Defaults to detecting " "The maximum width of a single line in the output. Defaults to detecting "
"screen size." "screen size."
msgstr "Максимальная ширина вывода. По умолчанию размер экрана." msgstr "Максимальная ширина вывода. По умолчанию размер экрана."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 #: /home/kovid/work/calibre/src/calibre/library/cli.py:217
msgid "The string used to separate fields. Default is a space." msgid "The string used to separate fields. Default is a space."
msgstr "Разделитель полей. По умолчанию пробел." msgstr "Разделитель полей. По умолчанию пробел."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:219 #: /home/kovid/work/calibre/src/calibre/library/cli.py:218
msgid "" msgid ""
"The prefix for all file paths. Default is the absolute path to the library " "The prefix for all file paths. Default is the absolute path to the library "
"folder." "folder."
@ -7013,21 +7033,21 @@ msgstr ""
"Префикс для всех путей. По умолчанию это абсолютный путь к директории " "Префикс для всех путей. По умолчанию это абсолютный путь к директории "
"библиотеки." "библиотеки."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:222 #: /home/kovid/work/calibre/src/calibre/library/cli.py:221
msgid "" msgid ""
"The format in which to output the data. Available choices: %s. Defaults is " "The format in which to output the data. Available choices: %s. Defaults is "
"text." "text."
msgstr "Формат вывода данных. Возможный выбор: %s. По умолчанию text." msgstr "Формат вывода данных. Возможный выбор: %s. По умолчанию text."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:235 #: /home/kovid/work/calibre/src/calibre/library/cli.py:234
msgid "Invalid fields. Available fields:" msgid "Invalid fields. Available fields:"
msgstr "Неправильное поле. Доступное поле:" msgstr "Неправильное поле. Доступное поле:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:242 #: /home/kovid/work/calibre/src/calibre/library/cli.py:241
msgid "Invalid sort field. Available fields:" msgid "Invalid sort field. Available fields:"
msgstr "Неправильное поле сортировки. Доступные поля:" msgstr "Неправильное поле сортировки. Доступные поля:"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:313 #: /home/kovid/work/calibre/src/calibre/library/cli.py:312
msgid "" msgid ""
"The following books were not added as they already exist in the database " "The following books were not added as they already exist in the database "
"(see --duplicates option):" "(see --duplicates option):"
@ -7035,7 +7055,7 @@ msgstr ""
"Следующие книги не добавлены, поскольку они уже есть в базе данных (см. " "Следующие книги не добавлены, поскольку они уже есть в базе данных (см. "
"опцию --duplicates):" "опцию --duplicates):"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:336 #: /home/kovid/work/calibre/src/calibre/library/cli.py:335
msgid "" msgid ""
"%prog add [options] file1 file2 file3 ...\n" "%prog add [options] file1 file2 file3 ...\n"
"\n" "\n"
@ -7049,7 +7069,7 @@ msgstr ""
"директории, смотри\n" "директории, смотри\n"
"опции директории ниже.\n" "опции директории ниже.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:345 #: /home/kovid/work/calibre/src/calibre/library/cli.py:344
msgid "" msgid ""
"Assume that each directory has only a single logical book and that all files " "Assume that each directory has only a single logical book and that all files "
"in it are different e-book formats of that book" "in it are different e-book formats of that book"
@ -7057,11 +7077,11 @@ msgstr ""
"Считать, что в каждой директории есть только одна логическая книга в " "Считать, что в каждой директории есть только одна логическая книга в "
"различных e-book форматах" "различных e-book форматах"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:347 #: /home/kovid/work/calibre/src/calibre/library/cli.py:346
msgid "Process directories recursively" msgid "Process directories recursively"
msgstr "Обрабатывать рекурсивно" msgstr "Обрабатывать рекурсивно"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:349 #: /home/kovid/work/calibre/src/calibre/library/cli.py:348
msgid "" msgid ""
"Add books to database even if they already exist. Comparison is done based " "Add books to database even if they already exist. Comparison is done based "
"on book titles." "on book titles."
@ -7069,11 +7089,11 @@ msgstr ""
"Добавлять книгу в базу данных даже если она уже есть. Сравнение основано на " "Добавлять книгу в базу данных даже если она уже есть. Сравнение основано на "
"названиях книг." "названиях книг."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:359 #: /home/kovid/work/calibre/src/calibre/library/cli.py:358
msgid "You must specify at least one file to add" msgid "You must specify at least one file to add"
msgstr "Вы должны указать не менее одного файла для добавления" msgstr "Вы должны указать не менее одного файла для добавления"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:375 #: /home/kovid/work/calibre/src/calibre/library/cli.py:374
msgid "" msgid ""
"%prog remove ids\n" "%prog remove ids\n"
"\n" "\n"
@ -7087,11 +7107,11 @@ msgstr ""
"запятой номеров id (id номера можно получить командой list ). Например, " "запятой номеров id (id номера можно получить командой list ). Например, "
"23,34,57-85\n" "23,34,57-85\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:390 #: /home/kovid/work/calibre/src/calibre/library/cli.py:389
msgid "You must specify at least one book to remove" msgid "You must specify at least one book to remove"
msgstr "Вы должны указать не менее одной книги для удаления" msgstr "Вы должны указать не менее одной книги для удаления"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:409 #: /home/kovid/work/calibre/src/calibre/library/cli.py:408
msgid "" msgid ""
"%prog add_format [options] id ebook_file\n" "%prog add_format [options] id ebook_file\n"
"\n" "\n"
@ -7105,15 +7125,15 @@ msgstr ""
"ebook идентифецирована по id. id можно получить командой list. Если книга в " "ebook идентифецирована по id. id можно получить командой list. Если книга в "
"данном формате уже есть, она будет заменена.\n" "данном формате уже есть, она будет заменена.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:424 #: /home/kovid/work/calibre/src/calibre/library/cli.py:423
msgid "You must specify an id and an ebook file" msgid "You must specify an id and an ebook file"
msgstr "Вы должны указать id и файл электронной книги" msgstr "Вы должны указать id и файл электронной книги"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:429 #: /home/kovid/work/calibre/src/calibre/library/cli.py:428
msgid "ebook file must have an extension" msgid "ebook file must have an extension"
msgstr "файл электронной книги должен иметь расширение" msgstr "файл электронной книги должен иметь расширение"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:437 #: /home/kovid/work/calibre/src/calibre/library/cli.py:436
msgid "" msgid ""
"\n" "\n"
"%prog remove_format [options] id fmt\n" "%prog remove_format [options] id fmt\n"
@ -7129,11 +7149,11 @@ msgstr ""
"получить id используя команду list. fmt это расширения файла LRF или TXT или " "получить id используя команду list. fmt это расширения файла LRF или TXT или "
"EPUB. Если logical book не имеет нужного fmt, ничего не произойдет.\n" "EPUB. Если logical book не имеет нужного fmt, ничего не произойдет.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:454 #: /home/kovid/work/calibre/src/calibre/library/cli.py:453
msgid "You must specify an id and a format" msgid "You must specify an id and a format"
msgstr "Вы должны указать id и формат" msgstr "Вы должны указать id и формат"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:472 #: /home/kovid/work/calibre/src/calibre/library/cli.py:471
msgid "" msgid ""
"\n" "\n"
"%prog show_metadata [options] id\n" "%prog show_metadata [options] id\n"
@ -7148,15 +7168,15 @@ msgstr ""
"Показать метаданные из базы данных calibre для книги с id.\n" "Показать метаданные из базы данных calibre для книги с id.\n"
"id это номер из команды list.\n" "id это номер из команды list.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:480 #: /home/kovid/work/calibre/src/calibre/library/cli.py:479
msgid "Print metadata in OPF form (XML)" msgid "Print metadata in OPF form (XML)"
msgstr "Напечатать метаданные в OPF из (XML)" msgstr "Напечатать метаданные в OPF из (XML)"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:489 #: /home/kovid/work/calibre/src/calibre/library/cli.py:488
msgid "You must specify an id" msgid "You must specify an id"
msgstr "Вы должны назначить id" msgstr "Вы должны назначить id"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:502 #: /home/kovid/work/calibre/src/calibre/library/cli.py:501
msgid "" msgid ""
"\n" "\n"
"%prog set_metadata [options] id /path/to/metadata.opf\n" "%prog set_metadata [options] id /path/to/metadata.opf\n"
@ -7176,11 +7196,11 @@ msgstr ""
"можете быстро заполнить OPF формат используя --as-opf опцию для\n" "можете быстро заполнить OPF формат используя --as-opf опцию для\n"
"команды show_metadata.\n" "команды show_metadata.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:518 #: /home/kovid/work/calibre/src/calibre/library/cli.py:517
msgid "You must specify an id and a metadata file" msgid "You must specify an id and a metadata file"
msgstr "Вы должны указать id и файл метаданных" msgstr "Вы должны указать id и файл метаданных"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:538 #: /home/kovid/work/calibre/src/calibre/library/cli.py:537
msgid "" msgid ""
"%prog export [options] ids\n" "%prog export [options] ids\n"
"\n" "\n"
@ -7197,27 +7217,27 @@ msgstr ""
"Операция экспорта сохраняет все форматы книги, ее обложку и метаданные (в\n" "Операция экспорта сохраняет все форматы книги, ее обложку и метаданные (в\n"
"opf файле). id можно получить командой list.\n" "opf файле). id можно получить командой list.\n"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:546 #: /home/kovid/work/calibre/src/calibre/library/cli.py:545
msgid "Export all books in database, ignoring the list of ids." msgid "Export all books in database, ignoring the list of ids."
msgstr "Передать все книги в базу данных, игнорируя список ids." msgstr "Передать все книги в базу данных, игнорируя список ids."
#: /home/kovid/work/calibre/src/calibre/library/cli.py:548 #: /home/kovid/work/calibre/src/calibre/library/cli.py:547
msgid "Export books to the specified directory. Default is" msgid "Export books to the specified directory. Default is"
msgstr "Экспортировать книги в указанную дерикторию. По умолчанию" msgstr "Экспортировать книги в указанную дерикторию. По умолчанию"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:550 #: /home/kovid/work/calibre/src/calibre/library/cli.py:549
msgid "Export all books into a single directory" msgid "Export all books into a single directory"
msgstr "Экспортировать все книги в одну деррикторию" msgstr "Экспортировать все книги в одну деррикторию"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:557 #: /home/kovid/work/calibre/src/calibre/library/cli.py:556
msgid "Specifying this switch will turn this behavior off." msgid "Specifying this switch will turn this behavior off."
msgstr "" msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/cli.py:580 #: /home/kovid/work/calibre/src/calibre/library/cli.py:579
msgid "You must specify some ids or the %s option" msgid "You must specify some ids or the %s option"
msgstr "Вы должны указать id или опцию %s" msgstr "Вы должны указать id или опцию %s"
#: /home/kovid/work/calibre/src/calibre/library/cli.py:592 #: /home/kovid/work/calibre/src/calibre/library/cli.py:591
msgid "" msgid ""
"%%prog command [options] [arguments]\n" "%%prog command [options] [arguments]\n"
"\n" "\n"

View File

@ -608,6 +608,10 @@ class XMLConfig(dict):
def set(self, key, val): def set(self, key, val):
self.__setitem__(key, val) self.__setitem__(key, val)
def __delitem__(self, key):
dict.__delitem__(self, key)
self.commit()
def commit(self): def commit(self):
if hasattr(self, 'file_path') and self.file_path: if hasattr(self, 'file_path') and self.file_path:
dpath = os.path.dirname(self.file_path) dpath = os.path.dirname(self.file_path)

View File

@ -9,7 +9,6 @@ UTF-8 encoding with any charset declarations removed.
''' '''
import sys, socket, os, urlparse, re, time, copy, urllib2, threading, traceback import sys, socket, os, urlparse, re, time, copy, urllib2, threading, traceback
from urllib import url2pathname, quote from urllib import url2pathname, quote
from threading import RLock
from httplib import responses from httplib import responses
from PIL import Image from PIL import Image
from cStringIO import StringIO from cStringIO import StringIO
@ -39,7 +38,6 @@ class closing(object):
except Exception: except Exception:
pass pass
_browser_lock = RLock()
bad_url_counter = 0 bad_url_counter = 0
def basename(url): def basename(url):
@ -125,7 +123,6 @@ class RecursiveFetcher(object):
self.imagemap_lock = threading.RLock() self.imagemap_lock = threading.RLock()
self.stylemap = css_map self.stylemap = css_map
self.image_url_processor = None self.image_url_processor = None
self.browser_lock = _browser_lock
self.stylemap_lock = threading.RLock() self.stylemap_lock = threading.RLock()
self.downloaded_paths = [] self.downloaded_paths = []
self.current_dir = self.base_dir self.current_dir = self.base_dir
@ -196,26 +193,25 @@ class RecursiveFetcher(object):
for i in range(2, 6): for i in range(2, 6):
purl[i] = quote(purl[i]) purl[i] = quote(purl[i])
url = urlparse.urlunparse(purl) url = urlparse.urlunparse(purl)
with self.browser_lock: try:
try: with closing(self.browser.open_novisit(url, timeout=self.timeout)) as f:
data = response(f.read()+f.read())
data.newurl = f.geturl()
except urllib2.URLError, err:
if hasattr(err, 'code') and responses.has_key(err.code):
raise FetchError, responses[err.code]
if getattr(err, 'reason', [0])[0] == 104 or \
getattr(getattr(err, 'args', [None])[0], 'errno', None) == -2: # Connection reset by peer or Name or service not know
self.log.debug('Temporary error, retrying in 1 second')
time.sleep(1)
with closing(self.browser.open(url, timeout=self.timeout)) as f: with closing(self.browser.open(url, timeout=self.timeout)) as f:
data = response(f.read()+f.read()) data = response(f.read()+f.read())
data.newurl = f.geturl() data.newurl = f.geturl()
except urllib2.URLError, err: else:
if hasattr(err, 'code') and responses.has_key(err.code): raise err
raise FetchError, responses[err.code] finally:
if getattr(err, 'reason', [0])[0] == 104 or \ self.last_fetch_at = time.time()
getattr(getattr(err, 'args', [None])[0], 'errno', None) == -2: # Connection reset by peer or Name or service not know return data
self.log.debug('Temporary error, retrying in 1 second')
time.sleep(1)
with closing(self.browser.open(url, timeout=self.timeout)) as f:
data = response(f.read()+f.read())
data.newurl = f.geturl()
else:
raise err
finally:
self.last_fetch_at = time.time()
return data
def start_fetch(self, url): def start_fetch(self, url):