diff --git a/Changelog.yaml b/Changelog.yaml index c2124aadd9..3b5dcd8d10 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -4,6 +4,250 @@ # for important features/bug fixes. # Also, each release can have new and improved recipes. +- version: 0.6.40 + date: 2010-02-12 + + new features: + - title: "Ability to perform exact match and regular expression based searches." + type: major + tickets: [4830] + description: > + "You can now perform exact match searches by prefixing your search term with an =. + So for example, tag:=fiction will match all tags named fiction, but not tags named + non-fiction. Similarly, you can use regular expression based searches by prefixing + the search term by ~." + + - title: "Autodetect if a zip/rar file is actually a comic and if so, import it as CBZ/CBR" + tickets: [4753] + + - title: "Add plugin to automatically extract an ebook during import if it is in a zip/rar archive" + + - title: "Linux source install: Install a calibre environment module to ease the integration of calibre into other python projects" + + bug fixes: + - title: "Fix regression in 0.6.39 that broke the LRF viewer" + + - title: "ZIP/EPUB files: Try to detect file name encoding instead of assuming the name is encoded in UTF-8. Also correctly + encode the extracted file name in the local filesystem encoding." + + - title: "HTML Input: Handle HTML fragments more gracefully" + tickets: [4854] + + - title: "Zip files: Workaround invalid zip files that contain end-of-file comments but set comment size to zero" + + - title: "Restore the recipe for the Wired daily feed." + tickets: [4871] + + - title: "MOBI metadata: Preserve original EXTH records when not overwrriten by calibre metadata." + + - title: "Catalog generation: Improved series sorting. All books not in a series are now grouped together" + + - title: "Fix occassional threading related crash when using the ChooseFormatDialog" + + - title: "Catalog generation: Various fixes for handling invalid data" + + new recipes: + - title: Sueddeustche Zeitung + author: Darko Miletic + + improved recipes: + - Pagina 12 + - Variety + - Toronto Sun + - Telegraph UK + - Danas + - Dilbert + +- version: 0.6.39 + date: 2010-02-09 + + new features: + - title: "Add ability to control how author sort strings are automatically generated from author strings, via the config file tweaks.py" + + - title: "Handle broken EPUB files from Project Gutenberg that have invalid OCF containers" + tickets: [4832] + + bug fixes: + - title: "Fix regression in 0.6.38 that broke setting bookmarks in the viewer" + + - title: "HTML Input: Ignore filenames that are encoded incorerctly." + + new recipes: + + - title: Radikal + author: Darko Miletic + + +- version: 0.6.38 + date: 2010-02-09 + + new features: + - title: "Driver for the Irex DR 800" + + - title: "Driver for the Booq e-book reader" + + - title: "Allow automatic series increment algorithm to be tweaked by editing the config file tweaks.py" + + - title: "Various improvements to the catlog generation. Larger thumbnails in EPUB output and better series sorting. Better handling of html markup in the comments." + + - title: "MOBI Output: Make font used for generated masthead images user customizable." + + bug fixes: + - title: "E-book viewer: Make bookmarking (and remebering last open position more robust). For linuxsource installs, you must have Qt 4.6" + tickets: [4812] + + - title: "Fix conversion/import of HTML files with very long href links on windows" + tickets: [4783] + + - title: "Don't read metadata from filenames for download news, even if the user has the read metadata from filename option set" + tickets: [4758] + + - title: "Don't allow leading or trailing space in tags and series. Also normalize all internal spaces to a single space" + tickets: [4809] + + - title: "E-book viewer: Toolbars remember their position" + tickets: [4811] + + - title: "Fix year being repeated when editing date in main library screen on windows" + tickets: [4829] + + - title: "New download: Fix downloading of images from URLs with an ampersand in them" + + - title: "Linux source install: unbundle cssutils, it is now an external dependancy" + + - title: "MOBI metadata: Fix regression that broke setting of titles in some MOBI files" + + - title: "EPUB metadata: Extract the cover image from the html it is embededd in if possible, instead of rendering the html. Removes the white margins on covers and speeds up cover extraction" + + - title: "Fix regression in PDB output" + + - title: "News download: Remove tags automatically" + + - title: "Searching on device: Ignore unicode errors" + + + new recipes: + - title: Courier Press + author: Krittika Goyal + + - title: zive.sk and iliterature.cz + author: Abelturd + + - title: El Comerico, Digital Spy UK, Gizmodo, News Straits Times, Read It Later, TidBits + author: Darko Miletic + + improved recipes: + - Jerusalem Post + - Clarin + - La Nacion + - Harvard Business Review + - People US Mashup + - The New Republic + - "Pagina 12" + - Discover Magazine + - Metro Montreal + +- version: 0.6.37 + date: 2010-02-01 + + new features: + - title: "E-book viewer: Add support for viewing SVG images" + type: major + + - title: "Add category of Recently added books when generating catalog in e-book format" + + - title: "OS X: Allow adding of books to calibre via drag and drop on the calibre dock icon" + + - title: "Add support for masthead images when downloading news for the Kindle" + + - title: "MOBI metadata: Allow setting of metadata in old PRC files without EXTH headers as well" + + bug fixes: + - title: Changing the date in Dutch + tickets: [4732] + + - title: "Fix regression that broke sending files to unupdated PRS 500s" + + - title: "MOBI Input: Ignore width and height percentage measures for tags." + tickets: [4726] + + - title: "EPUB Output: Remove tags that point to the internet for their images as this causes the ever delicate ADE to crash." + tickets: [4692] + + - title: "Comic Input: Handle UTF-8 BOM when converting a cbc file" + tickets: [4683] + + - title: "Allow rating to be cleared via the Bulk metadata edit dialog" + tickets: [4693] + + - title: "Add workaround for broken linux systems with multiply encoded file names" + tickets: [4721] + + - title: Fix bug preventing the the use of indices when setting save to disk templates + tickets: [4710] + + - title: "Linux device mounting. Use filetype of auto to allow non vfat filesystems to be mounted" + tickets: [4707] + + - title: "Catalog generation: Make sorting of numbers in title as text optional" + + - title: "Fix error while sending book with non-ascii character in title/author to device on linux" + tickets: [4690] + + - title: "Fix reset cover in edit meta information dialog does not actually remove cover" + tickets: [4731] + + new recipes: + - title: Kamera Bild + author: Darko Miletic + + - title: The Online Photographer + author: Darko Miletic + + - title: The Luminous Landscape + author: Darko Miletic + + - title: Slovo + author: Abelturd + + - title: Various Danish newspapers + author: Darko Miletic + + - title: Heraldo de Aragon + author: Lorenzo Vigentini + + - title: Orange County Register + author: Lorenzi Vigentini + + - title: Open Left + author: Xanthan Gum + + - title: Michelle Malkin + author: Walt Anthony + + - title: The Metro Montreal + author: Jerry Clapperton + + - title: The Gazette + author: Jerry Clapperton + + - title: Macleans Magazine + author: Nick Redding + + - title: NY Time Sunday Book Review + author: Krittika Goyal + + - title: Various Italian newspapers + author: Lorenzo Vigentini + + + improved recipes: + - The Irish Times + - Washington Post + - NIN + - The Discover Magazine + - Pagina 12 + - version: 0.6.36 date: 2010-01-25 diff --git a/resources/catalog/stylesheet.css b/resources/catalog/stylesheet.css index b5770599e6..06bbf8eaab 100644 --- a/resources/catalog/stylesheet.css +++ b/resources/catalog/stylesheet.css @@ -27,7 +27,7 @@ p.tags { p.description { text-align:left; - font-style:italic; + font-style:normal; margin-top: 0em; } @@ -55,6 +55,14 @@ p.author_index { text-indent: 0em; } +p.series { + text-align: left; + margin-top:0px; + margin-bottom:0px; + margin-left:2em; + text-indent:-2em; + } + p.read_book { text-align:left; margin-top:0px; @@ -71,3 +79,9 @@ p.unread_book { text-indent:-2em; } +hr.series_divider { + width:50%; + margin-left:1em; + margin-top:0em; + margin-bottom:0em; + } diff --git a/resources/default_tweaks.py b/resources/default_tweaks.py new file mode 100644 index 0000000000..77cfaaedf5 --- /dev/null +++ b/resources/default_tweaks.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +__license__ = 'GPL v3' +__copyright__ = '2010, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + +''' +Contains various tweaks that affect calibre behavior. Only edit this file if +you know what you are dong. If you delete this file, it will be recreated from +defaults. +''' + + +# The algorithm used to assign a new book in an existing series a series number. +# Possible values are: +# next - Next available number +# const - Assign the number 1 always +series_index_auto_increment = 'next' + + + +# The algorithm used to copy author to author_sort +# Possible values are: +# invert: use "fn ln" -> "ln, fn" (the original algorithm) +# copy : copy author to author_sort without modification +# comma : use 'copy' if there is a ',' in the name, otherwise use 'invert' +author_sort_copy_method = 'invert' diff --git a/resources/images/catalog.svg b/resources/images/catalog.svg new file mode 100644 index 0000000000..724e0cf8e5 --- /dev/null +++ b/resources/images/catalog.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/news/digitalspy_uk.png b/resources/images/news/digitalspy_uk.png new file mode 100644 index 0000000000..28c865713d Binary files /dev/null and b/resources/images/news/digitalspy_uk.png differ diff --git a/resources/images/news/elcomercio.png b/resources/images/news/elcomercio.png new file mode 100644 index 0000000000..df484860dd Binary files /dev/null and b/resources/images/news/elcomercio.png differ diff --git a/resources/images/news/gizmodo.png b/resources/images/news/gizmodo.png new file mode 100644 index 0000000000..8f2e6f002b Binary files /dev/null and b/resources/images/news/gizmodo.png differ diff --git a/resources/images/news/kamerabild.png b/resources/images/news/kamerabild.png new file mode 100644 index 0000000000..401d5a33a3 Binary files /dev/null and b/resources/images/news/kamerabild.png differ diff --git a/resources/images/news/newsstraitstimes.png b/resources/images/news/newsstraitstimes.png new file mode 100644 index 0000000000..075e2cc001 Binary files /dev/null and b/resources/images/news/newsstraitstimes.png differ diff --git a/resources/images/news/radikal_tr.png b/resources/images/news/radikal_tr.png new file mode 100644 index 0000000000..60932df762 Binary files /dev/null and b/resources/images/news/radikal_tr.png differ diff --git a/resources/images/news/readitlater.png b/resources/images/news/readitlater.png new file mode 100644 index 0000000000..439a690cd8 Binary files /dev/null and b/resources/images/news/readitlater.png differ diff --git a/resources/images/news/sueddeutschezeitung.png b/resources/images/news/sueddeutschezeitung.png new file mode 100644 index 0000000000..f6ed36cd91 Binary files /dev/null and b/resources/images/news/sueddeutschezeitung.png differ diff --git a/resources/images/news/theluminouslandscape.png b/resources/images/news/theluminouslandscape.png new file mode 100644 index 0000000000..e6d452f5d2 Binary files /dev/null and b/resources/images/news/theluminouslandscape.png differ diff --git a/resources/images/news/tidbits.png b/resources/images/news/tidbits.png new file mode 100644 index 0000000000..e64d71ec68 Binary files /dev/null and b/resources/images/news/tidbits.png differ diff --git a/resources/kathemerini.recipe b/resources/kathemerini.recipe new file mode 100644 index 0000000000..b68a35d0a8 --- /dev/null +++ b/resources/kathemerini.recipe @@ -0,0 +1,37 @@ +from calibre.web.feeds.recipes import BasicNewsRecipe + +class Kathimerini(BasicNewsRecipe): + title = 'Kathimerini' + __author__ = 'Pan' + description = 'News from Greece' + max_articles_per_feed = 100 + oldest_article = 100 + publisher = 'Kathimerini' + category = 'news, GR' + language = 'el' + no_stylesheets = True + remove_tags_before = dict(name='td',attrs={'class':'news'}) + remove_tags_after = dict(name='td',attrs={'class':'news'}) + remove_attributes = ['width', 'src','header','footer'] + + feeds = [(u'\u03a0\u03bf\u03bb\u03b9\u03c4\u03b9\u03ba\u03ae', + 'http://wk.kathimerini.gr/xml_files/politics.xml'), + (u'\u0395\u03bb\u03bb\u03ac\u03b4\u03b1', + ' http://wk.kathimerini.gr/xml_files/ell.xml'), + (u'\u039a\u03cc\u03c3\u03bc\u03bf\u03c2', + ' http://wk.kathimerini.gr/xml_files/world.xml'), + (u'\u039f\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03af\u03b1', + 'http://wk.kathimerini.gr/xml_files/economy_1.xml'), + (u'\u0395\u03c0\u03b9\u03c7\u03b5\u03b9\u03c1\u03ae\u03c3\u03b5\u03b9\u03c2', + 'http://wk.kathimerini.gr/xml_files/economy_2.xml'), + (u'\u0394\u03b9\u03b5\u03b8\u03bd\u03ae\u03c2 \u039f\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03af\u03b1', + 'http://wk.kathimerini.gr/xml_files/economy_3.xml'), + (u'\u03a0\u03bf\u03bb\u03b9\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2', + 'http://wk.kathimerini.gr/xml_files/civ.xml'), + (u'\u039c\u03cc\u03bd\u03b9\u03bc\u03b5\u03c2 \u03a3\u03c4\u03ae\u03bb\u03b5\u03c2', + 'http://wk.kathimerini.gr/xml_files/st.xml')] + + def print_version(self, url): + return url.replace('http://news.kathimerini.gr/4dcgi/', 'http://news.kathimerini.gr/4dcgi/4dcgi/') + + diff --git a/resources/recipes/ZIVE.sk.recipe b/resources/recipes/ZIVE.sk.recipe new file mode 100644 index 0000000000..e5bfd56cef --- /dev/null +++ b/resources/recipes/ZIVE.sk.recipe @@ -0,0 +1,45 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re + + + +class ZiveRecipe(BasicNewsRecipe): + __license__ = 'GPL v3' + __author__ = 'Abelturd' + language = 'sk' + version = 1 + + title = u'ZIVE.sk' + publisher = u'' + category = u'News, Newspaper' + description = u'Naj\u010d\xedtanej\u0161\xed denn\xedk opo\u010d\xedta\u010doch, IT a internete. ' + encoding = 'UTF-8' + + oldest_article = 7 + max_articles_per_feed = 100 + use_embedded_content = False + remove_empty_feeds = True + + no_stylesheets = True + remove_javascript = True + cover_url = 'http://www.zive.sk/Client.Images/Logos/logo-zive-sk.gif' + + feeds = [] + feeds.append((u'V\u0161etky \u010dl\xe1nky', u'http://www.zive.sk/rss/sc-47/default.aspx')) + + preprocess_regexps = [ + (re.compile(r'

Pokra.*ie

', re.DOTALL|re.IGNORECASE), + lambda match: ''), + + ] + + + remove_tags = [] + + keep_only_tags = [dict(name='h1'), dict(name='span', attrs={'class':'arlist-data-info-author'}), dict(name='div', attrs={'class':'bbtext font-resizer-area'}),] + extra_css = ''' + h1 {font-size:140%;font-family:georgia,serif; font-weight:bold} + h3 {font-size:115%;font-family:georgia,serif; font-weight:bold} + ''' + + diff --git a/resources/recipes/clarin.recipe b/resources/recipes/clarin.recipe index 7c0bf7b7ef..3a96bca162 100644 --- a/resources/recipes/clarin.recipe +++ b/resources/recipes/clarin.recipe @@ -1,6 +1,6 @@ __license__ = 'GPL v3' -__copyright__ = '2008-2009, Darko Miletic ' +__copyright__ = '2008-2010, Darko Miletic ' ''' clarin.com ''' @@ -21,7 +21,8 @@ class Clarin(BasicNewsRecipe): cover_url = strftime('http://www.clarin.com/diario/%Y/%m/%d/portada.jpg') encoding = 'cp1252' language = 'es' - extra_css = ' .Txt{ font-family: sans-serif } .Volan{ font-family: sans-serif; font-size: x-small} .Pie{ font-family: sans-serif; font-size: x-small} .Copete{font-family: sans-serif; font-size: large} .Hora{font-family: sans-serif; font-size: large} .Autor{font-family: sans-serif; font-size: small} ' + masthead_url = 'http://www.clarin.com/shared/v10/img/Hd/lg_Clarin.gif' + extra_css = ' body{font-family: Arial,Helvetica,sans-serif} h2{font-family: Georgia,"Times New Roman",Times,serif; font-size: xx-large} .Volan,.Pie,.Autor{ font-size: x-small} .Copete,.Hora{font-size: large} ' conversion_options = { 'comment' : description diff --git a/resources/recipes/courrier.recipe b/resources/recipes/courrier.recipe new file mode 100644 index 0000000000..d5559a5fca --- /dev/null +++ b/resources/recipes/courrier.recipe @@ -0,0 +1,26 @@ +from calibre.web.feeds.news import BasicNewsRecipe +from calibre.ebooks.BeautifulSoup import BeautifulSoup + +class CourierPress(BasicNewsRecipe): + title = u'Courier Press' + language = 'en' + __author__ = 'Krittika Goyal' + oldest_article = 1 #days + max_articles_per_feed = 25 + + remove_stylesheets = True + remove_tags = [ + dict(name='iframe'), + ] + + feeds = [ +('Courier Press', + 'http://www.courierpress.com/rss/headlines/news/'), +] + + def preprocess_html(self, soup): + story = soup.find(name='div', attrs={'id':'article_body'}) + soup = BeautifulSoup('t') + body = soup.find(name='body') + body.insert(0, story) + return soup diff --git a/resources/recipes/danas.recipe b/resources/recipes/danas.recipe index 4de308a57d..081c46a5d2 100644 --- a/resources/recipes/danas.recipe +++ b/resources/recipes/danas.recipe @@ -1,64 +1,63 @@ -#!/usr/bin/env python - __license__ = 'GPL v3' -__copyright__ = '2008-2009, Darko Miletic ' +__copyright__ = '2008-2010, Darko Miletic ' ''' danas.rs ''' + import re from calibre.web.feeds.news import BasicNewsRecipe -from calibre.ebooks.BeautifulSoup import Tag class Danas(BasicNewsRecipe): title = 'Danas' __author__ = 'Darko Miletic' - description = 'Vesti' + description = 'Dnevne novine sa vestima iz sveta, politike, ekonomije, kulture, sporta, Beograda, Novog Sada i cele Srbije.' publisher = 'Danas d.o.o.' category = 'news, politics, Serbia' oldest_article = 2 max_articles_per_feed = 100 no_stylesheets = False use_embedded_content = False + encoding = 'utf-8' + masthead_url = 'http://www.danas.rs/images/basic/danas.gif' language = 'sr' - lang = 'sr-Latn-RS' - direction = 'ltr' - extra_css = '@font-face {font-family: "serif1";src:url(res:///opt/sony/ebook/FONT/tt0011m_.ttf)} @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} body{font-family: serif1, serif} .article_description{font-family: sans1, sans-serif}' + extra_css = '@font-face {font-family: "serif1";src:url(res:///opt/sony/ebook/FONT/tt0011m_.ttf)} @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} .article_description,body,.lokacija{font-family: Tahoma,Arial,Helvetica,sans1,sans-serif} .nadNaslov,h1,.preamble{font-family: Georgia,"Times New Roman",Times,serif1,serif} .antrfileText{border-left: 2px solid #999999; color:#666666; margin-left: 0.8em; padding-left: 1.2em; margin-bottom: 0; margin-top: 0} h2,.datum,.lokacija,.autor{font-size: small} .antrfileNaslov{border-left: 2px solid #999999; color:#666666; margin-left: 0.8em; padding-left: 1.2em; font-weight:bold; margin-bottom: 0; margin-top: 0} img{margin-bottom: 0.8em} ' conversion_options = { 'comment' : description , 'tags' : category , 'publisher' : publisher , 'language' : language - , 'pretty_print' : True } - preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] keep_only_tags = [dict(name='div', attrs={'id':'left'})] remove_tags = [ dict(name='div', attrs={'class':['width_1_4','metaClanka','baner']}) ,dict(name='div', attrs={'id':'comments'}) - ,dict(name=['object','link']) + ,dict(name=['object','link','iframe']) ] - feeds = [ - (u'Vesti' , u'http://www.danas.rs/rss/rss.asp' ) - ,(u'Periskop', u'http://www.danas.rs/rss/rss.asp?column_id=4') + feeds = [ + (u'Politika' , u'http://www.danas.rs/rss/rss.asp?column_id=27') + ,(u'Hronika' , u'http://www.danas.rs/rss/rss.asp?column_id=2' ) + ,(u'Drustvo' , u'http://www.danas.rs/rss/rss.asp?column_id=24') + ,(u'Dijalog' , u'http://www.danas.rs/rss/rss.asp?column_id=1' ) + ,(u'Ekonomija', u'http://www.danas.rs/rss/rss.asp?column_id=6' ) + ,(u'Svet' , u'http://www.danas.rs/rss/rss.asp?column_id=25') + ,(u'Srbija' , u'http://www.danas.rs/rss/rss.asp?column_id=28') + ,(u'Kultura' , u'http://www.danas.rs/rss/rss.asp?column_id=5' ) + ,(u'Sport' , u'http://www.danas.rs/rss/rss.asp?column_id=13') + ,(u'Scena' , u'http://www.danas.rs/rss/rss.asp?column_id=42') + ,(u'Feljton' , u'http://www.danas.rs/rss/rss.asp?column_id=19') + ,(u'Periskop' , u'http://www.danas.rs/rss/rss.asp?column_id=4' ) ] def preprocess_html(self, soup): - mlang = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.lang)]) - soup.head.insert(0,mlang) - attribs = [ 'style','font','valign' - ,'colspan','width','height' - ,'rowspan','summary','align' - ,'cellspacing','cellpadding' - ,'frames','rules','border' - ] - for item in soup.body.findAll(name=['table','td','tr','th','caption','thead','tfoot','tbody','colgroup','col']): - item.name = 'div' - for attrib in attribs: - if item.has_key(attrib): - del item[attrib] + for item in soup.findAll(style=True): + del item['style'] return soup + + def print_version(self, url): + return url + '&action=print' + diff --git a/resources/recipes/digitalspy_uk.recipe b/resources/recipes/digitalspy_uk.recipe new file mode 100644 index 0000000000..ac54c3790d --- /dev/null +++ b/resources/recipes/digitalspy_uk.recipe @@ -0,0 +1,43 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.digitalspy.co.uk +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class DigitalSpyUK(BasicNewsRecipe): + title = 'Digital Spy - UK Edition' + __author__ = 'Darko Miletic' + description = 'Entertainment news about the biggest TV shows, films and celebrities, updated around the clock.' + publisher = 'Digital Spy Limited.' + category = 'news, showbiz, big brother, x factor, torchwood, doctor who, tv, media, sky, freeview, cable' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + encoding = 'cp1252' + use_embedded_content = False + language = 'en_GB' + remove_empty_feeds = True + extra_css = ' body{font-family: Verdana,Arial,Helvetica,sans-serif } img{margin-bottom: 0.4em} .info{font-size: small} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_tags = [dict(name=['link'])] + remove_attributes = ['height','width'] + keep_only_tags = [dict(name='div',attrs={'id':'article'})] + + feeds = [ + (u'News' , u'http://www.digitalspy.co.uk/rss/zones/gb/all.xml' ) + ,(u'Big Brother' , u'http://www.digitalspy.co.uk/rss/zones/gb/bigbrother.xml' ) + ,(u'Entertainment' , u'http://www.digitalspy.co.uk/rss/zones/gb/entertainment.xml') + ,(u'General' , u'http://www.digitalspy.co.uk/rss/zones/gb/general.xml' ) + ,(u'Media' , u'http://www.digitalspy.co.uk/rss/zones/gb/media.xml' ) + ] + diff --git a/resources/recipes/dilbert.recipe b/resources/recipes/dilbert.recipe index ddca52b40a..82966b1d15 100644 --- a/resources/recipes/dilbert.recipe +++ b/resources/recipes/dilbert.recipe @@ -3,6 +3,7 @@ __copyright__ = '2009, Darko Miletic ' ''' http://www.dilbert.com ''' +import re from calibre.web.feeds.recipes import BasicNewsRecipe @@ -28,6 +29,12 @@ class DosisDiarias(BasicNewsRecipe): feeds = [(u'Dilbert', u'http://feeds.dilbert.com/DilbertDailyStrip' )] + preprocess_regexps = [ + (re.compile('strip\..*\.gif', re.DOTALL|re.IGNORECASE), + lambda match: 'strip.zoom.gif') + ] + + def get_article_url(self, article): return article.get('feedburner_origlink', None) diff --git a/resources/recipes/discover_magazine.recipe b/resources/recipes/discover_magazine.recipe index 0d2ee3ee74..cd4a078231 100644 --- a/resources/recipes/discover_magazine.recipe +++ b/resources/recipes/discover_magazine.recipe @@ -4,7 +4,7 @@ __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __docformat__ = 'restructuredtext en' ''' -doscovermagazine.com +discovermagazine.com ''' from calibre.web.feeds.news import BasicNewsRecipe @@ -12,42 +12,36 @@ from calibre.web.feeds.news import BasicNewsRecipe class DiscoverMagazine(BasicNewsRecipe): title = u'Discover Magazine' - description = u'Science, Technology and the Future' - __author__ = 'Mike Diaz' + description = u'Science, Technology and the Future' + __author__ = 'Mike Diaz' language = 'en' oldest_article = 33 max_articles_per_feed = 20 no_stylesheets = True - remove_javascript = True + remove_javascript = True use_embedded_content = False encoding = 'utf-8' - extra_css = '.headline {font-size: x-large;} \n .fact {padding-top: 10pt}' + + remove_tags = [dict(name='div', attrs={'id':['searchModule', 'mainMenu', 'tool-box']}), + dict(name='img', attrs={'src':'http://discovermagazine.com/onebyone.gif'})] - remove_tags_before = dict(id='articlePage') - - keep_only_tags = [dict(name='div', attrs={'id':'articlePage'})] - - remove_tags = [dict(attrs={'id':['buttons', 'tool-box', 'teaser', 'already-subscriber', 'teaser-suite', 'related-articles', 'relatedItem', 'box-popular', 'box-blogs', 'box-news', 'footer']}), - dict(attrs={'class':'popularNewsBox'}), - dict(name=['img', 'style', 'head'])] - - remove_tags_after = dict(id='articlePage') - + remove_tags_after = [dict(name='div', attrs={'class':'articlebody'})] + feeds = [ - (u'Technology', u'http://discovermagazine.com/topics/technology/rss.xml'), - (u'Health - Medicine', u'http://discovermagazine.com/topics/health-medicine/rss.xml'), - (u'Mind Brain', u'http://discovermagazine.com/topics/mind-brain/rss.xml'), - (u'Space', u'http://discovermagazine.com/topics/space/rss.xml'), - (u'Human Origins', u'http://discovermagazine.com/topics/human-origins/rss.xml'), - (u'Living World', u'http://discovermagazine.com/topics/living-world/rss.xml'), - (u'Environment', u'http://discovermagazine.com/topics/environment/rss.xml'), - (u'Physics & Math', u'http://discovermagazine.com/topics/physics-math/rss.xml'), - (u'Vital Signs', u'http://discovermagazine.com/columns/vital-signs/rss.xml'), - (u"20 Things you didn't know about...", u'http://discovermagazine.com/columns/20-things-you-didnt-know/rss.xml'), - (u'Fuzzy Math', u'http://discovermagazine.com/columns/fuzzy-math/rss.xml'), - (u'The Brain', u'http://discovermagazine.com/columns/the-brain/rss.xml'), - (u'Stupid Science Word of the Month', u'http://discovermagazine.com/columns/stupid-science-word-of-the-month/rss.xml'), + (u'Technology', u'http://discovermagazine.com/topics/technology/rss.xml'), + (u'Health - Medicine', u'http://discovermagazine.com/topics/health-medicine/rss.xml'), + (u'Mind Brain', u'http://discovermagazine.com/topics/mind-brain/rss.xml'), + (u'Space', u'http://discovermagazine.com/topics/space/rss.xml'), + (u'Human Origins', u'http://discovermagazine.com/topics/human-origins/rss.xml'), + (u'Living World', u'http://discovermagazine.com/topics/living-world/rss.xml'), + (u'Environment', u'http://discovermagazine.com/topics/environment/rss.xml'), + (u'Physics & Math', u'http://discovermagazine.com/topics/physics-math/rss.xml'), + (u'Vital Signs', u'http://discovermagazine.com/columns/vital-signs/rss.xml'), + (u"20 Things you didn't know about...", u'http://discovermagazine.com/columns/20-things-you-didnt-know/rss.xml'), + (u'Fuzzy Math', u'http://discovermagazine.com/columns/fuzzy-math/rss.xml'), + (u'The Brain', u'http://discovermagazine.com/columns/the-brain/rss.xml'), + (u'Stupid Science Word of the Month', u'http://discovermagazine.com/columns/stupid-science-word-of-the-month/rss.xml'), (u'Science Not Fiction', u'http://blogs.discovermagazine.com/sciencenotfiction/wp-rss.php') - ] + ] \ No newline at end of file diff --git a/resources/recipes/eksiazki.recipe b/resources/recipes/eksiazki.recipe new file mode 100644 index 0000000000..cc576f4dc6 --- /dev/null +++ b/resources/recipes/eksiazki.recipe @@ -0,0 +1,26 @@ +#!/usr/bin/env python + +__license__ = 'GPL v2' +__copyright__ = u'2010, Tomasz Dlugosz ' +''' +eksiazki.org +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class eksiazki(BasicNewsRecipe): + + title = u'eksiazki.org' + desciption = u'Twoje centrum wiedzy o epapierze i ebookach' + language = 'pl' + __author__ = u'Tomasz D\u0142ugosz' + no_stylesheets = True + remove_javascript = True + + feeds = [(u'wpisy', u'http://www.eksiazki.org/feed/')] + + keep_only_tags = [dict(name='div', attrs={'id':'content-body'})] + remove_tags = [ + dict(name='span', attrs={'class':'nr_comm'}), + dict(name='div', attrs={'id':'tabsContainer'}), + dict(name='div', attrs={'class':'next_previous_links'})] diff --git a/resources/recipes/elcomercio.recipe b/resources/recipes/elcomercio.recipe new file mode 100644 index 0000000000..37733bda8b --- /dev/null +++ b/resources/recipes/elcomercio.recipe @@ -0,0 +1,38 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +elcomercio.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class ElComercio(BasicNewsRecipe): + title = 'El Comercio ' + __author__ = 'Darko Miletic' + description = "Gizmodo, the gadget guide. So much in love with shiny new toys, it's unnatural." + publisher = 'GRUPO EL COMERCIO C.A.' + category = 'news, Ecuador, politics' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + encoding = 'utf-8' + use_embedded_content = True + language = 'es' + masthead_url = 'http://ww1.elcomercio.com/nv_images/headers/EC/logo_new_08.gif' + extra_css = ' body{font-family: Arial,Verdana,sans-serif} img{margin-bottom: 1em} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_attributes = ['width','height'] + + feeds = [(u'Articles', u'http://ww1.elcomercio.com/rss/titulares1.xml')] + + def preprocess_html(self, soup): + return self.adeify_images(soup) + diff --git a/resources/recipes/gizmodo.recipe b/resources/recipes/gizmodo.recipe new file mode 100644 index 0000000000..6f6e6ae0cf --- /dev/null +++ b/resources/recipes/gizmodo.recipe @@ -0,0 +1,40 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +gizmodo.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Gizmodo(BasicNewsRecipe): + title = 'Gizmodo' + __author__ = 'Darko Miletic' + description = "Gizmodo, the gadget guide. So much in love with shiny new toys, it's unnatural." + publisher = 'gizmodo.com' + category = 'news, IT, Internet, gadgets' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + encoding = 'utf-8' + use_embedded_content = True + language = 'en' + masthead_url = 'http://cache.gawkerassets.com/assets/gizmodo.com/img/logo.png' + extra_css = ' body{font-family: "Lucida Grande",Helvetica,Arial,sans-serif} img{margin-bottom: 1em} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_attributes = ['width','height'] + remove_tags = [dict(name='div',attrs={'class':'feedflare'})] + remove_tags_after = dict(name='div',attrs={'class':'feedflare'}) + + feeds = [(u'Articles', u'http://feeds.gawker.com/gizmodo/full')] + + def preprocess_html(self, soup): + return self.adeify_images(soup) + diff --git a/resources/recipes/hbr.recipe b/resources/recipes/hbr.recipe index b84062af8c..3d1e8ccfac 100644 --- a/resources/recipes/hbr.recipe +++ b/resources/recipes/hbr.recipe @@ -18,7 +18,8 @@ class HBR(BasicNewsRecipe): remove_tags = [dict(id=['mastheadContainer', 'magazineHeadline', 'articleToolbarTopRD', 'pageRightSubColumn', 'pageRightColumn', 'todayOnHBRListWidget', 'mostWidget', 'keepUpWithHBR', - 'mailingListTout', 'partnerCenter', 'pageFooter']), + 'mailingListTout', 'partnerCenter', 'pageFooter', + 'articleToolbarTop', 'articleToolbarBottom', 'articleToolbarRD']), dict(name='iframe')] extra_css = ''' a {font-family:Georgia,"Times New Roman",Times,serif; font-style:italic; color:#000000; } diff --git a/resources/recipes/iliteratura_cz.recipe b/resources/recipes/iliteratura_cz.recipe new file mode 100644 index 0000000000..7d603f0cec --- /dev/null +++ b/resources/recipes/iliteratura_cz.recipe @@ -0,0 +1,47 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class SmeRecipe(BasicNewsRecipe): + __license__ = 'GPL v3' + __author__ = 'Abelturd' + language = 'cz' + version = 1 + + title = u'iLiteratura.cz' + publisher = u'' + category = u'News, Newspaper' + description = u'O LITERATU\u0158E V CEL\xc9M SV\u011aT\u011a A DOMA' + cover_url = 'http://www.iliteratura.cz/1_vzhled/1/iliteratura.gif' + + oldest_article = 7 + max_articles_per_feed = 100 + use_embedded_content = False + remove_empty_feeds = True + + no_stylesheets = True + remove_javascript = True + + + feeds = [] + feeds.append((u'\u010cl\xe1nky', u'http://www.iliteratura.cz/rss.asp')) + + + keep_only_tags = [] + + remove_tags = [dict(name='table'),dict(name='h3')] + + + preprocess_regexps = [ + (re.compile(r'

Souvisej.*', re.DOTALL|re.IGNORECASE), + lambda match: ''), + ] + + def print_version(self, url): + m = re.search('(?<=ID=)[0-9]*', url) + + return u'http://www.iliteratura.cz/clanek.asp?polozkaID=' + str(m.group(0)) + '&c=tisk' + + extra_css = ''' + h1 {font-size:140%;font-family:georgia,serif; font-weight:bold} + h3 {font-size:115%;font-family:georgia,serif; font-weight:bold} + ''' diff --git a/resources/recipes/ilsole24ore.recipe b/resources/recipes/ilsole24ore.recipe new file mode 100644 index 0000000000..8258bb563d --- /dev/null +++ b/resources/recipes/ilsole24ore.recipe @@ -0,0 +1,67 @@ +#!/usr/bin/env python +__license__ = 'GPL v3' +__author__ = 'Lorenzo Vigentini & Edwin van Maastrigt' +__copyright__ = '2009, Lorenzo Vigentini and Edwin van Maastrigt ' +__description__ = 'Financial news daily paper - v1.02 (30, January 2010)' + +''' +http://www.ilsole24ore.com/ +''' + +from calibre.web.feeds.news import BasicNewsRecipe + + +class ilsole(BasicNewsRecipe): + author = 'Lorenzo Vigentini & Edwin van Maastrigt' + description = 'Financial news daily paper' + + cover_url = 'http://www.ilsole24ore.com/img2009/header/t_logosole.gif' + title = u'il Sole 24 Ore ' + publisher = 'italiaNews' + category = 'News, finance, economy, politics' + + language = 'it' + timefmt = '[%a, %d %b, %Y]' + + oldest_article = 2 + max_articles_per_feed = 50 + use_embedded_content = False + + remove_javascript = True + no_stylesheets = True + + def get_article_url(self, article): + return article.get('id', article.get('guid', None)) + + def print_version(self, url): + link, sep, params = url.rpartition('?') + return link.replace('.shtml', '_PRN.shtml') + + keep_only_tags = [ + dict(name='div', attrs={'class':'txt'}) + ] + remove_tags = [dict(name='br')] + + feeds = [ + (u'Prima pagina', u'http://www.ilsole24ore.com/rss/primapagina.xml'), + (u'Norme e tributi', u'http://www.ilsole24ore.com/rss/norme-tributi.xml'), + (u'Finanza e mercati', u'http://www.ilsole24ore.com/rss/finanza-mercati.xml'), + (u'Economia e lavoro', u'http://www.ilsole24ore.com/rss/economia-lavoro.xml'), + (u'Italia', u'http://www.ilsole24ore.com/rss/italia.xml'), + (u'Mondo', u'http://www.ilsole24ore.com/rss/mondo.xml'), + (u'Tecnologia e business', u'http://www.ilsole24ore.com/rss/tecnologia-business.xml'), + (u'Cultura e tempo libero', u'http://www.ilsole24ore.com/rss/tempolibero-cultura.xml'), + (u'Sport', u'http://www.ilsole24ore.com/rss/sport.xml'), + (u'Professionisti 24', u'http://www.ilsole24ore.com/rss/prof_home.xml') + ] + + extra_css = ''' + html, body, table, tr, td, h1, h2, h3, h4, h5, h6, p, a, span, br, img {margin:0;padding:0;border:0;font-size:12px;font-family:Arial;} + .linkHighlight {color:#0292c6;} + .txt {border-bottom:1px solid #7c7c7c;padding-bottom:20px;text-align:justify;} + .txt p {line-height:18px;} + .txt span {line-height:22px;} + .title h3 {color:#7b7b7b;} + .title h4 {color:#08526e;font-size:26px;font-family:"Times New Roman";font-weight:normal;} + ''' + diff --git a/resources/recipes/jpost.recipe b/resources/recipes/jpost.recipe index b4b7d19c3c..8f1cdf73f4 100644 --- a/resources/recipes/jpost.recipe +++ b/resources/recipes/jpost.recipe @@ -10,22 +10,19 @@ class JerusalemPost(BasicNewsRecipe): __author__ = 'Kovid Goyal' max_articles_per_feed = 10 no_stylesheets = True - remove_tags_before = {'class':'byline'} - remove_tags = [ - {'class':['artAdBlock clearboth', 'tbartop', 'divdot_vrttbox', - 'slideshow']}, - dict(id=['artFontButtons', 'artRelatedBlock']), - ] - remove_tags_after = {'id':'artTxtBlock'} - + remove_tags_before = {'class':'jp-grid-content'} + remove_tags_after = {'id':'body_val'} + feeds = [ ('Front Page', 'http://www.jpost.com/servlet/Satellite?pagename=JPost/Page/RSS&cid=1123495333346'), ('Israel News', 'http://www.jpost.com/servlet/Satellite?pagename=JPost/Page/RSS&cid=1178443463156'), ('Middle East News', 'http://www.jpost.com/servlet/Satellite?pagename=JPost/Page/RSS&cid=1123495333498'), ('International News', 'http://www.jpost.com/servlet/Satellite?pagename=JPost/Page/RSS&cid=1178443463144'), ('Editorials', 'http://www.jpost.com/servlet/Satellite?pagename=JPost/Page/RSS&cid=1123495333211'), ] - - def postprocess_html(self, soup, first): - for tag in soup.findAll(name=['table', 'tr', 'td']): - tag.name = 'div' - return soup \ No newline at end of file + + def preprocess_html(self, soup): + for x in soup.findAll(name=['form', 'input']): + x.name = 'div' + for x in soup.findAll('body', style=True): + del x['style'] + return soup diff --git a/resources/recipes/kamerabild.recipe b/resources/recipes/kamerabild.recipe new file mode 100644 index 0000000000..181f752612 --- /dev/null +++ b/resources/recipes/kamerabild.recipe @@ -0,0 +1,46 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.kamerabild.se +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Kamerabild(BasicNewsRecipe): + title = 'Kamera & Bild' + __author__ = 'Darko Miletic' + description = 'Photo News from Sweden' + publisher = 'politiken.dk' + category = 'news, photograph, Sweden' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + remove_empty_feeds = True + use_embedded_content = False + encoding = 'utf8' + language = 'sv' + + extra_css = ' body{font-family: Verdana,Arial,Helvetica,sans-serif } .title{font-weight: bold} .pricerunnerAdContainer{border-bottom: 1px solid; border-top: 1px solid; margin-top: 0.5em; margin-bottom: 0.5em} .elementTeaserKicker{font-weight: bold; color: #AE0A10} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher': publisher + , 'language' : language + } + + feeds = [(u'Articles', u'http://www.kamerabild.se/cmlink/Nyheter-fran-KAMERA-BILD-1.43315.xml')] + keep_only_tags = [dict(name='div',attrs={'class':'container'})] + remove_tags_after = dict(name='div',attrs={'class':'editor'}) + remove_tags = [ + dict(name=['object','link','iframe']) + ,dict(name='div',attrs={'class':['pricerunner_head','sideBar','img']}) + ] + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return self.adeify_images(soup) + + diff --git a/resources/recipes/lanacion.recipe b/resources/recipes/lanacion.recipe index 298c980f00..000b4fb0f6 100644 --- a/resources/recipes/lanacion.recipe +++ b/resources/recipes/lanacion.recipe @@ -1,7 +1,5 @@ -#!/usr/bin/env python - __license__ = 'GPL v3' -__copyright__ = '2008-2009, Darko Miletic ' +__copyright__ = '2008-2010, Darko Miletic ' ''' lanacion.com.ar ''' @@ -12,28 +10,34 @@ class Lanacion(BasicNewsRecipe): title = 'La Nacion' __author__ = 'Darko Miletic' description = 'Noticias de Argentina y el resto del mundo' - publisher = 'La Nacion' + publisher = 'La Nacion S.A.' category = 'news, politics, Argentina' oldest_article = 2 max_articles_per_feed = 100 use_embedded_content = False - remove_javascript = True no_stylesheets = True + language = 'es' + encoding = 'cp1252' + masthead_url = 'http://www.lanacion.com.ar/imgs/layout/logos/ln341x47.gif' + extra_css = ' h1{font-family: Georgia,serif} body{font-family: Arial,sans-serif} img{margin-top: 0.5em; margin-bottom: 0.2em} .notaEpigrafe{font-size: x-small} ' - html2lrf_options = [ - '--comment', description - , '--category', category - , '--publisher', publisher - ] - html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher': publisher + , 'language' : language + } keep_only_tags = [dict(name='div', attrs={'class':'nota floatFix'})] remove_tags = [ dict(name='div' , attrs={'class':'notaComentario floatFix noprint' }) ,dict(name='ul' , attrs={'class':'cajaHerramientas cajaTop noprint'}) ,dict(name='div' , attrs={'class':'cajaHerramientas noprint' }) + ,dict(attrs={'class':['titulosMultimedia','derecha','techo color']}) + ,dict(name=['iframe','embed','object']) ] + remove_attributes = ['height','width'] feeds = [ (u'Ultimas noticias' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?origen=2' ) @@ -51,10 +55,4 @@ class Lanacion(BasicNewsRecipe): ] def preprocess_html(self, soup): - mtag = '' - soup.head.insert(0,mtag) - for item in soup.findAll(style=True): - del item['style'] - return soup - - language = 'es' + return self.adeify_images(soup) diff --git a/resources/recipes/lescienze.recipe b/resources/recipes/lescienze.recipe new file mode 100644 index 0000000000..13d7ea8ea2 --- /dev/null +++ b/resources/recipes/lescienze.recipe @@ -0,0 +1,89 @@ +#!/usr/bin/env python +__license__ = 'GPL v3' +__author__ = 'Lorenzo Vigentini' +__copyright__ = '2009, Lorenzo Vigentini ' +__version__ = 'v1.01' +__date__ = '10, January 2010' +__description__ = 'Monthly Italian edition of Scientific American' + +''' +http://lescienze.espresso.repubblica.it/ +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class leScienze(BasicNewsRecipe): + author = 'Lorenzo Vigentini' + description = 'Monthly Italian edition of Scientific American' + + cover_url = 'http://lescienze.espresso.repubblica.it/images/logo_lescienze.gif' + title = 'le Scienze' + publisher = 'Gruppo editoriale lEspresso' + category = 'Science, general interest' + + language = 'it' + encoding = 'cp1252' + timefmt = '[%a, %d %b, %Y]' + + oldest_article = 31 + max_articles_per_feed = 20 + use_embedded_content = False + recursion = 10 + + remove_javascript = True + no_stylesheets = True + + + keep_only_tags = [ + dict(name='div', attrs={'class':'bigbox'}) + ] + + remove_tags = [ + dict(name='span',attrs={'class':'linkindice'}), + dict(name='div',attrs={'class':'box-commenti'}), + dict(name='div',attrs={'id':['rssdiv','blocco']}) + ] + remove_tags_after = [dict(name='div',attrs={'class':'box-commenti'})] + + feeds = [ + (u'Antropologia', u'http://data.kataweb.it/rss/scienze/antropologia'), + (u'Archeologia', u'http://data.kataweb.it/rss/scienze/archeologia'), + (u'Arte e Musica', u'http://data.kataweb.it/rss/scienze/arte_e_musica'), + (u'Astrofisica', u'http://data.kataweb.it/rss/scienze/astrofisica'), + (u'Astronautica', u'http://data.kataweb.it/rss/scienze/astronautica'), + (u'Astronomia', u'http://data.kataweb.it/rss/scienze/astronomia_e_cosmologia'), + (u'Biologia', u'http://data.kataweb.it/rss/scienze/biologia'), + (u'Chimica', u'http://data.kataweb.it/rss/scienze/chimica'), + (u'Ecologia & ambiente', u'http://data.kataweb.it/rss/scienze/ecologia_e_ambiente'), + (u'Economia', u'http://data.kataweb.it/rss/scienze/Economia'), + (u'Fisica', u'http://data.kataweb.it/rss/scienze/Fisica'), + (u'Informatica', u'http://data.kataweb.it/rss/scienze/informatica_e_telecomunicazioni'), + (u'Ingegneria', u'http://data.kataweb.it/rss/scienze/ingegneria_e_tecnologia'), + (u'Matematica', u'http://data.kataweb.it/rss/scienze/Matematica'), + (u'Medicina', u'http://data.kataweb.it/rss/scienze/Medicina'), + (u'Paleontologia', u'http://data.kataweb.it/rss/scienze/Paleontologia'), + (u'Recensioni', u'http://data.kataweb.it/rss/scienze/Recensioni'), + (u'Psicologia', u'http://data.kataweb.it/rss/scienze/psicologie_e_scienze_cognitive'), + (u'Scienze della Terra', u'http://data.kataweb.it/rss/scienze/scienze_della_terra'), + (u'Scienze dello spazio', u'http://data.kataweb.it/rss/scienze/scienze_dello_spazio'), + (u'Scienze naturali', u'http://data.kataweb.it/rss/scienze/scienze_naturali'), + (u'Scienze sociali', u'http://data.kataweb.it/rss/scienze/scienze_sociali'), + (u'Statistica', u'http://data.kataweb.it/rss/scienze/statistica'), + (u'Storia della scienza', u'http://data.kataweb.it/rss/scienze/storia_della_scienza') + ] + + extra_css = ''' + h1 {font-family:"Trebuchet MS",Arial,Helvetica,sans-serif; font-size:20px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:18px;} + h2 {font-family:"Trebuchet MS",Arial,Helvetica,sans-serif; font-size:18px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:16px; } + h3 {color:#333333;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif; font-size:16px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:14px;} + h4 {color:#333333; font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:16px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:14px; } + h5 {color:#333333; font-family:"Trebuchet MS",Arial,Helvetica,sans-serif; font-size:12px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:14px; text-transform:uppercase;} + .occhiello {color:#666666;display:block;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:13px;font-size-adjust:none;font-stretch:normal;font-style:normal;font-variant:normal;font-weight:bold;line-height:15px;} + .titolo {font-weight:bold;} + .label {font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:12px;font-size-adjust:none;font-stretch:normal;font-style:normal;font-variant:normal;font-weight:bold;height:15px;line-height:15px;text-transform:uppercase;} + .firma {color:#333333;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:12px; font-size-adjust:none; font-stretch:normal; font-style:italic; font-variant:normal; font-weight:bold; line-height:15px; text-decoration:none;} + .testo {font-family:"Trebuchet MS",Arial,Helvetica,sans-serif; font-size:10px;} + ''' + + + diff --git a/resources/recipes/metro_montreal.recipe b/resources/recipes/metro_montreal.recipe index 094f00316f..c2054bdeec 100644 --- a/resources/recipes/metro_montreal.recipe +++ b/resources/recipes/metro_montreal.recipe @@ -4,21 +4,26 @@ class Metro_Montreal(BasicNewsRecipe): title = u'M\xe9tro Montr\xe9al' __author__ = 'Jerry Clapperton' - description = u'Le quotidien le plus branch\xe9 sur le monde' - language = 'fr' + description = 'Le quotidien le plus branch\xe9 sur le monde' + language = 'fr' - oldest_article = 7 + oldest_article = 7 max_articles_per_feed = 20 use_embedded_content = False - remove_javascript = True - no_stylesheets = True - encoding = 'utf-8' + remove_javascript = True + no_stylesheets = True + encoding = 'utf-8' + extra_css = '.headline {font-size: x-large;} \n .fact {padding-top: 10pt}' - extra_css = '.headline {font-size: x-large;} \n .fact {padding-top: 10pt}' + remove_tags = [dict(attrs={'id':'buttons'})] - remove_tags = [dict(attrs={'id':'buttons'}), dict(name=['img', 'style'])] - - feeds = [(u"L'info", u'http://journalmetro.com/linfo/rss'), (u'Monde', u'http://journalmetro.com/monde/rss'), (u'Culture', u'http://journalmetro.com/culture/rss'), (u'Sports', u'http://journalmetro.com/sports/rss'), (u'Paroles', u'http://journalmetro.com/paroles/rss')] + feeds = [ + (u"L'info", u'http://journalmetro.com/linfo/rss'), + (u'Monde', u'http://journalmetro.com/monde/rss'), + (u'Culture', u'http://journalmetro.com/culture/rss'), + (u'Sports', u'http://journalmetro.com/sports/rss'), + (u'Paroles', u'http://journalmetro.com/paroles/rss') + ] def print_version(self, url): return url.replace('article', 'ArticlePrint') + '?language=fr' diff --git a/resources/recipes/newsstraitstimes.recipe b/resources/recipes/newsstraitstimes.recipe new file mode 100644 index 0000000000..ebbaca1a0e --- /dev/null +++ b/resources/recipes/newsstraitstimes.recipe @@ -0,0 +1,35 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.nst.com.my +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Newstraitstimes(BasicNewsRecipe): + title = 'New Straits Times from Malaysia' + __author__ = 'Darko Miletic' + description = 'Learning Curve, Sunday People, New Straits Times from Malaysia' + publisher = 'nst.com.my' + category = 'news, politics, Malaysia' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + encoding = 'cp1252' + use_embedded_content = False + language = 'en' + masthead_url = 'http://www.nst.com.my/Current_News/NST/Images/new-nstonline.jpg' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_tags = [dict(name=['link','table'])] + keep_only_tags = dict(name='div',attrs={'id':'haidah'}) + + feeds = [(u'Articles', u'http://www.nst.com.my/rss/allSec')] + diff --git a/resources/recipes/nin.recipe b/resources/recipes/nin.recipe index 0872467d2f..a349f0e11f 100644 --- a/resources/recipes/nin.recipe +++ b/resources/recipes/nin.recipe @@ -72,9 +72,8 @@ class Nin(BasicNewsRecipe): section = self.tag_to_string(item) feedlink = self.PREFIX + item['href'] feedpage = self.index_to_soup(feedlink) - self.report_progress(0, _('Fetching feed')+' %s...'%(section)) + self.report_progress(0, _('Fetching feed')+' %s...'%(section)) inarts = [] - count2 = 0 for art in feedpage.findAll('span',attrs={'class':'artTitle'}): alink = art.parent url = self.PREFIX + alink['href'] diff --git a/resources/recipes/nytimes.recipe b/resources/recipes/nytimes.recipe index 8b9283a0af..32e5a4825e 100644 --- a/resources/recipes/nytimes.recipe +++ b/resources/recipes/nytimes.recipe @@ -5,7 +5,7 @@ __copyright__ = '2008, Kovid Goyal ' ''' nytimes.com ''' -import re +import re, time from calibre import entity_to_unicode from calibre.web.feeds.recipes import BasicNewsRecipe from calibre.ebooks.BeautifulSoup import BeautifulSoup, Tag, NavigableString, Comment diff --git a/resources/recipes/nytimes_sub.recipe b/resources/recipes/nytimes_sub.recipe index e3942469a4..d389ca4eea 100644 --- a/resources/recipes/nytimes_sub.recipe +++ b/resources/recipes/nytimes_sub.recipe @@ -37,7 +37,7 @@ class NYTimes(BasicNewsRecipe): dict(name=['script', 'noscript', 'style'])] encoding = decode no_stylesheets = True - extra_css = 'h1 {font: sans-serif large;}\n.byline {font:monospace;}' + extra_css = 'h1 {font-face:sans-serif; font-size:2em; font-weight:bold;}\n.byline {font:monospace;}\n.bold {font-weight:bold;}' def get_browser(self): br = BasicNewsRecipe.get_browser() diff --git a/resources/recipes/nytimesbook.recipe b/resources/recipes/nytimesbook.recipe new file mode 100644 index 0000000000..686f30b69a --- /dev/null +++ b/resources/recipes/nytimesbook.recipe @@ -0,0 +1,56 @@ +from calibre.web.feeds.news import BasicNewsRecipe +from calibre.ebooks.BeautifulSoup import BeautifulSoup + +class NewYorkTimesBookReview(BasicNewsRecipe): + title = u'New York Times Book Review' + language = 'en' + __author__ = 'Krittika Goyal' + oldest_article = 8 #days + max_articles_per_feed = 1000 + recursions = 2 + #encoding = 'latin1' + + remove_stylesheets = True + #remove_tags_before = dict(name='h1', attrs={'class':'heading'}) + remove_tags_after = dict(name='div', attrs={'id':'authorId'}) + remove_tags = [ + dict(name='iframe'), + dict(name=['div', 'a'], attrs={'class':['enlargeThis', 'jumpLink']}), + dict(name='div', attrs={'id':['sidebarArticles', 'toolsRight']}), + #dict(name='ul', attrs={'class':'article-tools'}), + #dict(name='ul', attrs={'class':'articleTools'}), + ] + match_regexps = [ + r'http://www.nytimes.com/.+pagewanted=[2-9]+' + ] + + feeds = [ +('New York Times Sunday Book Review', + 'http://feeds.nytimes.com/nyt/rss/SundayBookReview'), +] + + + def preprocess_html(self, soup): + story = soup.find(name='div', attrs={'id':'article'}) + #td = heading.findParent(name='td') + #td.extract() + soup = BeautifulSoup('t') + body = soup.find(name='body') + body.insert(0, story) + #for x in soup.findAll(name='p', text=lambda x:x and '-->' in x): + #p = x.findParent('p') + #if p is not None: + #p.extract() + return soup + + def postprocess_html(self, soup, first): + for div in soup.findAll(id='pageLinks'): + div.extract() + if not first: + h1 = soup.find('h1') + if h1 is not None: + h1.extract() + t = soup.find(attrs={'class':'timestamp'}) + if t is not None: + t.extract() + return soup diff --git a/resources/recipes/pagina12.recipe b/resources/recipes/pagina12.recipe index 2fb433dc82..da16c1697b 100644 --- a/resources/recipes/pagina12.recipe +++ b/resources/recipes/pagina12.recipe @@ -1,13 +1,12 @@ - __license__ = 'GPL v3' __copyright__ = '2008-2010, Darko Miletic ' ''' pagina12.com.ar ''' -import time -from calibre import strftime +import re from calibre.web.feeds.news import BasicNewsRecipe +from calibre.ebooks.BeautifulSoup import BeautifulSoup class Pagina12(BasicNewsRecipe): title = 'Pagina - 12' @@ -16,13 +15,14 @@ class Pagina12(BasicNewsRecipe): publisher = 'La Pagina S.A.' category = 'news, politics, Argentina' oldest_article = 2 - max_articles_per_feed = 100 + max_articles_per_feed = 200 no_stylesheets = True encoding = 'cp1252' use_embedded_content = False language = 'es' remove_empty_feeds = True - extra_css = ' body{font-family: sans-serif} ' + masthead_url = 'http://www.pagina12.com.ar/commons/imgs/logo-home.gif' + extra_css = ' body{font-family: Arial,Helvetica,sans-serif } img{margin-bottom: 0.4em} #autor{font-weight: bold} #fecha,#epigrafe{font-size: 0.9em; margin: 5px} #imagen{border: 1px solid black; margin: 0 0 1.25em 1.25em; width: 232px } ' conversion_options = { 'comment' : description @@ -45,14 +45,24 @@ class Pagina12(BasicNewsRecipe): ,(u'NO' , u'http://www.pagina12.com.ar/diario/rss/no.xml' ) ,(u'Las/12' , u'http://www.pagina12.com.ar/diario/rss/las12.xml' ) ,(u'Soy' , u'http://www.pagina12.com.ar/diario/rss/soy.xml' ) - ,(u'M2' , u'http://www.pagina12.com.ar/diario/rss/futuro.xml' ) + ,(u'Futuro' , u'http://www.pagina12.com.ar/diario/rss/futuro.xml' ) + ,(u'M2' , u'http://www.pagina12.com.ar/diario/rss/m2.xml' ) + ,(u'Rosario/12' , u'http://www.pagina12.com.ar/diario/rss/rosario.xml' ) ] def print_version(self, url): return url.replace('http://www.pagina12.com.ar/','http://www.pagina12.com.ar/imprimir/') def get_cover_url(self): - imgnames = ['tapan.jpg','tapagn.jpg','tapan_gr.jpg','tapagn.jpg','tapagn.jpg','tapan.jpg','tapagn.jpg'] - weekday = time.localtime().tm_wday - return strftime('http://www.pagina12.com.ar/fotos/%Y%m%d/diario/') + imgnames[weekday] + rawc = self.index_to_soup('http://www.pagina12.com.ar/diario/principal/diario/index.html',True) + rawc2 = re.sub(r'PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN','PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"',rawc) + soup = BeautifulSoup(rawc2,fromEncoding=self.encoding,smartQuotesTo=None) + for image in soup.findAll('img',alt=True): + if image['alt'].startswith('Tapa de la fecha'): + return image['src'] + return None + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup \ No newline at end of file diff --git a/resources/recipes/people_us_mashup.recipe b/resources/recipes/people_us_mashup.recipe index 38d750cd4c..ed43e24e56 100644 --- a/resources/recipes/people_us_mashup.recipe +++ b/resources/recipes/people_us_mashup.recipe @@ -31,7 +31,7 @@ class PeopleMag(BasicNewsRecipe): keep_only_tags = [ - dict(name='div', attrs={'class': 'panel_news_article_main'}), + dict(name='div', attrs={'class': 'panel_news_article_main'}), dict(name='div', attrs={'class':'article_content'}), dict(name='div', attrs={'class': 'headline'}), dict(name='div', attrs={'class': 'post'}), @@ -51,6 +51,7 @@ class PeopleMag(BasicNewsRecipe): dict(name='div', attrs={'class':'sharelinkcont'}), dict(name='div', attrs={'class':'categories'}), dict(name='ul', attrs={'class':'categories'}), + dict(name='div', attrs={'class':'related_content'}), dict(name='div', attrs={'id':'promo'}), dict(name='div', attrs={'class':'linksWrapper'}), dict(name='p', attrs={'class':'tag tvnews'}), diff --git a/resources/recipes/radikal_tr.recipe b/resources/recipes/radikal_tr.recipe new file mode 100644 index 0000000000..2d71c238dd --- /dev/null +++ b/resources/recipes/radikal_tr.recipe @@ -0,0 +1,45 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +radikal.com.tr +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Radikal_tr(BasicNewsRecipe): + title = 'Radikal - Turkey' + __author__ = 'Darko Miletic' + description = 'News from Turkey' + publisher = 'radikal' + category = 'news, politics, Turkey' + oldest_article = 2 + max_articles_per_feed = 150 + no_stylesheets = True + encoding = 'cp1254' + use_embedded_content = False + masthead_url = 'http://www.radikal.com.tr/D/i/1/V2/radikal_logo.jpg' + language = 'tr' + extra_css = ' @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} .article_description,body{font-family: Arial,Verdana,Helvetica,sans1,sans-serif } ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_tags = [dict(name=['embed','iframe','object','link','base'])] + remove_tags_before = dict(name='h1') + remove_tags_after = dict(attrs={'id':'haberDetayYazi'}) + + + feeds = [(u'Yazarlar', u'http://www.radikal.com.tr/d/rss/RssYazarlar.xml')] + + def print_version(self, url): + articleid = url.rpartition('ArticleID=')[2] + return 'http://www.radikal.com.tr/Default.aspx?aType=HaberYazdir&ArticleID=' + articleid + + def preprocess_html(self, soup): + return self.adeify_images(soup) + diff --git a/resources/recipes/readitlater.recipe b/resources/recipes/readitlater.recipe new file mode 100644 index 0000000000..4bd8fc2bd6 --- /dev/null +++ b/resources/recipes/readitlater.recipe @@ -0,0 +1,64 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +readitlaterlist.com +''' + +from calibre import strftime +from calibre.web.feeds.news import BasicNewsRecipe + +class Readitlater(BasicNewsRecipe): + title = 'Read It Later' + __author__ = 'Darko Miletic' + description = '''Personalized news feeds. Go to readitlaterlist.com to + setup up your news. Fill in your account + username, and optionally you can add password.''' + publisher = 'readitlater.com' + category = 'news, custom' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + needs_subscription = True + INDEX = u'http://readitlaterlist.com' + LOGIN = INDEX + u'/l' + + + feeds = [(u'Unread articles' , INDEX + u'/unread')] + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + if self.username is not None: + br.open(self.LOGIN) + br.select_form(nr=0) + br['feed_id'] = self.username + if self.password is not None: + br['password'] = self.password + br.submit() + return br + + def parse_index(self): + totalfeeds = [] + lfeeds = self.get_feeds() + for feedobj in lfeeds: + feedtitle, feedurl = feedobj + self.report_progress(0, _('Fetching feed')+' %s...'%(feedtitle if feedtitle else feedurl)) + articles = [] + soup = self.index_to_soup(feedurl) + ritem = soup.find('ul',attrs={'id':'list'}) + for item in ritem.findAll('li'): + description = '' + atag = item.find('a',attrs={'class':'text'}) + if atag and atag.has_key('href'): + url = self.INDEX + atag['href'] + title = self.tag_to_string(item.div) + date = strftime(self.timefmt) + articles.append({ + 'title' :title + ,'date' :date + ,'url' :url + ,'description':description + }) + totalfeeds.append((feedtitle, articles)) + return totalfeeds + diff --git a/resources/recipes/sueddeutschezeitung.recipe b/resources/recipes/sueddeutschezeitung.recipe new file mode 100644 index 0000000000..8b731e2c4f --- /dev/null +++ b/resources/recipes/sueddeutschezeitung.recipe @@ -0,0 +1,107 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.sueddeutsche.de/sz/ +''' + +import urllib +from calibre import strftime +from calibre.web.feeds.news import BasicNewsRecipe + +class SueddeutcheZeitung(BasicNewsRecipe): + title = 'Sueddeutche Zeitung' + __author__ = 'Darko Miletic' + description = 'News from Germany. Access to paid content.' + publisher = 'Sueddeutche Zeitung' + category = 'news, politics, Germany' + no_stylesheets = True + oldest_article = 2 + encoding = 'cp1252' + needs_subscription = True + remove_empty_feeds = True + PREFIX = 'http://www.sueddeutsche.de' + INDEX = PREFIX + strftime('/sz/%Y-%m-%d/') + LOGIN = PREFIX + '/app/lbox/index.html' + use_embedded_content = False + masthead_url = 'http://pix.sueddeutsche.de/img/g_.gif' + language = 'de' + extra_css = ' body{font-family: Arial,Helvetica,sans-serif} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + , 'linearize_tables' : True + } + + remove_attributes = ['height','width'] + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + br.open(self.INDEX) + if self.username is not None and self.password is not None: + data = urllib.urlencode({ 'login_name':self.username + ,'login_passwort':self.password + ,'lboxaction':'doLogin' + ,'passtxt':'Passwort' + ,'referer':self.INDEX + ,'x':'22' + ,'y':'7' + }) + br.open(self.LOGIN,data) + return br + + remove_tags =[ + dict(attrs={'class':'hidePrint'}) + ,dict(name=['link','object','embed','base','iframe']) + ] + remove_tags_before = dict(name='h2') + remove_tags_after = dict(attrs={'class':'author'}) + + feeds = [ + (u'Politik' , INDEX + 'politik/' ) + ,(u'Seite drei' , INDEX + 'seitedrei/' ) + ,(u'Meinungsseite', INDEX + 'meinungsseite/') + ,(u'Wissen' , INDEX + 'wissen/' ) + ,(u'Panorama' , INDEX + 'panorama/' ) + ,(u'Feuilleton' , INDEX + 'feuilleton/' ) + ,(u'Medien' , INDEX + 'medien/' ) + ,(u'Wirtschaft' , INDEX + 'wirtschaft/' ) + ,(u'Sport' , INDEX + 'sport/' ) + ,(u'Bayern' , INDEX + 'bayern/' ) + ,(u'Muenchen' , INDEX + 'muenchen/' ) + ,(u'jetzt.de' , INDEX + 'jetzt.de/' ) + ] + + def parse_index(self): + totalfeeds = [] + lfeeds = self.get_feeds() + for feedobj in lfeeds: + feedtitle, feedurl = feedobj + self.report_progress(0, _('Fetching feed')+' %s...'%(feedtitle if feedtitle else feedurl)) + articles = [] + soup = self.index_to_soup(feedurl) + tbl = soup.find(attrs={'class':'szprintd'}) + for item in tbl.findAll(name='td',attrs={'class':'topthema'}): + atag = item.find(attrs={'class':'Titel'}).a + ptag = item.find('p') + stag = ptag.find('script') + if stag: + stag.extract() + url = self.PREFIX + atag['href'] + title = self.tag_to_string(atag) + description = self.tag_to_string(ptag) + articles.append({ + 'title' :title + ,'date' :strftime(self.timefmt) + ,'url' :url + ,'description':description + }) + totalfeeds.append((feedtitle, articles)) + return totalfeeds + + def print_version(self, url): + return url + 'print.html' + diff --git a/resources/recipes/telegraph_uk.recipe b/resources/recipes/telegraph_uk.recipe index 5d51bebba4..2c261987b2 100644 --- a/resources/recipes/telegraph_uk.recipe +++ b/resources/recipes/telegraph_uk.recipe @@ -9,8 +9,8 @@ from calibre.web.feeds.news import BasicNewsRecipe class TelegraphUK(BasicNewsRecipe): title = u'Telegraph.co.uk' - __author__ = 'Darko Miletic' - description = 'News from United Kingdom' + __author__ = 'Darko Miletic and Sujata Raman' + description = 'News from United Kingdom' oldest_article = 7 max_articles_per_feed = 100 no_stylesheets = True @@ -18,23 +18,26 @@ class TelegraphUK(BasicNewsRecipe): use_embedded_content = False - extra_css = ''' - h1{font-family :Arial,Helvetica,sans-serif; font-size:large; } - h2{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#444444} - .story{font-family :Arial,Helvetica,sans-serif; font-size: x-small;} - .byline{color:#666666; font-family :Arial,Helvetica,sans-serif; font-size: xx-small;} - a{color:#234B7B; } - .imageExtras{color:#666666; font-family :Arial,Helvetica,sans-serif; font-size: xx-small;} - ''' - - keep_only_tags = [ + extra_css = ''' + h1{font-family :Arial,Helvetica,sans-serif; font-size:large; } + h2{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#444444;} + .story{font-family :Arial,Helvetica,sans-serif; font-size: x-small;} + .byline{color:#666666; font-family :Arial,Helvetica,sans-serif; font-size: xx-small;} + a{color:#234B7B; } + .imageExtras{color:#666666; font-family :Arial,Helvetica,sans-serif; font-size: xx-small;} + ''' + + keep_only_tags = [ dict(name='div', attrs={'class':'storyHead'}) ,dict(name='div', attrs={'class':'story' }) - #,dict(name='div', attrs={'class':['slideshowHD gutterUnder',"twoThirds gutter","caption" ] }) - ] - remove_tags = [dict(name='div', attrs={'class':['related_links_inline',"imgindex","next","prev","gutterUnder"]})] - - feeds = [ + #,dict(name='div', attrs={'class':['slideshowHD gutterUnder',"twoThirds gutter","caption" ] }) + ] + remove_tags = [dict(name='div', attrs={'class':['related_links_inline',"imgindex","next","prev","gutterUnder",'ssImgHide','imageExtras','ssImg hide']}) + #,dict(name='div', attrs={'class':['toolshideoneQuarter']}) + ,dict(name='span', attrs={'class':['num','placeComment']}) + ] + + feeds = [ (u'UK News' , u'http://www.telegraph.co.uk/news/uknews/rss' ) ,(u'World News' , u'http://www.telegraph.co.uk/news/worldnews/rss' ) ,(u'Politics' , u'http://www.telegraph.co.uk/news/newstopics/politics/rss' ) @@ -45,15 +48,27 @@ class TelegraphUK(BasicNewsRecipe): ,(u'Earth News' , u'http://www.telegraph.co.uk/earth/earthnews/rss' ) ,(u'Comment' , u'http://www.telegraph.co.uk/comment/rss' ) ,(u'How about that?', u'http://www.telegraph.co.uk/news/newstopics/howaboutthat/rss' ) - ] + ] def get_article_url(self, article): - + url = article.get('guid', None) - + if 'picture-galleries' in url or 'pictures' in url or 'picturegalleries' in url : url = None - + return url - + + def postprocess_html(self,soup,first): + + for bylineTag in soup.findAll(name='div', attrs={'class':'byline'}): + for pTag in bylineTag.findAll(name='p'): + if getattr(pTag.contents[0],"Comments",True): + pTag.extract() + return soup + + + + + diff --git a/resources/recipes/the_gazette.recipe b/resources/recipes/the_gazette.recipe deleted file mode 100644 index 19afff986e..0000000000 --- a/resources/recipes/the_gazette.recipe +++ /dev/null @@ -1,22 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - -class The_Gazette(BasicNewsRecipe): - - cover_url = 'file:///D:/Documents/Pictures/Covers/The_Gazette.jpg' - title = u'The Gazette' - __author__ = 'Jerry Clapperton' - description = 'Montreal news in English' - language = 'en_CA' - - oldest_article = 7 - max_articles_per_feed = 20 - use_embedded_content = False - remove_javascript = True - no_stylesheets = True - encoding = 'utf-8' - - keep_only_tags = [dict(name='div', attrs={'id':['storyheader','page1']})] - - extra_css = '.headline {font-size: x-large;} \n .fact {padding-top: 10pt}' - - feeds = [(u'News', u'http://feeds.canada.com/canwest/F297'), (u'Opinion', u'http://feeds.canada.com/canwest/F7383'), (u'Arts', u'http://feeds.canada.com/canwest/F7366'), (u'Life', u'http://rss.canada.com/get/?F6934'), (u'Business', u'http://feeds.canada.com/canwest/F6939'), (u'Travel', u'http://rss.canada.com/get/?F6938'), (u'Health', u'http://feeds.canada.com/canwest/F7397'), (u'Technology', u'http://feeds.canada.com/canwest/F7411')] diff --git a/resources/recipes/the_new_republic.recipe b/resources/recipes/the_new_republic.recipe index 482dba1af0..59ccef3607 100644 --- a/resources/recipes/the_new_republic.recipe +++ b/resources/recipes/the_new_republic.recipe @@ -9,6 +9,7 @@ class The_New_Republic(BasicNewsRecipe): oldest_article = 7 max_articles_per_feed = 100 + no_stylesheets = True remove_tags = [ dict(name='div', attrs={'class':['print-logo', 'print-site_name', 'img-left', 'print-source_url']}), @@ -21,14 +22,15 @@ class The_New_Republic(BasicNewsRecipe): ('Economy', 'http://www.tnr.com/rss/articles/Economy'), ('Environment and Energy', 'http://www.tnr.com/rss/articles/Environment-%2526-Energy'), ('Health Care', 'http://www.tnr.com/rss/articles/Health-Care'), - ('Urban Policy', 'http://www.tnr.com/rss/articles/Urban-Policy'), + ('Metro Policy', 'http://www.tnr.com/rss/articles/Metro-Policy'), ('World', 'http://www.tnr.com/rss/articles/World'), ('Film', 'http://www.tnr.com/rss/articles/Film'), ('Books', 'http://www.tnr.com/rss/articles/books'), + ('The Book', 'http://www.tnr.com/rss/book'), + ('Jonathan Chait', 'http://www.tnr.com/rss/blogs/Jonathan-Chait'), ('The Plank', 'http://www.tnr.com/rss/blogs/The-Plank'), ('The Treatment', 'http://www.tnr.com/rss/blogs/The-Treatment'), ('The Spine', 'http://www.tnr.com/rss/blogs/The-Spine'), - ('The Stash', 'http://www.tnr.com/rss/blogs/The-Stash'), ('The Vine', 'http://www.tnr.com/rss/blogs/The-Vine'), ('The Avenue', 'http://www.tnr.com/rss/blogs/The-Avenue'), ('William Galston', 'http://www.tnr.com/rss/blogs/William-Galston'), @@ -40,3 +42,4 @@ class The_New_Republic(BasicNewsRecipe): def print_version(self, url): return url.replace('http://www.tnr.com/', 'http://www.tnr.com/print/') + diff --git a/resources/recipes/theluminouslandscape.recipe b/resources/recipes/theluminouslandscape.recipe new file mode 100644 index 0000000000..ac046dd3ef --- /dev/null +++ b/resources/recipes/theluminouslandscape.recipe @@ -0,0 +1,37 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +luminous-landscape.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class theluminouslandscape(BasicNewsRecipe): + title = 'The Luminous Landscape' + __author__ = 'Darko Miletic' + description = 'A photography news and information website in the form of a weblog with multiple authors who write on a variety of photography and art-photography related issues.' + publisher = 'The Luminous Landscape ' + category = 'news, blog, photograph, international' + oldest_article = 15 + max_articles_per_feed = 100 + no_stylesheets = True + remove_empty_feeds = True + use_embedded_content = True + encoding = 'cp1252' + language = 'en' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher': publisher + , 'language' : language + } + + feeds = [(u"What's new", u'http://www.luminous-landscape.com/whatsnew/rssfeed.php')] + remove_tags = [dict(name=['object','link','iframe'])] + + def preprocess_html(self, soup): + return self.adeify_images(soup) + + diff --git a/resources/recipes/theonlinephotographer.recipe b/resources/recipes/theonlinephotographer.recipe new file mode 100644 index 0000000000..2ff8af518a --- /dev/null +++ b/resources/recipes/theonlinephotographer.recipe @@ -0,0 +1,41 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +theonlinephotographer.typepad.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class theonlinephotographer(BasicNewsRecipe): + title = 'The Online Photographer' + __author__ = 'Darko Miletic' + description = 'A photography news and information website in the form of a weblog with multiple authors who write on a variety of photography and art-photography related issues.' + publisher = 'The Online Photographer' + category = 'news, blog, photograph, international' + oldest_article = 15 + max_articles_per_feed = 100 + no_stylesheets = True + remove_empty_feeds = True + use_embedded_content = False + encoding = 'utf8' + language = 'en' + + extra_css = ' body{font-family: Georgia,"Times New Roman",serif } ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher': publisher + , 'language' : language + } + + feeds = [(u'Articles', u'http://feeds.feedburner.com/typepad/ZSjz')] + remove_tags_before = dict(name='h3',attrs={'class':'entry-header'}) + remove_tags_after = dict(name='div',attrs={'class':'entry-footer'}) + remove_tags = [dict(name=['object','link','iframe'])] + + def preprocess_html(self, soup): + return self.adeify_images(soup) + + diff --git a/resources/recipes/tidbits.recipe b/resources/recipes/tidbits.recipe new file mode 100644 index 0000000000..702c65e9e4 --- /dev/null +++ b/resources/recipes/tidbits.recipe @@ -0,0 +1,53 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +db.tidbits.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class TidBITS(BasicNewsRecipe): + title = 'TidBITS: Mac News for the Rest of Us' + __author__ = 'Darko Miletic' + description = 'Insightful news, reviews, and analysis of the Macintosh and Internet worlds' + publisher = 'TidBITS Publishing Inc.' + category = 'news, Apple, Macintosh, IT, Internet' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + encoding = 'utf-8' + use_embedded_content = True + language = 'en' + remove_empty_feeds = True + masthead_url = 'http://db.tidbits.com/images/tblogo9.gif' + extra_css = ' body{font-family: Georgia,"Times New Roman",Times,serif} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_attributes = ['width','height'] + remove_tags = [dict(name='small')] + remove_tags_after = dict(name='small') + + feeds = [ + (u'Business Apps' , u'http://db.tidbits.com/feeds/business.rss' ) + ,(u'Entertainment' , u'http://db.tidbits.com/feeds/entertainment.rss') + ,(u'External Links' , u'http://db.tidbits.com/feeds/links.rss' ) + ,(u'Home Mac' , u'http://db.tidbits.com/feeds/home.rss' ) + ,(u'Inside TidBITS' , u'http://db.tidbits.com/feeds/inside.rss' ) + ,(u'iPod & iPhone' , u'http://db.tidbits.com/feeds/ipod-iphone.rss' ) + ,(u'Just for Fun' , u'http://db.tidbits.com/feeds/fun.rss' ) + ,(u'Macs & Mac OS X' , u'http://db.tidbits.com/feeds/macs.rss' ) + ,(u'Media Creation' , u'http://db.tidbits.com/feeds/creative.rss' ) + ,(u'Networking & Communications', u'http://db.tidbits.com/feeds/net.rss' ) + ,(u'Opinion & Editorial' , u'http://db.tidbits.com/feeds/opinion.rss' ) + ,(u'Support & Problem Solving' , u'http://db.tidbits.com/feeds/support.rss' ) + ,(u'Safe Computing' , u'http://db.tidbits.com/feeds/security.rss' ) + ,(u'Tech News' , u'http://db.tidbits.com/feeds/tech.rss' ) + ,(u'Software Watchlist' , u'http://db.tidbits.com/feeds/watchlist.rss' ) + ] diff --git a/resources/recipes/toronto_sun.recipe b/resources/recipes/toronto_sun.recipe index 996b27c1bd..6fd9438c42 100644 --- a/resources/recipes/toronto_sun.recipe +++ b/resources/recipes/toronto_sun.recipe @@ -10,7 +10,7 @@ from calibre.web.feeds.news import BasicNewsRecipe class TorontoSun(BasicNewsRecipe): title = 'Toronto SUN' - __author__ = 'Darko Miletic' + __author__ = 'Darko Miletic and Sujata Raman' description = 'News from Canada' publisher = 'Toronto Sun' category = 'news, politics, Canada' @@ -21,25 +21,50 @@ class TorontoSun(BasicNewsRecipe): encoding = 'cp1252' language = 'en_CA' - conversion_options = { - 'comment' : description - , 'tags' : category - , 'publisher' : publisher - , 'language' : language - } + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } - keep_only_tags =[ - dict(name='div', attrs={'class':'articleHead'}) - ,dict(name='div', attrs={'id':'channelContent'}) - ] - remove_tags = [ - dict(name='div',attrs={'class':['leftBox','bottomBox clear','bottomBox','breadCrumb']}) - ,dict(name=['link','iframe','object']) - ,dict(name='a',attrs={'rel':'swap'}) - ,dict(name='ul',attrs={'class':'tabs dl contentSwap'}) - ] + keep_only_tags = [ + dict(name='div', attrs={'class':['articleHead','leftBox']}) + ,dict(name='div', attrs={'id':'channelContent'}) + ,dict(name='div', attrs={'id':'rotateBox'}) + ,dict(name='img') + ] + remove_tags = [ + dict(name='div',attrs={'class':['bottomBox clear','bottomBox','breadCrumb','articleControls thin','articleControls thin short','extraVideoList']}) + ,dict(name='h2',attrs={'class':'microhead'}) + ,dict(name='div',attrs={'id':'commentsBottom'}) + ,dict(name=['link','iframe','object']) + ,dict(name='a',attrs={'rel':'swap'}) + ,dict(name='a',attrs={'href':'/news/haiti/'}) + ,dict(name='ul',attrs={'class':['tabs dl contentSwap','micrositeNav clearIt hList','galleryNav rotateNav']}) + ] + + remove_tags_after = [ + dict(name='div',attrs={'class':'bottomBox clear'}) + ,dict(name='div',attrs={'class':'rotateBox'}) + ,dict(name='div',attrs={'id':'contentSwap'}) + ] + + + extra_css = ''' + h1{font-family :Arial,Helvetica,sans-serif; font-size:large;} + h2{font-family :Arial,Helvetica,sans-serif; font-size:medium; color:#666666;} + h3{font-family :Arial,Helvetica,sans-serif; font-size:medium; color:#000000;} + p{font-family :Arial,Helvetica,sans-serif; font-size:x-small;} + .bold{font-family :Arial,Helvetica,sans-serif; font-size: xx-small;color:#444444;margin-left: 0px;} + .subheading{font-family :Arial,Helvetica,sans-serif; font-size:medium; color:#000000; font-weight: bold;} + .byline{color:#666666; font-family :Arial,Helvetica,sans-serif; font-size: xx-small;} + .byline span{color:#666666; font-family :Arial,Helvetica,sans-serif; font-size: xx-small; text-transform: uppercase;} + .updated{font-family :Arial,Helvetica,sans-serif; font-size: xx-small;} + .galleryCaption{font-family :Arial,Helvetica,sans-serif; font-size: x-small;} + .galleryUpdated{font-family :Arial,Helvetica,sans-serif; font-size: x-small;} + ''' - remove_tags_after = dict(name='div',attrs={'class':'bottomBox clear'}) feeds = [ (u'News' , u'http://www.torontosun.com/news/rss.xml' ) @@ -48,3 +73,19 @@ class TorontoSun(BasicNewsRecipe): ,(u'World' , u'http://www.torontosun.com/news/world/rss.xml' ) ,(u'Money' , u'http://www.torontosun.com/money/rss.xml' ) ] + + def preprocess_html(self, soup): + ##To fetch images from the specified source + for img in soup.findAll('img', src=True): + url= img.get('src').split('?')[-1].partition('=')[-1] + if url: + img['src'] = url.split('&')[0].partition('=')[0] + img['width'] = url.split('&')[-1].partition('=')[-1].split('x')[0] + img['height'] =url.split('&')[-1].partition('=')[-1].split('x')[1] + return soup + + + + + + diff --git a/resources/recipes/tuttosport.recipe b/resources/recipes/tuttosport.recipe new file mode 100644 index 0000000000..cc1f27e73a --- /dev/null +++ b/resources/recipes/tuttosport.recipe @@ -0,0 +1,66 @@ +#!/usr/bin/env python +__license__ = 'GPL v3' +__author__ = 'Lorenzo Vigentini' +__copyright__ = '2009, Lorenzo Vigentini ' +__version__ = 'v1.01' +__date__ = '30, January 2010' +__description__ = 'Sport daily news from Italy' + +'''www.tuttosport.com''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class tuttosport(BasicNewsRecipe): + author = 'Lorenzo Vigentini' + description = 'Sport daily news from Italy' + + cover_url = 'http://www.tuttosport.com/res/imgs/logo_TuttoSport.png' + title = 'Tuttosport' + publisher = 'Nuova Editoriale Sportiva S.r.l' + category = 'Sport News' + + language = 'it' + timefmt = '[%a, %d %b, %Y]' + + oldest_article = 2 + max_articles_per_feed = 20 + use_embedded_content = False + recursion = 10 + + remove_javascript = True + no_stylesheets = True + + def print_version(self,url): + segments = url.split('/') + printURL = '/'.join(segments[0:10]) + '?print' + return printURL + + keep_only_tags = [ + dict(name='h2', attrs={'class':'tit_Article'}), + dict(name='div', attrs={'class':['box_Img img_L ','txt_ArticleAbstract','txt_Article txtBox_cms']}) + ] + + feeds = [ + (u'Primo piano',u'http://www.tuttosport.com/rss/primo_piano.xml'), + (u'Cronanca',u'http://www.tuttosport.com/rss/Cronaca-205.xml'), + (u'Lettere al direttore',u'http://blog.tuttosport.com/direttore/feed'), + (u'Calcio',u'http://www.tuttosport.com/rss/Calcio-3.xml'), + (u'Speciale Derby',u'http://www.tuttosport.com/rss/Speciale-derby-310.xml'), + (u'Formula 1',u'hhttp://www.tuttosport.com/rss/Formula-1-7.xml'), + (u'Moto',u'hhttp://www.tuttosport.com/rss/Moto-8.xml'), + (u'Basket',u'http://www.tuttosport.com/rss/Basket-9.xml'), + (u'Altri Sport',u'http://www.tuttosport.com/rss/Altri-Sport-2.xml'), + (u'Tuttosport League',u'http://www.tuttosport.com/rss/Tuttosport-League-245.xml'), + (u'Scommesse',u'http://www.tuttosport.com/rss/Scommesse-286.xml') + ] + + extra_css = ''' + body {font-family: Arial, Verdana, sans-serif; margin-bottom: 3em;} + h1 {color:#9C3A0B;font-family:Arial,Helvetica,sans-serif; font-size:20px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:20px;} + h3 {color:#9C3A0B;font-family:Arial,Helvetica,sans-serif; font-size:15px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:15px;} + h2.tit_Article {color:#9C3A0B;margin: 15px 8px 0; margin-bottom: 1px; border-bottom: 3px solid;} + .txt_ArticleAbstract {color:#4080AE;clear: both; margin: 3px 8px;} + .txt_Article {clear: both; margin: 8px 8px 12px;} + .txt_Author {float: right;} + .txt_ArticleAuthor {clear: both; margin: 8px;} + ''' diff --git a/resources/recipes/variety.recipe b/resources/recipes/variety.recipe index 7321e0ad33..bed04cc55d 100644 --- a/resources/recipes/variety.recipe +++ b/resources/recipes/variety.recipe @@ -1,7 +1,5 @@ -#!/usr/bin/env python - __license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' +__copyright__ = '2009-2010, Darko Miletic ' ''' www.variety.com ''' @@ -20,8 +18,10 @@ class Variety(BasicNewsRecipe): publisher = 'Red Business Information' category = 'Entertainment Industry News, Daily Variety, Movie Reviews, TV, Awards, Oscars, Cannes, Box Office, Hollywood' language = 'en' + masthead_url = 'http://a330.g.akamai.net/7/330/23382/20090528190853/www.variety.com/graphics/variety/Variety_logo_green_tm.gif' + extra_css = ' body{font-family: Georgia,"Times New Roman",Times,Courier,serif } img{margin-bottom: 1em} ' - conversion_options = { + conversion_options = { 'comments' : description ,'tags' : category ,'language' : language @@ -31,7 +31,7 @@ class Variety(BasicNewsRecipe): remove_tags = [dict(name=['object','link','map'])] keep_only_tags = [dict(name='div', attrs={'id':'article'})] - + feeds = [(u'News & Articles', u'http://feeds.feedburner.com/variety/headlines' )] def print_version(self, url): @@ -41,6 +41,6 @@ class Variety(BasicNewsRecipe): catid = catidr.partition('&')[0] return 'http://www.variety.com/index.asp?layout=print_story&articleid=' + artid + '&categoryid=' + catid - def get_article_url(self, article): - return article.get('feedburner_origlink', None) + def preprocess_html(self, soup): + return self.adeify_images(soup) diff --git a/resources/recipes/winter_olympics.recipe b/resources/recipes/winter_olympics.recipe new file mode 100644 index 0000000000..a7062d7930 --- /dev/null +++ b/resources/recipes/winter_olympics.recipe @@ -0,0 +1,95 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2010, Starson17' +''' +www.nbcolympics.com +''' +from calibre.web.feeds.news import BasicNewsRecipe + +class Olympics_2010(BasicNewsRecipe): + title = u'NBC Olympics 2010' + __author__ = 'Starson17' + description = 'Olympics 2010' + cover_url = 'http://www.digitaljournal.com/img/1/1/2/1/i/4/7/6/o/WinterOlympics2010-logo.jpg' + publisher = 'Olympics 2010' + tags = 'Olympics news' + language = 'en' + use_embedded_content = False + no_stylesheets = True + remove_javascript = True + # recursions = 3 + oldest_article = 7 + max_articles_per_feed = 10 + + keep_only_tags = [dict(name='div', attrs={'class':['Article ','ArticleGallery']}), + ] + + remove_tags = [dict(name='div', attrs={'id':['RelatedTagsBox','ShareBox']}), + dict(name='div', attrs={'class':['DateUtilities','PhotoGallery BoxRight','Frame','ToolBox']}), + ] + + # RSS feeds are at: http://www.nbcolympics.com/rss/index.html + feeds = [ + ('NBCOlympics.com - News', 'http://www.nbcolympics.com/rss/newscenter/mostpopular.xml'), + ('NBCOlympics.com - News - Top Stories', 'http://www.nbcolympics.com/rss/newscenter/topstories.xml'), + ('NBCOlympics.com - News - Latest Headlines', 'http://www.nbcolympics.com/rss/newscenter/latestnews.xml'), + # ('NBCOlympics.com - Photos', 'http://www.nbcolympics.com/rss/photos/mostpopular.xml'), + # ('NBCOlympics.com - Photos - Editorial Picks', 'http://www.nbcolympics.com/rss/photos/editorialpicks.xml'), + # ('NBCOlympics.com - Photos - Latest Slideshows', 'http://www.nbcolympics.com/rss/photos/latestslideshows.xml'), + ('NBCOlympics.com - Team USA - Latest news', 'http://www.nbcolympics.com/rss/countries/team-usa/index.xml'), + # ('NBCOlympics.com - Team USA - Latest Slideshows', 'http://www.nbcolympics.com/rss/countries/team-usa/photos/index.xml'), + # ('NBCOlympics.com - Team USA - Video', 'http://www.nbcolympics.com/rss/countries/team-usa/video/index.xml'), + # ('NBCOlympics.com - Alpine Skiing - Most Popular News', 'http://www.nbcolympics.com/rss/sport=AS/mostpopular.xml'), + # ('NBCOlympics.com - Alpine Skiing - Top News', 'http://www.nbcolympics.com/rss/sport=AS/topnews.xml'), + ('NBCOlympics.com - Alpine Skiing - Latest News', 'http://www.nbcolympics.com/rss/sport=AS/latestnews.xml'), + # ('NBCOlympics.com - Biathlon - Most Popular News', 'http://www.nbcolympics.com/rss/sport=BT/mostpopular.xml'), + # ('NBCOlympics.com - Biathlon - Top News', 'http://www.nbcolympics.com/rss/sport=BT/topnews.xml'), + ('NBCOlympics.com - Biathlon - Latest News', 'http://www.nbcolympics.com/rss/sport=BT/latestnews.xml'), + # ('NBCOlympics.com - Bobsled - Most Popular News', 'http://www.nbcolympics.com/rss/sport=BS/mostpopular.xml'), + # ('NBCOlympics.com - Bobsled - Top News', 'http://www.nbcolympics.com/rss/sport=BS/topnews.xml'), + ('NBCOlympics.com - Bobsled - Latest News', 'http://www.nbcolympics.com/rss/sport=BS/latestnews.xml'), + # ('NBCOlympics.com - Cross-Country - Most Popular News', 'http://www.nbcolympics.com/rss/sport=CC/mostpopular.xml'), + # ('NBCOlympics.com - Cross-Country - Top News', 'http://www.nbcolympics.com/rss/sport=CC/topnews.xml'), + ('NBCOlympics.com - Cross-Country - Latest News', 'http://www.nbcolympics.com/rss/sport=CC/latestnews.xml'), + # ('NBCOlympics.com - Curling - Most Popular News', 'http://www.nbcolympics.com/rss/sport=CU/mostpopular.xml'), + # ('NBCOlympics.com - Curling - Top News', 'http://www.nbcolympics.com/rss/sport=CU/topnews.xml'), + ('NBCOlympics.com - Curling - Latest News', 'http://www.nbcolympics.com/rss/sport=CU/latestnews.xml'), + # ('NBCOlympics.com - Figure Skating - Most Popular News', 'http://www.nbcolympics.com/rss/sport=FS/mostpopular.xml'), + # ('NBCOlympics.com - Figure Skating - Top News', 'http://www.nbcolympics.com/rss/sport=FS/topnews.xml'), + ('NBCOlympics.com - Figure Skating - Latest News', 'http://www.nbcolympics.com/rss/sport=FS/latestnews.xml'), + # ('NBCOlympics.com - Freestyle Skiing - Most Popular News', 'http://www.nbcolympics.com/rss/sport=FR/mostpopular.xml'), + # ('NBCOlympics.com - Freestyle Skiing - Top News', 'http://www.nbcolympics.com/rss/sport=FR/topnews.xml'), + ('NBCOlympics.com - Freestyle Skiing - Latest News', 'http://www.nbcolympics.com/rss/sport=FR/latestnews.xml'), + # ('NBCOlympics.com - Hockey - Most Popular News', 'http://www.nbcolympics.com/rss/sport=IH/mostpopular.xml'), + # ('NBCOlympics.com - Hockey - Top News', 'http://www.nbcolympics.com/rss/sport=IH/topnews.xml'), + ('NBCOlympics.com - Hockey - Latest News', 'http://www.nbcolympics.com/rss/sport=IH/latestnews.xml'), + # ('NBCOlympics.com - Luge - Most Popular News', 'http://www.nbcolympics.com/rss/sport=LG/mostpopular.xml'), + # ('NBCOlympics.com - Luge - Top News', 'http://www.nbcolympics.com/rss/sport=LG/topnews.xml'), + ('NBCOlympics.com - Luge - Latest News', 'http://www.nbcolympics.com/rss/sport=LG/latestnews.xml'), + # ('NBCOlympics.com - Nordic Combined - Most Popular News', 'http://www.nbcolympics.com/rss/sport=NC/mostpopular.xml'), + # ('NBCOlympics.com - Nordic Combined - Top News', 'http://www.nbcolympics.com/rss/sport=NC/topnews.xml'), + ('NBCOlympics.com - Nordic Combined - Latest News', 'http://www.nbcolympics.com/rss/sport=NC/latestnews.xml'), + # ('NBCOlympics.com - Short Track - Most Popular News', 'http://www.nbcolympics.com/rss/sport=ST/mostpopular.xml'), + # ('NBCOlympics.com - Short Track - Top News', 'http://www.nbcolympics.com/rss/sport=ST/topnews.xml'), + ('NBCOlympics.com - Short Track - Latest News', 'http://www.nbcolympics.com/rss/sport=ST/latestnews.xml'), + # ('NBCOlympics.com - Skeleton - Most Popular News', 'http://www.nbcolympics.com/rss/sport=SN/mostpopular.xml'), + # ('NBCOlympics.com - Skeleton - Top News', 'http://www.nbcolympics.com/rss/sport=SN/topnews.xml'), + ('NBCOlympics.com - Skeleton - Latest News', 'http://www.nbcolympics.com/rss/sport=SN/latestnews.xml'), + # ('NBCOlympics.com - Ski Jumping - Most Popular News', 'http://www.nbcolympics.com/rss/sport=SJ/mostpopular.xml'), + # ('NBCOlympics.com - Ski Jumping - Top News', 'http://www.nbcolympics.com/rss/sport=SJ/topnews.xml'), + ('NBCOlympics.com - Ski Jumping - Latest News', 'http://www.nbcolympics.com/rss/sport=SJ/latestnews.xml'), + # ('NBCOlympics.com - Snowboarding - Most Popular News', 'http://www.nbcolympics.com/rss/sport=SB/mostpopular.xml'), + # ('NBCOlympics.com - Snowboarding - Top News', 'http://www.nbcolympics.com/rss/sport=SB/topnews.xml'), + ('NBCOlympics.com - Snowboarding - Latest News', 'http://www.nbcolympics.com/rss/sport=SB/latestnews.xml'), + # ('NBCOlympics.com - Speed Skating - Most Popular News', 'http://www.nbcolympics.com/rss/sport=AS/mostpopular.xml'), + # ('NBCOlympics.com - Speed Skating - Top News', 'http://www.nbcolympics.com/rss/sport=AS/topnews.xml'), + ('NBCOlympics.com - Speed Skating - Latest News', 'http://www.nbcolympics.com/rss/sport=AS/latestnews.xml'), + ] + + extra_css = ''' + h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} + h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} + p{font-family:Arial,Helvetica,sans-serif;font-size:small;} + body{font-family:Helvetica,Arial,sans-serif;font-size:small;} + ''' diff --git a/resources/recipes/wired.recipe b/resources/recipes/wired.recipe index e7395a9ada..33577447cc 100644 --- a/resources/recipes/wired.recipe +++ b/resources/recipes/wired.recipe @@ -20,6 +20,7 @@ class Wired(BasicNewsRecipe): no_stylesheets = True encoding = 'utf-8' use_embedded_content = False + masthead_url = 'http://www.wired.com/images/home/wired_logo.gif' language = 'en' extra_css = ' body{font-family: sans-serif} .entryDescription li {display: inline; list-style-type: none} ' index = 'http://www.wired.com/magazine/' @@ -38,14 +39,34 @@ class Wired(BasicNewsRecipe): dict(name=['object','embed','iframe','link']) ,dict(name='div', attrs={'class':['podcast_storyboard','tweetmeme_button']}) ] + remove_attributes = ['height','width'] - #feeds = [(u'Articles' , u'http://www.wired.com/magazine/feed/' )] - def parse_index(self): totalfeeds = [] - soup = self.index_to_soup(self.index) + soup = self.index_to_soup(self.index) + majorf = soup.find('div',attrs={'class':'index'}) + if majorf: + pfarticles = [] + firsta = majorf.find(attrs={'class':'spread-header'}) + if firsta: + pfarticles.append({ + 'title' :self.tag_to_string(firsta.a) + ,'date' :strftime(self.timefmt) + ,'url' :'http://www.wired.com' + firsta.a['href'] + ,'description':'' + }) + for itt in majorf.findAll('li'): + itema = itt.find('a',href=True) + if itema: + pfarticles.append({ + 'title' :self.tag_to_string(itema) + ,'date' :strftime(self.timefmt) + ,'url' :'http://www.wired.com' + itema['href'] + ,'description':'' + }) + totalfeeds.append(('Cover', pfarticles)) features = soup.find('div',attrs={'id':'my-glider'}) if features: farticles = [] diff --git a/resources/recipes/wired_daily.recipe b/resources/recipes/wired_daily.recipe new file mode 100644 index 0000000000..f06d28796e --- /dev/null +++ b/resources/recipes/wired_daily.recipe @@ -0,0 +1,44 @@ +#!/usr/bin/env python +__license__ = 'GPL v3' +__docformat__ = 'restructuredtext en' + + +from calibre.web.feeds.news import BasicNewsRecipe + +class Wired_Daily(BasicNewsRecipe): + + title = 'Wired Daily Edition' + __author__ = 'Kovid Goyal' + description = 'Technology news' + timefmt = ' [%Y%b%d %H%M]' + language = 'en' + + no_stylesheets = True + + remove_tags_before = dict(name='div', id='content') + remove_tags = [dict(id=['social_tools', 'outerWrapper', 'sidebar', + 'footer', 'advertisement', 'blog_subscription_unit', + 'brightcove_component']), + {'class':'entryActions'}, + dict(name=['noscript', 'script'])] + + feeds = [ + ('Top News', 'http://feeds.wired.com/wired/index'), + ('Culture', 'http://feeds.wired.com/wired/culture'), + ('Software', 'http://feeds.wired.com/wired/software'), + ('Mac', 'http://feeds.feedburner.com/cultofmac/bFow'), + ('Gadgets', 'http://feeds.wired.com/wired/gadgets'), + ('Cars', 'http://feeds.wired.com/wired/cars'), + ('Entertainment', 'http://feeds.wired.com/wired/entertainment'), + ('Gaming', 'http://feeds.wired.com/wired/gaming'), + ('Science', 'http://feeds.wired.com/wired/science'), + ('Med Tech', 'http://feeds.wired.com/wired/medtech'), + ('Politics', 'http://feeds.wired.com/wired/politics'), + ('Tech Biz', 'http://feeds.wired.com/wired/techbiz'), + ('Commentary', 'http://feeds.wired.com/wired/commentary'), + ] + + def print_version(self, url): + return url.replace('http://www.wired.com/', 'http://www.wired.com/print/') + + diff --git a/resources/recipes/wsj_free.recipe b/resources/recipes/wsj_free.recipe index b190f43849..e29bfe3dde 100644 --- a/resources/recipes/wsj_free.recipe +++ b/resources/recipes/wsj_free.recipe @@ -215,7 +215,7 @@ class WSJ(BasicNewsRecipe): # first, check if there is an h3 tag which provides a section name stag = divtag.find('h3') if stag: - if stag.parent['class'] == 'dynamic': + if stag.parent.get('class', '') == 'dynamic': # a carousel of articles is too complex to extract a section name # for each article, so we'll just call the section "Carousel" section_name = 'Carousel' diff --git a/resources/tanea.recipe b/resources/tanea.recipe new file mode 100644 index 0000000000..4e6cd09c3f --- /dev/null +++ b/resources/tanea.recipe @@ -0,0 +1,30 @@ +from calibre.web.feeds.recipes import BasicNewsRecipe + +class TaNea(BasicNewsRecipe): + title = u'Ta Nea' + __author__ = 'Pan' + oldest_article = 1 + max_articles_per_feed = 100 + no_stylesheets = True + + remove_tags_before = dict(name='div',attrs={'id':'print-body'}) + remove_tags_after = dict(name='div',attrs={'id':'text'}) + + feeds = [ + (u'\xce\x95\xce\xbb\xce\xbb\xce\xac\xce\xb4\xce\xb1', + u'http://www.tanea.gr/default.asp?pid=66&la=1'), + (u'\xce\x9a\xcf\x8c\xcf\x83\xce\xbc\xce\xbf\xcf\x82', + u'http://www.tanea.gr/default.asp?pid=67&la=1'), + (u'\xce\x9f\xce\xb9\xce\xba\xce\xbf\xce\xbd\xce\xbf\xce\xbc\xce\xaf\xce\xb1', + u'http://www.tanea.gr/default.asp?pid=68&la=1'), + (u'\xce\xa0\xce\xbf\xce\xbb\xce\xb9\xcf\x84\xce\xb9\xcf\x83\xce\xbc\xcf\x8c\xcf\x82', + u'http://www.tanea.gr/default.asp?pid=69&la=1'), + (u'\xce\x93\xce\xbd\xcf\x8e\xce\xbc\xce\xb5\xcf\x82', + u'http://www.tanea.gr/default.asp?pid=79&la=1'), + (u'\xce\xa1\xce\xb9\xcf\x80\xce\xad\xcf\x82', + u'http://www.tanea.gr/default.asp?pid=80&la=1'), + (u'\xce\x91\xce\xb9\xcf\x87\xce\xbc\xce\xad\xcf\x82', + u'http://www.tanea.gr/default.asp?pid=81&la=1')] + + def print_version(self, url): + return url.replace('http://www.tanea.gr/default.asp?pid=2', 'http://www.tanea.gr/default.asp?pid=96') diff --git a/resources/viewer/bookmarks.js b/resources/viewer/bookmarks.js index c6f59414ab..da3c0be946 100644 --- a/resources/viewer/bookmarks.js +++ b/resources/viewer/bookmarks.js @@ -20,37 +20,8 @@ function selector(elem) { return sel; } -function find_closest_enclosing_block(top) { - var START = top-1000; - var STOP = top; - var matches = []; - var elem, temp; - var width = 1000; - - for (y = START; y < STOP; y += 20) { - for ( x = 0; x < width; x += 20) { - elem = document.elementFromPoint(x, y); - try { - elem = $(elem); - temp = elem.offset().top - matches.push(elem); - if (Math.abs(temp - START) < 25) { y = STOP; break} - } catch(error) {} - } - } - - var miny = Math.abs(matches[0].offset().top - START), min_elem = matches[0]; - - for (i = 1; i < matches.length; i++) { - elem = matches[i]; - temp = Math.abs(elem.offset().top - START); - if ( temp < miny ) { miny = temp; min_elem = elem; } - } - return min_elem; -} - -function calculate_bookmark(y) { - var elem = find_closest_enclosing_block(y); +function calculate_bookmark(y, node) { + var elem = $(node); var sel = selector(elem); var ratio = (y - elem.offset().top)/elem.height(); if (ratio > 1) { ratio = 1; } diff --git a/setup/extensions.py b/setup/extensions.py index 8db7b32a5e..1f51de67f2 100644 --- a/setup/extensions.py +++ b/setup/extensions.py @@ -399,7 +399,7 @@ class BuildPDF2XML(Command): objects.append(obj) if self.newer(dest, objects): - cmd = ['g++', '-g', '-o', dest]+objects+['-lpoppler', '-lMagickWand', + cmd = ['g++', '-ggdb', '-o', dest]+objects+['-lpoppler', '-lMagickWand', '-lpng', '-lpthread'] if iswindows: cmd = [msvc.linker] + '/INCREMENTAL:NO /DEBUG /NODEFAULTLIB:libcmt.lib'.split() diff --git a/setup/install.py b/setup/install.py index 56546cd7d4..8424280e95 100644 --- a/setup/install.py +++ b/setup/install.py @@ -137,8 +137,20 @@ class Develop(Command): self.setup_mount_helper() self.install_files() self.run_postinstall() + self.install_env_module() self.success() + def install_env_module(self): + import distutils.sysconfig as s + libdir = s.get_python_lib(prefix=self.opts.staging_root) + if os.path.exists(libdir): + path = os.path.join(libdir, 'init_calibre.py') + self.info('Installing calibre environment module: '+path) + with open(path, 'wb') as f: + f.write(HEADER.format(**self.template_args())) + else: + self.warn('Cannot install calibre environment module to: '+libdir) + def setup_mount_helper(self): def warn(): self.warn('Failed to compile mount helper. Auto mounting of', @@ -180,13 +192,20 @@ class Develop(Command): functions[typ]): self.write_template(name, mod, func) + def template_args(self): + return { + 'path':self.libdir, + 'resources':self.sharedir, + 'executables':self.bindir, + 'extensions':self.j(self.libdir, 'calibre', 'plugins') + } + def write_template(self, name, mod, func): template = COMPLETE_TEMPLATE if name == 'calibre-complete' else TEMPLATE - script = template.format( - module=mod, func=func, - path=self.libdir, resources=self.sharedir, - executables=self.bindir, - extensions=self.j(self.libdir, 'calibre', 'plugins')) + args = self.template_args() + args['module'] = mod + args['func'] = func + script = template.format(**args) path = self.j(self.staging_bindir, name) if not os.path.exists(self.staging_bindir): os.makedirs(self.staging_bindir) diff --git a/setup/installer/__init__.py b/setup/installer/__init__.py index 7c6b03ec16..82902edf76 100644 --- a/setup/installer/__init__.py +++ b/setup/installer/__init__.py @@ -15,7 +15,7 @@ class Rsync(Command): description = 'Sync source tree from development machine' - SYNC_CMD = ('rsync -avz --exclude src/calibre/plugins ' + SYNC_CMD = ('rsync -avz --delete --exclude src/calibre/plugins ' '--exclude src/calibre/manual --exclude src/calibre/trac ' '--exclude .bzr --exclude .build --exclude .svn --exclude build --exclude dist ' '--exclude "*.pyc" --exclude "*.pyo" --exclude "*.swp" --exclude "*.swo" ' diff --git a/setup/resources.py b/setup/resources.py index d40d31bbf5..977d753828 100644 --- a/setup/resources.py +++ b/setup/resources.py @@ -48,7 +48,9 @@ class Resources(Command): dest = self.j(self.RESOURCES, 'builtin_recipes.xml') if self.newer(dest, files): self.info('\tCreating builtin_recipes.xml') - open(dest, 'wb').write(serialize_builtin_recipes()) + xml = serialize_builtin_recipes() + with open(dest, 'wb') as f: + f.write(xml) dest = self.j(self.RESOURCES, 'ebook-convert-complete.pickle') files = [] diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index e5e284fb5b..0742e60229 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -378,10 +378,11 @@ def strftime(fmt, t=None): t = time.localtime() early_year = t[0] < 1900 if early_year: + replacement = 1900 if t[0]%4 == 0 else 1901 fmt = fmt.replace('%Y', '_early year hack##') t = list(t) orig_year = t[0] - t[0] = 1900 + t[0] = replacement ans = None if iswindows: if isinstance(fmt, unicode): diff --git a/src/calibre/constants.py b/src/calibre/constants.py index 67278efb25..ff8a575e26 100644 --- a/src/calibre/constants.py +++ b/src/calibre/constants.py @@ -2,7 +2,7 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __docformat__ = 'restructuredtext en' __appname__ = 'calibre' -__version__ = '0.6.36' +__version__ = '0.6.40' __author__ = "Kovid Goyal " import re diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index 218511b16f..a786eefabb 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -7,6 +7,7 @@ import os import glob from calibre.customize import FileTypePlugin, MetadataReaderPlugin, MetadataWriterPlugin from calibre.constants import numeric_version +from calibre.ebooks.metadata.archive import ArchiveExtract class HTML2ZIP(FileTypePlugin): name = 'HTML to ZIP' @@ -416,9 +417,10 @@ from calibre.devices.hanlin.driver import HANLINV3, HANLINV5, BOOX from calibre.devices.blackberry.driver import BLACKBERRY from calibre.devices.cybook.driver import CYBOOK from calibre.devices.eb600.driver import EB600, COOL_ER, SHINEBOOK, \ - POCKETBOOK360, GER2, ITALICA, ECLICTO, DBOOK, INVESBOOK + POCKETBOOK360, GER2, ITALICA, ECLICTO, DBOOK, INVESBOOK, \ + BOOQ from calibre.devices.iliad.driver import ILIAD -from calibre.devices.irexdr.driver import IREXDR1000 +from calibre.devices.irexdr.driver import IREXDR1000, IREXDR800 from calibre.devices.jetbook.driver import JETBOOK from calibre.devices.kindle.driver import KINDLE, KINDLE2, KINDLE_DX from calibre.devices.nook.driver import NOOK @@ -430,11 +432,11 @@ from calibre.devices.eslick.driver import ESLICK from calibre.devices.nuut2.driver import NUUT2 from calibre.devices.iriver.driver import IRIVER_STORY from calibre.devices.binatone.driver import README -from calibre.devices.hanvon.driver import N516 +from calibre.devices.hanvon.driver import N516, EB511 from calibre.ebooks.metadata.fetch import GoogleBooks, ISBNDB, Amazon from calibre.library.catalog import CSV_XML, EPUB_MOBI -plugins = [HTML2ZIP, PML2PMLZ, GoogleBooks, ISBNDB, Amazon, CSV_XML, EPUB_MOBI] +plugins = [HTML2ZIP, PML2PMLZ, ArchiveExtract, GoogleBooks, ISBNDB, Amazon, CSV_XML, EPUB_MOBI] plugins += [ ComicInput, EPUBInput, @@ -477,6 +479,7 @@ plugins += [ CYBOOK, ILIAD, IREXDR1000, + IREXDR800, JETBOOK, SHINEBOOK, POCKETBOOK360, @@ -500,9 +503,11 @@ plugins += [ DBOOK, INVESBOOK, BOOX, + BOOQ, EB600, README, N516, + EB511, ] plugins += [x for x in list(locals().values()) if isinstance(x, type) and \ x.__name__.endswith('MetadataReader')] diff --git a/src/calibre/devices/android/driver.py b/src/calibre/devices/android/driver.py index fd89675d91..aa4500d87b 100644 --- a/src/calibre/devices/android/driver.py +++ b/src/calibre/devices/android/driver.py @@ -20,7 +20,7 @@ class ANDROID(USBMS): VENDOR_ID = { 0x0bb4 : { 0x0c02 : [0x100], 0x0c01 : [0x100]}, 0x22b8 : { 0x41d9 : [0x216]}, - 0x18d1 : { 0x4e11 : [0x0100]}, + 0x18d1 : { 0x4e11 : [0x0100], 0x4e12: [0x0100]}, } EBOOK_DIR_MAIN = ['wordplayer/calibretransfer', 'eBooks/import', 'Books'] EXTRA_CUSTOMIZATION_MESSAGE = _('Comma separated list of directories to ' diff --git a/src/calibre/devices/eb600/driver.py b/src/calibre/devices/eb600/driver.py index 5183aae96a..12c4048b5f 100644 --- a/src/calibre/devices/eb600/driver.py +++ b/src/calibre/devices/eb600/driver.py @@ -184,3 +184,14 @@ class INVESBOOK(EB600): VENDOR_NAME = 'INVES_E6' WINDOWS_MAIN_MEM = '00INVES_E600' WINDOWS_CARD_A_MEM = '00INVES_E600' + +class BOOQ(EB600): + name = 'Booq Device Interface' + gui_name = 'Booq' + + FORMATS = ['epub', 'mobi', 'prc', 'fb2', 'pdf', 'doc', 'rtf', 'txt', 'html'] + + VENDOR_NAME = 'NETRONIX' + WINDOWS_MAIN_MEM = 'EB600' + WINDOWS_CARD_A_MEM = 'EB600' + diff --git a/src/calibre/devices/hanlin/driver.py b/src/calibre/devices/hanlin/driver.py index aee2a70fd5..e887b331aa 100644 --- a/src/calibre/devices/hanlin/driver.py +++ b/src/calibre/devices/hanlin/driver.py @@ -126,3 +126,15 @@ class BOOX(HANLINV3): EBOOK_DIR_MAIN = 'MyBooks' EBOOK_DIR_CARD_A = 'MyBooks' + + + def windows_sort_drives(self, drives): + main = drives.get('main', None) + card = drives.get('carda', None) + if card and main and card < main: + drives['main'] = card + drives['carda'] = main + + return drives + + diff --git a/src/calibre/devices/hanvon/driver.py b/src/calibre/devices/hanvon/driver.py index ea8d604dd5..d4f6e87d06 100644 --- a/src/calibre/devices/hanvon/driver.py +++ b/src/calibre/devices/hanvon/driver.py @@ -7,6 +7,7 @@ __docformat__ = 'restructuredtext en' ''' Device driver for Hanvon devices ''' +import re from calibre.devices.usbms.driver import USBMS @@ -32,3 +33,25 @@ class N516(USBMS): EBOOK_DIR_MAIN = 'e_book' SUPPORTS_SUB_DIRS = True + +class EB511(USBMS): + name = 'Elonex EB 511 driver' + gui_name = 'EB 511' + description = _('Communicate with the Elonex EB 511 eBook reader.') + author = 'Kovid Goyal' + supported_platforms = ['windows', 'osx', 'linux'] + + FORMATS = ['epub', 'html', 'pdf', 'txt'] + + VENDOR_ID = [0x45e] + PRODUCT_ID = [0xffff] + BCD = [0x0] + + MAIN_MEMORY_VOLUME_LABEL = 'EB 511 Internal Memory' + + EBOOK_DIR_MAIN = 'e_book' + SUPPORTS_SUB_DIRS = True + + OSX_MAIN_MEM_VOL_PAT = re.compile(r'/eReader') + + diff --git a/src/calibre/devices/irexdr/driver.py b/src/calibre/devices/irexdr/driver.py index dc5416ea22..63295432f5 100644 --- a/src/calibre/devices/irexdr/driver.py +++ b/src/calibre/devices/irexdr/driver.py @@ -36,3 +36,14 @@ class IREXDR1000(USBMS): EBOOK_DIR_MAIN = 'ebooks' DELETE_EXTS = ['.mbp'] SUPPORTS_SUB_DIRS = True + +class IREXDR800(IREXDR1000): + name = 'IRex Digital Reader 800 Device Interface' + description = _('Communicate with the IRex Digital Reader 800') + PRODUCT_ID = [0x002] + WINDOWS_MAIN_MEM = 'DR800' + FORMATS = ['epub', 'html', 'pdf', 'txt'] + + EBOOK_DIR_MAIN = 'Books' + DELETE_EXTS = [] + diff --git a/src/calibre/devices/prs505/driver.py b/src/calibre/devices/prs505/driver.py index a316a8dbc9..5d759be47c 100644 --- a/src/calibre/devices/prs505/driver.py +++ b/src/calibre/devices/prs505/driver.py @@ -192,17 +192,15 @@ class PRS505(CLI, Device): fix_ids(*booklists) if not os.path.exists(self._main_prefix): os.makedirs(self._main_prefix) - f = open(self._main_prefix + self.__class__.MEDIA_XML, 'wb') - booklists[0].write(f) - f.close() + with open(self._main_prefix + self.__class__.MEDIA_XML, 'wb') as f: + booklists[0].write(f) def write_card_prefix(prefix, listid): if prefix is not None and hasattr(booklists[listid], 'write'): if not os.path.exists(prefix): os.makedirs(prefix) - f = open(prefix + self.__class__.CACHE_XML, 'wb') - booklists[listid].write(f) - f.close() + with open(prefix + self.__class__.CACHE_XML, 'wb') as f: + booklists[listid].write(f) write_card_prefix(self._card_a_prefix, 1) write_card_prefix(self._card_b_prefix, 2) diff --git a/src/calibre/ebooks/__init__.py b/src/calibre/ebooks/__init__.py index d5651568fa..38a8ef3662 100644 --- a/src/calibre/ebooks/__init__.py +++ b/src/calibre/ebooks/__init__.py @@ -70,6 +70,19 @@ def extract_cover_from_embedded_svg(html, base, log): if href and os.access(path, os.R_OK): return open(path, 'rb').read() +def extract_calibre_cover(raw, base, log): + from calibre.ebooks.BeautifulSoup import BeautifulSoup + soup = BeautifulSoup(raw) + matches = soup.find(name=['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'span', + 'font', 'br']) + images = soup.findAll('img') + if matches is None and len(images) == 1 and \ + images[0].get('alt', '')=='cover': + img = images[0] + img = os.path.join(base, *img['src'].split('/')) + if os.path.exists(img): + return open(img, 'rb').read() + def render_html_svg_workaround(path_to_html, log, width=590, height=750): from calibre.ebooks.oeb.base import SVG_NS raw = open(path_to_html, 'rb').read() @@ -80,6 +93,11 @@ def render_html_svg_workaround(path_to_html, log, width=590, height=750): os.path.dirname(path_to_html), log) except: pass + if data is None: + try: + data = extract_calibre_cover(raw, os.path.dirname(path_to_html), log) + except: + pass if data is None: renderer = render_html(path_to_html, width, height) data = getattr(renderer, 'data', None) diff --git a/src/calibre/ebooks/conversion/plumber.py b/src/calibre/ebooks/conversion/plumber.py index 55a46da8fe..9bb3a71c03 100644 --- a/src/calibre/ebooks/conversion/plumber.py +++ b/src/calibre/ebooks/conversion/plumber.py @@ -12,6 +12,7 @@ from calibre.customize.ui import input_profiles, output_profiles, \ run_plugins_on_preprocess, run_plugins_on_postprocess from calibre.ebooks.conversion.preprocess import HTMLPreProcessor from calibre.ptempfile import PersistentTemporaryDirectory +from calibre.utils.date import parse_date from calibre import extract, walk DEBUG_README=u''' @@ -65,7 +66,7 @@ class Plumber(object): metadata_option_names = [ 'title', 'authors', 'title_sort', 'author_sort', 'cover', 'comments', 'publisher', 'series', 'series_index', 'rating', 'isbn', - 'tags', 'book_producer', 'language' + 'tags', 'book_producer', 'language', 'pubdate', 'timestamp' ] def __init__(self, input, output, log, report_progress=DummyReporter(), @@ -461,6 +462,14 @@ OptionRecommendation(name='language', recommended_value=None, level=OptionRecommendation.LOW, help=_('Set the language.')), +OptionRecommendation(name='pubdate', + recommended_value=None, level=OptionRecommendation.LOW, + help=_('Set the publication date.')), + +OptionRecommendation(name='timestamp', + recommended_value=None, level=OptionRecommendation.LOW, + help=_('Set the book timestamp (used by the date column in calibre).')), + ] input_fmt = os.path.splitext(self.input)[1] @@ -619,6 +628,14 @@ OptionRecommendation(name='language', except ValueError: self.log.warn(_('Values of series index and rating must' ' be numbers. Ignoring'), val) + continue + elif x in ('timestamp', 'pubdate'): + try: + val = parse_date(val, assume_utc=x=='pubdate') + except: + self.log.exception(_('Failed to parse date/time') + ' ' + + unicode(val)) + continue setattr(mi, x, val) diff --git a/src/calibre/ebooks/epub/input.py b/src/calibre/ebooks/epub/input.py index fd1e4733e1..cf903c0a5d 100644 --- a/src/calibre/ebooks/epub/input.py +++ b/src/calibre/ebooks/epub/input.py @@ -132,6 +132,8 @@ class EPUBInput(InputFormatPlugin): self.rationalize_cover(opf, log) + self.optimize_opf_parsing = opf + with open('content.opf', 'wb') as nopf: nopf.write(opf.render()) diff --git a/src/calibre/ebooks/epub/output.py b/src/calibre/ebooks/epub/output.py index 6e381d5237..5cc62e8260 100644 --- a/src/calibre/ebooks/epub/output.py +++ b/src/calibre/ebooks/epub/output.py @@ -256,7 +256,20 @@ class EPUBOutput(OutputFormatPlugin): Perform various markup transforms to get the output to render correctly in the quirky ADE. ''' - from calibre.ebooks.oeb.base import XPath, XHTML, OEB_STYLES, barename + from calibre.ebooks.oeb.base import XPath, XHTML, OEB_STYLES, barename, urlunquote + + # ADE cries big wet tears when it encounters an invalid fragment + # identifier in the NCX toc. + frag_pat = re.compile(r'[-A-Za-z0-9_:.]+$') + for node in self.oeb.toc.iter(): + href = getattr(node, 'href', None) + if hasattr(href, 'partition'): + base, _, frag = href.partition('#') + frag = urlunquote(frag) + if frag and frag_pat.match(frag) is None: + self.log.warn( + 'Removing invalid fragment identifier %r from TOC'%frag) + node.href = base for x in self.oeb.spine: root = x.data diff --git a/src/calibre/ebooks/html/input.py b/src/calibre/ebooks/html/input.py index 0bb7fc327c..e15454207f 100644 --- a/src/calibre/ebooks/html/input.py +++ b/src/calibre/ebooks/html/input.py @@ -111,7 +111,7 @@ class HTMLFile(object): raise IOError(msg) raise IgnoreFile(msg, err.errno) - self.is_binary = not bool(self.HTML_PAT.search(src[:4096])) + self.is_binary = level > 0 and not bool(self.HTML_PAT.search(src[:4096])) if not self.is_binary: if encoding is None: encoding = xml_to_unicode(src[:4096], verbose=verbose)[-1] @@ -408,7 +408,10 @@ class HTMLInput(InputFormatPlugin): return link_ if base and not os.path.isabs(link): link = os.path.join(base, link) - link = os.path.abspath(link) + try: + link = os.path.abspath(link) + except: + return link_ if not os.access(link, os.R_OK): return link_ if os.path.isdir(link): diff --git a/src/calibre/ebooks/lrf/pylrs/pylrs.py b/src/calibre/ebooks/lrf/pylrs/pylrs.py index 5e0c296807..53a768c073 100644 --- a/src/calibre/ebooks/lrf/pylrs/pylrs.py +++ b/src/calibre/ebooks/lrf/pylrs/pylrs.py @@ -50,6 +50,7 @@ from pylrf import (LrfWriter, LrfObject, LrfTag, LrfToc, STREAM_COMPRESSED, LrfTagStream, LrfStreamBase, IMAGE_TYPE_ENCODING, BINDING_DIRECTION_ENCODING, LINE_TYPE_ENCODING, LrfFileStream, STREAM_FORCE_COMPRESSED) +from calibre.utils.date import isoformat DEFAULT_SOURCE_ENCODING = "cp1252" # defualt is us-windows character set DEFAULT_GENREADING = "fs" # default is yes to both lrf and lrs @@ -852,7 +853,7 @@ class DocInfo(object): self.thumbnail = None self.language = "en" self.creator = None - self.creationdate = date.today().isoformat() + self.creationdate = str(isoformat(date.today())) self.producer = "%s v%s"%(__appname__, __version__) self.numberofpages = "0" diff --git a/src/calibre/ebooks/metadata/__init__.py b/src/calibre/ebooks/metadata/__init__.py index 38e4a1ecd3..f741d2201d 100644 --- a/src/calibre/ebooks/metadata/__init__.py +++ b/src/calibre/ebooks/metadata/__init__.py @@ -10,9 +10,11 @@ import os, mimetypes, sys, re from urllib import unquote, quote from urlparse import urlparse - from calibre import relpath +from calibre.utils.config import tweaks +from calibre.utils.date import isoformat + _author_pat = re.compile(',?\s+(and|with)\s+', re.IGNORECASE) def string_to_authors(raw): raw = raw.replace('&&', u'\uffff') @@ -27,6 +29,9 @@ def authors_to_string(authors): return '' def author_to_author_sort(author): + method = tweaks['author_sort_copy_method'] + if method == 'copy' or (method == 'comma' and author.count(',') > 0): + return author tokens = author.split() tokens = tokens[-1:] + tokens[:-1] if len(tokens) > 1: @@ -340,9 +345,9 @@ class MetaInformation(object): if self.rating is not None: fmt('Rating', self.rating) if self.timestamp is not None: - fmt('Timestamp', self.timestamp.isoformat(' ')) + fmt('Timestamp', isoformat(self.timestamp)) if self.pubdate is not None: - fmt('Published', self.pubdate.isoformat(' ')) + fmt('Published', isoformat(self.pubdate)) if self.rights is not None: fmt('Rights', unicode(self.rights)) if self.lccn: diff --git a/src/calibre/ebooks/metadata/amazon.py b/src/calibre/ebooks/metadata/amazon.py index 616185d5a6..d1473be8f0 100644 --- a/src/calibre/ebooks/metadata/amazon.py +++ b/src/calibre/ebooks/metadata/amazon.py @@ -7,12 +7,11 @@ __docformat__ = 'restructuredtext en' Fetch metadata using Amazon AWS ''' import sys, re -from datetime import datetime from lxml import etree -from dateutil import parser from calibre import browser +from calibre.utils.date import parse_date, utcnow from calibre.ebooks.metadata import MetaInformation, string_to_authors AWS_NS = 'http://webservices.amazon.com/AWSECommerceService/2005-10-05' @@ -44,9 +43,8 @@ def get_social_metadata(title, authors, publisher, isbn): try: d = root.findtext('.//'+AWS('PublicationDate')) if d: - default = datetime.utcnow() - default = datetime(default.year, default.month, 15) - d = parser.parse(d[0].text, default=default) + default = utcnow().replace(day=15) + d = parse_date(d[0].text, assume_utc=True, default=default) mi.pubdate = d except: pass diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py new file mode 100644 index 0000000000..fdf0ceee98 --- /dev/null +++ b/src/calibre/ebooks/metadata/archive.py @@ -0,0 +1,65 @@ +#!/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__ = '2010, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + +import os +from contextlib import closing + +from calibre.customize import FileTypePlugin + +def is_comic(list_of_names): + extensions = set([x.rpartition('.')[-1].lower() for x in list_of_names]) + return len(extensions) == 1 and iter(extensions).next() in ('jpg', 'jpeg', 'png') + +class ArchiveExtract(FileTypePlugin): + name = 'Archive Extract' + author = 'Kovid Goyal' + description = _('Extract common e-book formats from archives ' + '(zip/rar) files. Also try to autodetect if they are actually ' + 'cbz/cbr files.') + file_types = set(['zip', 'rar']) + supported_platforms = ['windows', 'osx', 'linux'] + on_import = True + + def run(self, archive): + is_rar = archive.lower().endswith('.rar') + if is_rar: + from calibre.libunrar import extract_member, names + else: + from calibre.utils.zipfile import ZipFile + zf = ZipFile(archive, 'r') + + if is_rar: + fnames = names(archive) + else: + fnames = zf.namelist() + + fnames = [x for x in fnames if '.' in x] + if is_comic(fnames): + ext = '.cbr' if is_rar else '.cbz' + of = self.temporary_file('_archive_extract'+ext) + with open(archive, 'rb') as f: + of.write(f.read()) + of.close() + return of.name + if len(fnames) > 1 or not fnames: + return archive + fname = fnames[0] + ext = os.path.splitext(fname)[1][1:] + if ext.lower() not in ('lit', 'epub', 'mobi', 'prc', 'rtf', 'pdf', + 'mp3', 'pdb', 'azw', 'azw1'): + return archive + + of = self.temporary_file('_archive_extract.'+ext) + with closing(of): + if is_rar: + data = extract_member(archive, match=None, name=fname)[1] + of.write(data) + else: + of.write(zf.read(fname)) + return of.name + diff --git a/src/calibre/ebooks/metadata/cli.py b/src/calibre/ebooks/metadata/cli.py index 5de8b76c43..780d3febcf 100644 --- a/src/calibre/ebooks/metadata/cli.py +++ b/src/calibre/ebooks/metadata/cli.py @@ -15,6 +15,7 @@ from calibre.ebooks.metadata import string_to_authors, authors_to_sort_string, \ title_sort, MetaInformation from calibre.ebooks.lrf.meta import LRFMetaFile from calibre import prints +from calibre.utils.date import parse_date USAGE='%%prog ebook_file [' + _('options') + ']\n' + \ _(''' @@ -69,6 +70,8 @@ def config(): help=_('Set the book producer.')) c.add_opt('language', ['-l', '--language'], help=_('Set the language.')) + c.add_opt('pubdate', ['-d', '--date'], + help=_('Set the published date.')) c.add_opt('get_cover', ['--get-cover'], help=_('Get the cover from the ebook and save it at as the ' @@ -132,6 +135,8 @@ def do_set_metadata(opts, mi, stream, stream_type): mi.series = opts.series.strip() if getattr(opts, 'series_index', None) is not None: mi.series_index = float(opts.series_index.strip()) + if getattr(opts, 'pubdate', None) is not None: + mi.pubdate = parse_date(opts.pubdate, assume_utc=False, as_utc=False) if getattr(opts, 'cover', None) is not None: ext = os.path.splitext(opts.cover)[1].replace('.', '').upper() diff --git a/src/calibre/ebooks/metadata/epub.py b/src/calibre/ebooks/metadata/epub.py index bd5f06fa95..b063d3ef52 100644 --- a/src/calibre/ebooks/metadata/epub.py +++ b/src/calibre/ebooks/metadata/epub.py @@ -5,7 +5,7 @@ __copyright__ = '2008, Kovid Goyal ' '''Read meta information from epub files''' -import os +import os, re from cStringIO import StringIO from contextlib import closing @@ -29,15 +29,15 @@ class Container(dict): def __init__(self, stream=None): if not stream: return soup = BeautifulStoneSoup(stream.read()) - container = soup.find('container') + container = soup.find(name=re.compile(r'container$', re.I)) if not container: - raise OCFException(" element missing") + raise OCFException(" element missing") if container.get('version', None) != '1.0': raise EPubException("unsupported version of OCF") - rootfiles = container.find('rootfiles') + rootfiles = container.find(re.compile(r'rootfiles$', re.I)) if not rootfiles: raise EPubException(" element missing") - for rootfile in rootfiles.findAll('rootfile'): + for rootfile in rootfiles.findAll(re.compile(r'rootfile$', re.I)): try: self[rootfile['media-type']] = rootfile['full-path'] except KeyError: @@ -69,7 +69,7 @@ class OCFReader(OCF): self.opf_path = self.container[OPF.MIMETYPE] try: with closing(self.open(self.opf_path)) as f: - self.opf = OPF(f, self.root) + self.opf = OPF(f, self.root, populate_spine=False) except KeyError: raise EPubException("missing OPF package file") @@ -101,10 +101,9 @@ class OCFDirReader(OCFReader): def get_cover(opf, opf_path, stream): from calibre.ebooks import render_html_svg_workaround from calibre.utils.logging import default_log - spine = list(opf.spine_items()) - if not spine: + cpage = opf.first_spine_item() + if not cpage: return - cpage = spine[0] with TemporaryDirectory('_epub_meta') as tdir: with CurrentDir(tdir): stream.seek(0) diff --git a/src/calibre/ebooks/metadata/google_books.py b/src/calibre/ebooks/metadata/google_books.py index 2705e3554e..2087b7c489 100644 --- a/src/calibre/ebooks/metadata/google_books.py +++ b/src/calibre/ebooks/metadata/google_books.py @@ -6,14 +6,13 @@ __docformat__ = 'restructuredtext en' import sys, textwrap from urllib import urlencode from functools import partial -from datetime import datetime from lxml import etree -from dateutil import parser from calibre import browser, preferred_encoding from calibre.ebooks.metadata import MetaInformation from calibre.utils.config import OptionParser +from calibre.utils.date import parse_date, utcnow NAMESPACES = { 'openSearch':'http://a9.com/-/spec/opensearchrss/1.0/', @@ -156,9 +155,8 @@ class ResultList(list): try: d = date(entry) if d: - default = datetime.utcnow() - default = datetime(default.year, default.month, 15) - d = parser.parse(d[0].text, default=default) + default = utcnow().replace(day=15) + d = parse_date(d[0].text, assume_utc=True, default=default) else: d = None except: diff --git a/src/calibre/ebooks/metadata/meta.py b/src/calibre/ebooks/metadata/meta.py index 60228f57dd..94c0388b99 100644 --- a/src/calibre/ebooks/metadata/meta.py +++ b/src/calibre/ebooks/metadata/meta.py @@ -65,6 +65,10 @@ def _metadata_from_formats(formats): return mi +def is_recipe(filename): + return filename.startswith('calibre') and \ + filename.rpartition('.')[0].endswith('_recipe_out') + def get_metadata(stream, stream_type='lrf', use_libprs_metadata=False): if stream_type: stream_type = stream_type.lower() if stream_type in ('html', 'html', 'xhtml', 'xhtm', 'xml'): @@ -84,11 +88,10 @@ def get_metadata(stream, stream_type='lrf', use_libprs_metadata=False): return opf mi = MetaInformation(None, None) - if prefs['read_file_metadata']: - mi = get_file_type_metadata(stream, stream_type) - name = os.path.basename(getattr(stream, 'name', '')) base = metadata_from_filename(name) + if is_recipe(name) or prefs['read_file_metadata']: + mi = get_file_type_metadata(stream, stream_type) if base.title == os.path.splitext(name)[0] and base.authors is None: # Assume that there was no metadata in the file and the user set pattern # to match meta info from the file name did not match. diff --git a/src/calibre/ebooks/metadata/mobi.py b/src/calibre/ebooks/metadata/mobi.py index 4fab134937..1de73d7dd4 100644 --- a/src/calibre/ebooks/metadata/mobi.py +++ b/src/calibre/ebooks/metadata/mobi.py @@ -11,13 +11,11 @@ __docformat__ = 'restructuredtext en' from struct import pack, unpack from cStringIO import StringIO -from datetime import datetime from calibre.ebooks.mobi import MobiError from calibre.ebooks.mobi.writer import rescale_image, MAX_THUMB_DIMEN from calibre.ebooks.mobi.langcodes import iana2mobi - -import struct +from calibre.utils.date import now as nowf class StreamSlicer(object): @@ -105,11 +103,12 @@ class MetadataUpdater(object): have_exth = self.have_exth = (flags & 0x40) != 0 self.cover_record = self.thumbnail_record = None self.timestamp = None - self.pdbrecords = self.get_pdbrecords() + + self.original_exth_records = {} if not have_exth: self.create_exth() - + self.have_exth = True # Fetch timestamp, cover_record, thumbnail_record self.fetchEXTHFields() @@ -131,14 +130,18 @@ class MetadataUpdater(object): content = exth[pos + 8: pos + size] pos += size + self.original_exth_records[id] = content + if id == 106: self.timestamp = content elif id == 201: - rindex, = self.cover_rindex, = unpack('>I', content) - self.cover_record = self.record(rindex + image_base) + rindex, = self.cover_rindex, = unpack('>i', content) + if rindex > 0 : + self.cover_record = self.record(rindex + image_base) elif id == 202: - rindex, = self.thumbnail_rindex, = unpack('>I', content) - self.thumbnail_record = self.record(rindex + image_base) + rindex, = self.thumbnail_rindex, = unpack('>i', content) + if rindex > 0 : + self.thumbnail_record = self.record(rindex + image_base) def patch(self, off, new_record0): # Save the current size of each record @@ -181,14 +184,14 @@ class MetadataUpdater(object): off = self.pdbrecords[section][0] self.patch(off, new) - def create_exth(self, exth=None): + def create_exth(self, new_title=None, exth=None): # Add an EXTH block to record 0, rewrite the stream # self.hexdump(self.record0) - # Fetch the title - title_offset, = struct.unpack('>L', self.record0[0x54:0x58]) - title_length, = struct.unpack('>L', self.record0[0x58:0x5c]) - title_in_file, = struct.unpack('%ds' % (title_length), self.record0[title_offset:title_offset + title_length]) + # Fetch the existing title + title_offset, = unpack('>L', self.record0[0x54:0x58]) + title_length, = unpack('>L', self.record0[0x58:0x5c]) + title_in_file, = unpack('%ds' % (title_length), self.record0[title_offset:title_offset + title_length]) # Adjust length to accommodate PrimaryINDX if necessary mobi_header_length, = unpack('>L', self.record0[0x14:0x18]) @@ -207,14 +210,21 @@ class MetadataUpdater(object): exth = ['EXTH', pack('>II', 12, 0), pad] exth = ''.join(exth) - # Update title_offset + # Update title_offset, title_len if new_title self.record0[0x54:0x58] = pack('>L', 0x10 + mobi_header_length + len(exth)) + if new_title: + self.record0[0x58:0x5c] = pack('>L', len(new_title)) # Create an updated Record0 new_record0 = StringIO() new_record0.write(self.record0[:0x10 + mobi_header_length]) new_record0.write(exth) - new_record0.write(title_in_file) + if new_title: + #new_record0.write(new_title.encode(self.codec, 'replace')) + new_title = (new_title or _('Unknown')).encode(self.codec, 'replace') + new_record0.write(new_title) + else: + new_record0.write(title_in_file) # Pad to a 4-byte boundary trail = len(new_record0.getvalue()) % 4 @@ -244,7 +254,7 @@ class MetadataUpdater(object): def get_pdbrecords(self): pdbrecords = [] for i in xrange(self.nrecs): - offset, a1,a2,a3,a4 = struct.unpack('>LBBBB', self.data[78+i*8:78+i*8+8]) + offset, a1,a2,a3,a4 = unpack('>LBBBB', self.data[78+i*8:78+i*8+8]) flags, val = a1, a2<<16|a3<<8|a4 pdbrecords.append( [offset, flags, val] ) return pdbrecords @@ -275,6 +285,10 @@ class MetadataUpdater(object): return StreamSlicer(self.stream, start, stop) def update(self, mi): + def pop_exth_record(exth_id): + if exth_id in self.original_exth_records: + self.original_exth_records.pop(exth_id) + if self.type != "BOOKMOBI": raise MobiError("Setting metadata only supported for MOBI files of type 'BOOK'.\n" "\tThis is a '%s' file of type '%s'" % (self.type[0:4], self.type[4:8])) @@ -289,35 +303,53 @@ class MetadataUpdater(object): if mi.author_sort and pas: authors = mi.author_sort recs.append((100, authors.encode(self.codec, 'replace'))) + pop_exth_record(100) elif mi.authors: authors = '; '.join(mi.authors) recs.append((100, authors.encode(self.codec, 'replace'))) + pop_exth_record(100) if mi.publisher: recs.append((101, mi.publisher.encode(self.codec, 'replace'))) + pop_exth_record(101) if mi.comments: recs.append((103, mi.comments.encode(self.codec, 'replace'))) + pop_exth_record(103) if mi.isbn: recs.append((104, mi.isbn.encode(self.codec, 'replace'))) + pop_exth_record(104) if mi.tags: subjects = '; '.join(mi.tags) recs.append((105, subjects.encode(self.codec, 'replace'))) + pop_exth_record(105) if mi.pubdate: recs.append((106, str(mi.pubdate).encode(self.codec, 'replace'))) + pop_exth_record(106) elif mi.timestamp: recs.append((106, str(mi.timestamp).encode(self.codec, 'replace'))) + pop_exth_record(106) elif self.timestamp: recs.append((106, self.timestamp)) + pop_exth_record(106) else: - recs.append((106, str(datetime.now()).encode(self.codec, 'replace'))) + recs.append((106, nowf().isoformat().encode(self.codec, 'replace'))) + pop_exth_record(106) if self.cover_record is not None: recs.append((201, pack('>I', self.cover_rindex))) recs.append((203, pack('>I', 0))) + pop_exth_record(201) + pop_exth_record(203) if self.thumbnail_record is not None: recs.append((202, pack('>I', self.thumbnail_rindex))) + pop_exth_record(202) if getattr(self, 'encryption_type', -1) != 0: raise MobiError('Setting metadata in DRMed MOBI files is not supported.') + # Restore any original EXTH fields that weren't modified/updated + for id in sorted(self.original_exth_records): + recs.append((id, self.original_exth_records[id])) + recs = sorted(recs, key=lambda x:(x[0],x[0])) + exth = StringIO() for code, data in recs: exth.write(pack('>II', code, len(data) + 8)) @@ -332,7 +364,7 @@ class MetadataUpdater(object): raise MobiError('No existing EXTH record. Cannot update metadata.') self.record0[92:96] = iana2mobi(mi.language) - self.create_exth(exth) + self.create_exth(exth=exth, new_title=mi.title) # Fetch updated timestamp, cover_record, thumbnail_record self.fetchEXTHFields() diff --git a/src/calibre/ebooks/metadata/opf2.py b/src/calibre/ebooks/metadata/opf2.py index c2244fd892..5e57b0b515 100644 --- a/src/calibre/ebooks/metadata/opf2.py +++ b/src/calibre/ebooks/metadata/opf2.py @@ -12,12 +12,12 @@ from urllib import unquote from urlparse import urlparse from lxml import etree -from dateutil import parser from calibre.ebooks.chardet import xml_to_unicode from calibre.constants import __appname__, __version__, filesystem_encoding from calibre.ebooks.metadata.toc import TOC from calibre.ebooks.metadata import MetaInformation, string_to_authors +from calibre.utils.date import parse_date, isoformat class Resource(object): @@ -272,6 +272,10 @@ class Spine(ResourceCollection): self.id = idfunc(self.path) self.idref = None + def __repr__(self): + return 'Spine.Item(path=%r, id=%s, is_linear=%s)' % \ + (self.path, self.id, self.is_linear) + @staticmethod def from_opf_spine_element(itemrefs, manifest): s = Spine(manifest) @@ -280,7 +284,7 @@ class Spine(ResourceCollection): if idref is not None: path = s.manifest.path_for_id(idref) if path: - r = Spine.Item(s.manifest.id_for_path, path, is_path=True) + r = Spine.Item(lambda x:idref, path, is_path=True) r.is_linear = itemref.get('linear', 'yes') == 'yes' r.idref = idref s.append(r) @@ -441,6 +445,8 @@ class OPF(object): guide_path = XPath('descendant::*[re:match(name(), "guide", "i")]/*[re:match(name(), "reference", "i")]') title = MetadataField('title', formatter=lambda x: re.sub(r'\s+', ' ', x)) + title_sort = MetadataField('title_sort', formatter=lambda x: + re.sub(r'\s+', ' ', x), is_dc=False) publisher = MetadataField('publisher') language = MetadataField('language') comments = MetadataField('description') @@ -449,12 +455,14 @@ class OPF(object): series = MetadataField('series', is_dc=False) series_index = MetadataField('series_index', is_dc=False, formatter=float, none_is=1) rating = MetadataField('rating', is_dc=False, formatter=int) - pubdate = MetadataField('date', formatter=parser.parse) + pubdate = MetadataField('date', formatter=parse_date) publication_type = MetadataField('publication_type', is_dc=False) - timestamp = MetadataField('timestamp', is_dc=False, formatter=parser.parse) + timestamp = MetadataField('timestamp', is_dc=False, + formatter=parse_date) - def __init__(self, stream, basedir=os.getcwdu(), unquote_urls=True): + def __init__(self, stream, basedir=os.getcwdu(), unquote_urls=True, + populate_spine=True): if not hasattr(stream, 'read'): stream = open(stream, 'rb') raw = stream.read() @@ -477,7 +485,7 @@ class OPF(object): self.manifest = Manifest.from_opf_manifest_element(m, basedir) self.spine = None s = self.spine_path(self.root) - if s: + if populate_spine and s: self.spine = Spine.from_opf_spine_element(s, self.manifest) self.guide = None guide = self.guide_path(self.root) @@ -584,6 +592,15 @@ class OPF(object): if x.get('id', None) == idref: yield x.get('href', '') + def first_spine_item(self): + items = self.iterspine() + if not items: + return None + idref = items[0].get('idref', '') + for x in self.itermanifest(): + if x.get('id', None) == idref: + return x.get('href', None) + def create_spine_item(self, idref): ans = etree.Element('{%s}itemref'%self.NAMESPACES['opf'], idref=idref) ans.tail = '\n\t\t' @@ -675,29 +692,6 @@ class OPF(object): return property(fget=fget, fset=fset) - @dynamic_property - def title_sort(self): - - def fget(self): - matches = self.title_path(self.metadata) - if matches: - for match in matches: - ans = match.get('{%s}file-as'%self.NAMESPACES['opf'], None) - if not ans: - ans = match.get('file-as', None) - if ans: - return ans - - def fset(self, val): - matches = self.title_path(self.metadata) - if matches: - for key in matches[0].attrib: - if key.endswith('file-as'): - matches[0].attrib.pop(key) - matches[0].set('file-as', unicode(val)) - - return property(fget=fget, fset=fset) - @dynamic_property def tags(self): @@ -869,7 +863,8 @@ class OPF(object): def smart_update(self, mi): for attr in ('title', 'authors', 'author_sort', 'title_sort', 'publisher', 'series', 'series_index', 'rating', - 'isbn', 'language', 'tags', 'category', 'comments'): + 'isbn', 'language', 'tags', 'category', 'comments', + 'pubdate'): val = getattr(mi, attr, None) if val is not None and val != [] and val != (None, None): setattr(self, attr, val) @@ -1041,12 +1036,12 @@ def metadata_to_opf(mi, as_string=True): elem.text = text.strip() metadata.append(elem) - factory(DC('title'), mi.title, mi.title_sort) + factory(DC('title'), mi.title) for au in mi.authors: factory(DC('creator'), au, mi.author_sort, 'aut') factory(DC('contributor'), mi.book_producer, __appname__, 'bkp') if hasattr(mi.pubdate, 'isoformat'): - factory(DC('date'), mi.pubdate.isoformat()) + factory(DC('date'), isoformat(mi.pubdate)) factory(DC('language'), mi.language) if mi.category: factory(DC('type'), mi.category) @@ -1069,9 +1064,11 @@ def metadata_to_opf(mi, as_string=True): if mi.rating is not None: meta('rating', str(mi.rating)) if hasattr(mi.timestamp, 'isoformat'): - meta('timestamp', mi.timestamp.isoformat()) + meta('timestamp', isoformat(mi.timestamp)) if mi.publication_type: meta('publication_type', mi.publication_type) + if mi.title_sort: + meta('title_sort', mi.title_sort) metadata[-1].tail = '\n' +(' '*4) @@ -1088,12 +1085,12 @@ def metadata_to_opf(mi, as_string=True): def test_m2o(): - from datetime import datetime + from calibre.utils.date import now as nowf from cStringIO import StringIO mi = MetaInformation('test & title', ['a"1', "a'2"]) mi.title_sort = 'a\'"b' mi.author_sort = 'author sort' - mi.pubdate = datetime.now() + mi.pubdate = nowf() mi.language = 'en' mi.category = 'test' mi.comments = 'what a fun book\n\n' @@ -1103,7 +1100,7 @@ def test_m2o(): mi.series = 's"c\'l&<>' mi.series_index = 3.34 mi.rating = 3 - mi.timestamp = datetime.now() + mi.timestamp = nowf() mi.publication_type = 'ooooo' mi.rights = 'yes' mi.cover = 'asd.jpg' diff --git a/src/calibre/ebooks/metadata/rar.py b/src/calibre/ebooks/metadata/rar.py index 16f2c67af7..896e3d7777 100644 --- a/src/calibre/ebooks/metadata/rar.py +++ b/src/calibre/ebooks/metadata/rar.py @@ -13,6 +13,9 @@ from calibre.ptempfile import PersistentTemporaryFile from calibre.libunrar import extract_member, names def get_metadata(stream): + from calibre.ebooks.metadata.archive import is_comic + from calibre.ebooks.metadata.meta import get_metadata + path = getattr(stream, 'name', False) if not path: pt = PersistentTemporaryFile('_rar-meta.rar') @@ -21,6 +24,8 @@ def get_metadata(stream): path = pt.name path = os.path.abspath(path) file_names = list(names(path)) + if is_comic(file_names): + return get_metadata(stream, 'cbr') for f in file_names: stream_type = os.path.splitext(f)[1].lower() if stream_type: @@ -29,8 +34,7 @@ def get_metadata(stream): 'rb', 'imp', 'pdf', 'lrf'): data = extract_member(path, match=None, name=f)[1] stream = StringIO(data) - from calibre.ebooks.metadata.meta import get_metadata return get_metadata(stream, stream_type) - raise ValueError('No ebook found in RAR archive') - + raise ValueError('No ebook found in RAR archive') + diff --git a/src/calibre/ebooks/metadata/zip.py b/src/calibre/ebooks/metadata/zip.py index 624e0fe73c..db9d751f3a 100644 --- a/src/calibre/ebooks/metadata/zip.py +++ b/src/calibre/ebooks/metadata/zip.py @@ -8,15 +8,21 @@ from cStringIO import StringIO def get_metadata(stream): + from calibre.ebooks.metadata.meta import get_metadata + from calibre.ebooks.metadata.archive import is_comic stream_type = None zf = ZipFile(stream, 'r') - for f in zf.namelist(): + names = zf.namelist() + if is_comic(names): + # Is probably a comic + return get_metadata(stream, 'cbz') + + for f in names: stream_type = os.path.splitext(f)[1].lower() if stream_type: stream_type = stream_type[1:] if stream_type in ('lit', 'opf', 'prc', 'mobi', 'fb2', 'epub', 'rb', 'imp', 'pdf', 'lrf'): - from calibre.ebooks.metadata.meta import get_metadata stream = StringIO(zf.read(f)) return get_metadata(stream, stream_type) raise ValueError('No ebook found in ZIP archive') diff --git a/src/calibre/ebooks/mobi/reader.py b/src/calibre/ebooks/mobi/reader.py index 4aac84e599..88396b4346 100644 --- a/src/calibre/ebooks/mobi/reader.py +++ b/src/calibre/ebooks/mobi/reader.py @@ -4,13 +4,11 @@ __copyright__ = '2008, Kovid Goyal ' Read data from .mobi files ''' -import datetime import functools import os import re import struct import textwrap - import cStringIO try: @@ -23,6 +21,7 @@ from lxml import html, etree from calibre import entity_to_unicode, CurrentDir from calibre.utils.filenames import ascii_filename +from calibre.utils.date import parse_date from calibre.ptempfile import TemporaryDirectory from calibre.ebooks import DRMError from calibre.ebooks.chardet import ENCODING_PATS @@ -68,7 +67,10 @@ class EXTHHeader(object): pass elif id == 503: # Long title if not title or title == _('Unknown'): - title = content + try: + title = content.decode(codec) + except: + pass #else: # print 'unknown record', id, repr(content) if title: @@ -96,8 +98,7 @@ class EXTHHeader(object): self.mi.tags = list(set(self.mi.tags)) elif id == 106: try: - self.mi.publish_date = datetime.datetime.strptime( - content, '%Y-%m-%d', ).date() + self.mi.pubdate = parse_date(content, as_utc=False) except: pass elif id == 108: diff --git a/src/calibre/ebooks/mobi/writer.py b/src/calibre/ebooks/mobi/writer.py index f92e1bf2f9..8de702a617 100644 --- a/src/calibre/ebooks/mobi/writer.py +++ b/src/calibre/ebooks/mobi/writer.py @@ -310,6 +310,7 @@ class Serializer(object): text = text.replace('&', '&') text = text.replace('<', '<') text = text.replace('>', '>') + text = text.replace(u'\u00AD', '') # Soft-hyphen if quot: text = text.replace('"', '"') self.buffer.write(encode(text)) @@ -610,12 +611,21 @@ class MobiWriter(object): if (i>firstSequentialNode) and self._ctoc_map[i-1]['klass'] != 'section': if offset != previousOffset + previousLength : self._oeb.log.warning("*** TOC discontinuity: nodes are not sequential ***") - self._oeb.log.warning(" node %03d: '%s' offset: 0x%X length: 0x%X" % \ + self._oeb.log.info(" node %03d: '%s' offset: 0x%X length: 0x%X" % \ (i-1, entries[i-1].title, previousOffset, previousLength) ) self._oeb.log.warning(" node %03d: '%s' offset: 0x%X != 0x%06X" % \ (i, child.title, offset, previousOffset + previousLength) ) - self._oeb.log.warning("\tnode data %03d: %s" % (i-1, self._ctoc_map[i-1]) ) - self._oeb.log.warning("\tnode data %03d: %s" % (i, self._ctoc_map[i]) ) + # self._oeb.log.warning("\tnode data %03d: %s" % (i-1, self._ctoc_map[i-1]) ) + # self._oeb.log.warning("\tnode data %03d: %s" % (i, self._ctoc_map[i]) ) + # Dump the offending entry + self._oeb.log.info("...") + for z in range(i-6 if i-6 > 0 else 0, i+6 if i+6 < len(entries) else len(entries)): + if z == i: + self._oeb.log.warning("child %03d: %s" % (z, entries[z])) + else: + self._oeb.log.info("child %03d: %s" % (z, entries[z])) + self._oeb.log.info("...") + self._oeb.log.warning('_generate_indexed_navpoints: Failed to generate index') # Zero out self._HTMLRecords, return False self._HTMLRecords = [] diff --git a/src/calibre/ebooks/oeb/base.py b/src/calibre/ebooks/oeb/base.py index c93a0689b2..0d8eed4692 100644 --- a/src/calibre/ebooks/oeb/base.py +++ b/src/calibre/ebooks/oeb/base.py @@ -16,9 +16,10 @@ from urllib import unquote as urlunquote from urlparse import urljoin from lxml import etree, html +from cssutils import CSSParser import calibre -from cssutils import CSSParser +from calibre.constants import filesystem_encoding from calibre.translations.dynamic import translate from calibre.ebooks.chardet import xml_to_unicode from calibre.ebooks.oeb.entitydefs import ENTITYDEFS @@ -434,10 +435,18 @@ class DirContainer(object): def namelist(self): names = [] - for root, dirs, files in os.walk(self.rootdir): + base = self.rootdir + if isinstance(base, unicode): + base = base.encode(filesystem_encoding) + for root, dirs, files in os.walk(base): for fname in files: fname = os.path.join(root, fname) fname = fname.replace('\\', '/') + if not isinstance(fname, unicode): + try: + fname = fname.decode(filesystem_encoding) + except: + continue names.append(fname) return names @@ -842,8 +851,10 @@ class Manifest(object): self.oeb.log.warn('File %r appears to be a HTML fragment'%self.href) nroot = etree.fromstring('') parent = nroot[0] - for child in list(data): - child.getparent().remove(child) + for child in list(data.iter()): + oparent = child.getparent() + if oparent is not None: + oparent.remove(child) parent.append(child) data = nroot @@ -1567,14 +1578,17 @@ class TOC(object): parent = etree.Element(NCX('navMap')) for node in self.nodes: id = node.id or unicode(uuid.uuid4()) - attrib = {'id': id, 'playOrder': str(node.play_order)} + po = node.play_order + if po == 0: + po = 1 + attrib = {'id': id, 'playOrder': str(po)} if node.klass: attrib['class'] = node.klass point = element(parent, NCX('navPoint'), attrib=attrib) label = etree.SubElement(point, NCX('navLabel')) title = node.title if title: - title = re.sub(r'\s', ' ', title) + title = re.sub(r'\s+', ' ', title) element(label, NCX('text')).text = title element(point, NCX('content'), src=urlunquote(node.href)) node.to_ncx(point) diff --git a/src/calibre/ebooks/oeb/iterator.py b/src/calibre/ebooks/oeb/iterator.py index 372baf0959..8959d62fac 100644 --- a/src/calibre/ebooks/oeb/iterator.py +++ b/src/calibre/ebooks/oeb/iterator.py @@ -120,7 +120,10 @@ class EbookIterator(object): bad_map = {} font_family_pat = re.compile(r'font-family\s*:\s*([^;]+)') for csspath in css_files: - css = open(csspath, 'rb').read().decode('utf-8', 'replace') + try: + css = open(csspath, 'rb').read().decode('utf-8', 'replace') + except: + continue for match in re.compile(r'@font-face\s*{([^}]+)}').finditer(css): block = match.group(1) family = font_family_pat.search(block) @@ -181,8 +184,9 @@ class EbookIterator(object): if hasattr(self.pathtoopf, 'manifest'): self.pathtoopf = write_oebbook(self.pathtoopf, self.base) - - self.opf = OPF(self.pathtoopf, os.path.dirname(self.pathtoopf)) + self.opf = getattr(plumber.input_plugin, 'optimize_opf_parsing', None) + if self.opf is None: + self.opf = OPF(self.pathtoopf, os.path.dirname(self.pathtoopf)) self.language = self.opf.language if self.language: self.language = self.language.lower() diff --git a/src/calibre/ebooks/oeb/transforms/metadata.py b/src/calibre/ebooks/oeb/transforms/metadata.py index bb621c9412..97bad07a58 100644 --- a/src/calibre/ebooks/oeb/transforms/metadata.py +++ b/src/calibre/ebooks/oeb/transforms/metadata.py @@ -7,7 +7,7 @@ __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' import os -from datetime import datetime +from calibre.utils.date import isoformat, now def meta_info_to_oeb_metadata(mi, m, log): from calibre.ebooks.oeb.base import OPF @@ -60,10 +60,10 @@ def meta_info_to_oeb_metadata(mi, m, log): m.add('subject', t) if mi.pubdate is not None: m.clear('date') - m.add('date', mi.pubdate.isoformat()) + m.add('date', isoformat(mi.pubdate)) if mi.timestamp is not None: m.clear('timestamp') - m.add('timestamp', mi.timestamp.isoformat()) + m.add('timestamp', isoformat(mi.timestamp)) if mi.rights is not None: m.clear('rights') m.add('rights', mi.rights) @@ -71,7 +71,7 @@ def meta_info_to_oeb_metadata(mi, m, log): m.clear('publication_type') m.add('publication_type', mi.publication_type) if not m.timestamp: - m.add('timestamp', datetime.now().isoformat()) + m.add('timestamp', isoformat(now())) class MergeMetadata(object): diff --git a/src/calibre/ebooks/oeb/transforms/rescale.py b/src/calibre/ebooks/oeb/transforms/rescale.py index 7ce3b5a588..fbf0e9bc4f 100644 --- a/src/calibre/ebooks/oeb/transforms/rescale.py +++ b/src/calibre/ebooks/oeb/transforms/rescale.py @@ -35,7 +35,10 @@ class RescaleImages(object): if not raw: continue if qt: img = QImage(10, 10, QImage.Format_ARGB32_Premultiplied) - if not img.loadFromData(raw): continue + try: + if not img.loadFromData(raw): continue + except: + continue width, height = img.width(), img.height() else: f = cStringIO.StringIO(raw) diff --git a/src/calibre/ebooks/pdb/ereader/writer.py b/src/calibre/ebooks/pdb/ereader/writer.py index a6ee16db15..4fbd343a6b 100644 --- a/src/calibre/ebooks/pdb/ereader/writer.py +++ b/src/calibre/ebooks/pdb/ereader/writer.py @@ -42,9 +42,9 @@ class Writer(FormatWriter): pml = unicode(pmlmlizer.extract_content(oeb_book, self.opts)).encode('cp1252', 'replace') text, text_sizes = self._text(pml) - chapter_index = self._index_item(r'(?s)\\C(?P[0-4)="(?P.+?)"', pml) - chapter_index += self.index_item(r'(?s)\\X(?P[0-4])(?P.+?)\\X[0-4]', pml) - chapter_index += self.index_item(r'(?s)\\x(?P.+?)\\x', pml) + chapter_index = self._index_item(r'(?s)\\C(?P[0-4])="(?P.+?)"', pml) + chapter_index += self._index_item(r'(?s)\\X(?P[0-4])(?P.+?)\\X[0-4]', pml) + chapter_index += self._index_item(r'(?s)\\x(?P.+?)\\x', pml) link_index = self._index_item(r'(?s)\\Q="(?P.+?)"', pml) images = self._images(oeb_book.manifest, pmlmlizer.image_hrefs) metadata = [self._metadata(metadata)] diff --git a/src/calibre/ebooks/pdf/main.cpp b/src/calibre/ebooks/pdf/main.cpp index c0033190fa..d3efb5f1f9 100644 --- a/src/calibre/ebooks/pdf/main.cpp +++ b/src/calibre/ebooks/pdf/main.cpp @@ -169,6 +169,8 @@ int main(int argc, char **argv) { char *memblock; ifstream::pos_type size; int ret = 0; + map info; + Reflow *reflow = NULL; if (argc != 2) { @@ -189,9 +191,13 @@ int main(int argc, char **argv) { } try { - Reflow reflow(memblock, size); - reflow.render(); - vector *data = reflow.render_first_page(); + reflow = new Reflow(memblock, size); + info = reflow->get_info(); + for (map::const_iterator it = info.begin() ; it != info.end(); it++ ) { + cout << (*it).first << " : " << (*it).second << endl; + } + //reflow->render(); + vector *data = reflow->render_first_page(); ofstream file("cover.png", ios::binary); file.write(&((*data)[0]), data->size()); delete data; @@ -200,7 +206,7 @@ int main(int argc, char **argv) { cerr << e.what() << endl; ret = 1; } - + delete reflow; delete[] memblock; return ret; } diff --git a/src/calibre/ebooks/pdf/reflow.py b/src/calibre/ebooks/pdf/reflow.py index 42c16225d2..584d631d0b 100644 --- a/src/calibre/ebooks/pdf/reflow.py +++ b/src/calibre/ebooks/pdf/reflow.py @@ -6,7 +6,7 @@ __license__ = 'GPL v3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import sys +import sys, os from lxml import etree @@ -47,6 +47,10 @@ class Image(Element): return '' % \ (self.src, int(self.width), int(self.height)) + def dump(self, f): + f.write(self.to_html()) + f.write('\n') + class Text(Element): @@ -91,6 +95,10 @@ class Text(Element): def to_html(self): return self.raw + def dump(self, f): + f.write(self.to_html().encode('utf-8')) + f.write('\n') + class FontSizeStats(dict): def __init__(self, stats): @@ -143,6 +151,14 @@ class Column(object): def add(self, elem): if elem in self.elements: return self.elements.append(elem) + self._post_add() + + def prepend(self, elem): + if elem in self.elements: return + self.elements.insert(0, elem) + self._post_add() + + def _post_add(self): self.elements.sort(cmp=lambda x,y:cmp(x.bottom,y.bottom)) self.top = self.elements[0].top self.bottom = self.elements[-1].bottom @@ -183,6 +199,11 @@ class Column(object): return None return self.elements[idx-1] + def dump(self, f, num): + f.write('******** Column %d\n\n'%num) + for elem in self.elements: + elem.dump(f) + class Box(list): @@ -262,7 +283,6 @@ class Region(object): max_lines = max(max_lines, len(c)) return max_lines - @property def is_small(self): return self.line_count < 3 @@ -283,7 +303,6 @@ class Region(object): mc = self.columns[0] return mc - print for c in singleton.columns: for elem in c: col = most_suitable_column(elem) @@ -304,6 +323,51 @@ class Region(object): for x in self.columns: yield x + def absorb_regions(self, regions, at): + for region in regions: + self.absorb_region(region, at) + + def absorb_region(self, region, at): + if len(region.columns) <= len(self.columns): + for i in range(len(region.columns)): + src, dest = region.columns[i], self.columns[i] + if at != 'bottom': + src = reversed(list(iter(src))) + for elem in src: + func = dest.add if at == 'bottom' else dest.prepend + func(elem) + + else: + col_map = {} + for i, col in enumerate(region.columns): + max_overlap, max_overlap_index = 0, 0 + for j, dcol in enumerate(self.columns): + sint = Interval(col.left, col.right) + dint = Interval(dcol.left, dcol.right) + width = sint.intersection(dint).width + if width > max_overlap: + max_overlap = width + max_overlap_index = j + col_map[i] = max_overlap_index + lines = max(map(len, region.columns)) + if at == 'bottom': + lines = range(lines) + else: + lines = range(lines-1, -1, -1) + for i in lines: + for j, src in enumerate(region.columns): + dest = self.columns[col_map[j]] + if i < len(src): + func = dest.add if at == 'bottom' else dest.prepend + func(src.elements[i]) + + def dump(self, f): + f.write('############################################################\n') + f.write('########## Region (%d columns) ###############\n'%len(self.columns)) + f.write('############################################################\n\n') + for i, col in enumerate(self.columns): + col.dump(f, i) + def linearize(self): self.elements = [] for x in self.columns: @@ -376,7 +440,8 @@ class Page(object): self.font_size_stats[t.font_size] = 0 self.font_size_stats[t.font_size] += len(t.text_as_string) self.average_text_height += t.height - self.average_text_height /= len(self.texts) + if len(self.texts): + self.average_text_height /= len(self.texts) self.font_size_stats = FontSizeStats(self.font_size_stats) @@ -431,31 +496,78 @@ class Page(object): if not current_region.is_empty: self.regions.append(current_region) + if self.opts.verbose > 2: + self.debug_dir = 'page-%d'%self.number + os.mkdir(self.debug_dir) + self.dump_regions('pre-coalesce') + self.coalesce_regions() + self.dump_regions('post-coalesce') + + def dump_regions(self, fname): + fname = 'regions-'+fname+'.txt' + with open(os.path.join(self.debug_dir, fname), 'wb') as f: + f.write('Page #%d\n\n'%self.number) + for region in self.regions: + region.dump(f) def coalesce_regions(self): # find contiguous sets of small regions # absorb into a neighboring region (prefer the one with number of cols # closer to the avg number of cols in the set, if equal use larger # region) - # merge contiguous regions that can contain each other - absorbed = set([]) found = True + absorbed = set([]) + processed = set([]) while found: found = False for i, region in enumerate(self.regions): - if region.is_small: + if region in absorbed: + continue + if region.is_small and region not in processed: found = True - regions = [] + processed.add(region) + regions = [region] + end = i+1 for j in range(i+1, len(self.regions)): + end = j if self.regions[j].is_small: regions.append(self.regions[j]) else: break - prev = None if i == 0 else i-1 - next = j if self.regions[j] not in regions else None - - + prev_region = None if i == 0 else i-1 + next_region = end if end < len(self.regions) and self.regions[end] not in regions else None + absorb_at = 'bottom' + if prev_region is None and next_region is not None: + absorb_into = next_region + absorb_at = 'top' + elif next_region is None and prev_region is not None: + absorb_into = prev_region + elif prev_region is None and next_region is None: + if len(regions) > 1: + absorb_into = i + regions = regions[1:] + else: + absorb_into = None + else: + absorb_into = prev_region + if self.regions[next_region].line_count >= \ + self.regions[prev_region].line_count: + avg_column_count = sum([len(r.columns) for r in + regions])/float(len(regions)) + if self.regions[next_region].line_count > \ + self.regions[prev_region].line_count \ + or abs(avg_column_count - + len(self.regions[prev_region].columns)) \ + > abs(avg_column_count - + len(self.regions[next_region].columns)): + absorb_into = next_region + absorb_at = 'top' + if absorb_into is not None: + self.regions[absorb_into].absorb_regions(regions, absorb_at) + absorbed.update(regions) + for region in absorbed: + self.regions.remove(region) def sort_into_columns(self, elem, neighbors): neighbors.add(elem) @@ -575,8 +687,9 @@ class PDFDocument(object): for elem in self.elements: html.extend(elem.to_html()) html += ['', ''] + raw = (u'\n'.join(html)).replace('', '') with open('index.html', 'wb') as f: - f.write((u'\n'.join(html)).encode('utf-8')) + f.write(raw.encode('utf-8')) diff --git a/src/calibre/ebooks/pml/pmlconverter.py b/src/calibre/ebooks/pml/pmlconverter.py index 4c74502bd1..ed955879f8 100644 --- a/src/calibre/ebooks/pml/pmlconverter.py +++ b/src/calibre/ebooks/pml/pmlconverter.py @@ -182,10 +182,10 @@ class PML_HTMLizer(object): return pml def strip_pml(self, pml): - pml = re.sub(r'\\C\d=".+*"', '', pml) - pml = re.sub(r'\\Fn=".+*"', '', pml) - pml = re.sub(r'\\Sd=".+*"', '', pml) - pml = re.sub(r'\\.=".+*"', '', pml) + pml = re.sub(r'\\C\d=".*"', '', pml) + pml = re.sub(r'\\Fn=".*"', '', pml) + pml = re.sub(r'\\Sd=".*"', '', pml) + pml = re.sub(r'\\.=".*"', '', pml) pml = re.sub(r'\\X\d', '', pml) pml = re.sub(r'\\S[pbd]', '', pml) pml = re.sub(r'\\Fn', '', pml) diff --git a/src/calibre/ebooks/rtf2xml/ParseRtf.py b/src/calibre/ebooks/rtf2xml/ParseRtf.py index cba0f900db..19537c708a 100755 --- a/src/calibre/ebooks/rtf2xml/ParseRtf.py +++ b/src/calibre/ebooks/rtf2xml/ParseRtf.py @@ -27,7 +27,7 @@ from calibre.ebooks.rtf2xml import headings_to_sections, \ paragraph_def, convert_to_tags, output, copy, \ list_numbers, info, pict, table_info, fonts, paragraphs, \ body_styles, preamble_rest, group_styles, \ - inline, correct_unicode + inline from calibre.ebooks.rtf2xml.old_rtf import OldRtf """ @@ -256,15 +256,6 @@ class ParseRtf: ) pict_obj.process_pict() self.__bracket_match('pict_data_info') - correct_uni_obj = correct_unicode.CorrectUnicode( - in_file = self.__temp_file, - bug_handler = RtfInvalidCodeException, - copy = self.__copy, - run_level = self.__run_level, - exception_handler = InvalidRtfException, - ) - correct_uni_obj.correct_unicode() - self.__bracket_match('correct_unicode_info') combine_obj = combine_borders.CombineBorders( in_file = self.__temp_file, bug_handler = RtfInvalidCodeException, diff --git a/src/calibre/ebooks/rtf2xml/correct_unicode.py b/src/calibre/ebooks/rtf2xml/correct_unicode.py deleted file mode 100755 index ff9b9c2576..0000000000 --- a/src/calibre/ebooks/rtf2xml/correct_unicode.py +++ /dev/null @@ -1,94 +0,0 @@ -######################################################################### -# # -# # -# copyright 2002 Paul Henry Tremblay # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # -# General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA # -# 02111-1307 USA # -# # -# # -######################################################################### -import os, re, tempfile -from calibre.ebooks.rtf2xml import copy -class CorrectUnicode: - """ - corrects sequences such as \u201c\'F0\'BE - Where \'F0\'BE has to be eliminated. - """ - def __init__(self, - in_file, - exception_handler, - bug_handler, - copy = None, - run_level = 1, - ): - self.__file = in_file - self.__bug_handler = bug_handler - self.__copy = copy - self.__run_level = run_level - self.__write_to = tempfile.mktemp() - self.__exception_handler = exception_handler - self.__bug_handler = bug_handler - self.__state = 'outside' - self.__utf_exp = re.compile(r'&#x(.*?);') - def __process_token(self, line): - if self.__state == 'outside': - if line[:5] == 'tx 57343 and dec_num < 63743: - self.__state = 'outside' - else: - self.__write_obj.write(line) - self.__state = 'after' - else: - self.__write_obj.write(line) - self.__state = 'outside' - def correct_unicode(self): - """ - Requires: - nothing - Returns: - nothing (changes the original file) - Logic: - Read one line in at a time. - """ - read_obj = open(self.__file, 'r') - self.__write_obj = open(self.__write_to, 'w') - line_to_read = 1 - while line_to_read: - line_to_read = read_obj.readline() - line = line_to_read - self.__token_info = line[:16] - self.__process_token(line) - read_obj.close() - self.__write_obj.close() - copy_obj = copy.Copy(bug_handler = self.__bug_handler) - if self.__copy: - copy_obj.copy_file(self.__write_to, "correct_unicode.data") - copy_obj.rename(self.__write_to, self.__file) - os.remove(self.__write_to) diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py index ace2ac5c7e..0b37fe2515 100644 --- a/src/calibre/gui2/add.py +++ b/src/calibre/gui2/add.py @@ -43,28 +43,34 @@ class RecursiveFind(QThread): self.single_book_per_directory = single self.canceled = False + def walk(self, root): + self.books = [] + for dirpath in os.walk(root): + if self.canceled: + return + self.emit(SIGNAL('update(PyQt_PyObject)'), + _('Searching in')+' '+dirpath[0]) + self.books += list(self.db.find_books_in_directory(dirpath[0], + self.single_book_per_directory)) + def run(self): root = os.path.abspath(self.path) - self.books = [] - if isinstance(root, unicode): - root = root.encode(filesystem_encoding) try: - for dirpath in os.walk(root): - if self.canceled: - return - self.emit(SIGNAL('update(PyQt_PyObject)'), - _('Searching in')+' '+dirpath[0]) - self.books += list(self.db.find_books_in_directory(dirpath[0], - self.single_book_per_directory)) - except Exception, err: - import traceback - traceback.print_exc() + self.walk(root) + except: try: - msg = unicode(err) - except: - msg = repr(err) - self.emit(SIGNAL('found(PyQt_PyObject)'), msg) - return + if isinstance(root, unicode): + root = root.encode(filesystem_encoding) + self.walk(root) + except Exception, err: + import traceback + traceback.print_exc() + try: + msg = unicode(err) + except: + msg = repr(err) + self.emit(SIGNAL('found(PyQt_PyObject)'), msg) + return self.books = [formats for formats in self.books if formats] diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.py b/src/calibre/gui2/catalog/catalog_epub_mobi.py index 2037545bb4..12971528b2 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.py +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.py @@ -18,10 +18,13 @@ class PluginWidget(QWidget,Ui_Form): HELP = _('Options specific to')+' EPUB/MOBI '+_('output') OPTION_FIELDS = [('exclude_genre','\[[\w ]*\]'), ('exclude_tags','~,'+_('Catalog')), + ('generate_titles', True), + ('generate_recently_added', True), ('note_tag','*'), ('numbers_as_text', False), ('read_tag','+')] + # Output synced to the connected device? sync_enabled = True @@ -37,7 +40,7 @@ class PluginWidget(QWidget,Ui_Form): # Update dialog fields from stored options for opt in self.OPTION_FIELDS: opt_value = gprefs.get(self.name + '_' + opt[0], opt[1]) - if opt[0] == 'numbers_as_text': + if opt[0] in ['numbers_as_text','generate_titles','generate_recently_added']: getattr(self, opt[0]).setChecked(opt_value) else: getattr(self, opt[0]).setText(opt_value) @@ -45,19 +48,20 @@ class PluginWidget(QWidget,Ui_Form): def options(self): # Save/return the current options # exclude_genre stores literally - # numbers_as_text stores as True/False + # generate_titles, generate_recently_added, numbers_as_text stores as True/False # others store as lists opts_dict = {} for opt in self.OPTION_FIELDS: - if opt[0] == 'numbers_as_text': + if opt[0] in ['numbers_as_text','generate_titles','generate_recently_added']: opt_value = getattr(self,opt[0]).isChecked() else: opt_value = unicode(getattr(self, opt[0]).text()) gprefs.set(self.name + '_' + opt[0], opt_value) - if opt[0] == 'exclude_genre' or 'numbers_as_text': + + if opt[0] in ['exclude_genre','numbers_as_text','generate_titles','generate_recently_added']: opts_dict[opt[0]] = opt_value else: - opt_value = opt_value.split(',') + opts_dict[opt[0]] = opt_value.split(',') opts_dict['output_profile'] = [load_defaults('page_setup')['output_profile']] diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.ui b/src/calibre/gui2/catalog/catalog_epub_mobi.ui index 044ecdaaec..dab8c972c7 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.ui +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.ui @@ -14,63 +14,56 @@ Form - + 'Don't include this book' tag: - + - + 'Mark this book as read' tag: - + - + Additional note tag prefix: - + - - - - Sort numbers as text - - - - + - + Regex pattern describing tags to exclude as genres: @@ -83,36 +76,19 @@ - - - - - 14 - 75 - true - - - - Special marker tags for catalog generation - - - Qt::AlignCenter - - - - + Regex tips: -- The default regex of '\[[\w]*\]' ignores tags of the form '[tag]', e.g., '[Amazon Freebie]' -- A regex of '.' ignores all tags, generating no genre categories in the catalog +- The default regex - \[[\w ]*\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie] +- A regex pattern of a single dot excludes all genre tags, generating no Genre Section true - + Qt::Vertical @@ -125,6 +101,27 @@ + + + + Include 'Titles' Section + + + + + + + Include 'Recently Added' Section + + + + + + + Sort numbers as text + + + diff --git a/src/calibre/gui2/convert/gui_conversion.py b/src/calibre/gui2/convert/gui_conversion.py index 70321b049b..148dc328ad 100644 --- a/src/calibre/gui2/convert/gui_conversion.py +++ b/src/calibre/gui2/convert/gui_conversion.py @@ -23,7 +23,7 @@ def gui_convert(input, output, recommendations, notification=DummyReporter(), plumber.run() -def gui_catalog(fmt, title, dbspec, ids, out_file_name, sync, fmt_options, +def gui_catalog(fmt, title, dbspec, ids, out_file_name, sync, fmt_options, connected_device, notification=DummyReporter(), log=None): if log is None: log = Log() @@ -42,7 +42,9 @@ def gui_catalog(fmt, title, dbspec, ids, out_file_name, sync, fmt_options, opts, args = parser.parse_args() # Populate opts + # opts.gui_search_text = something opts.catalog_title = title + opts.connected_device = connected_device opts.ids = ids opts.search_text = None opts.sort_by = None @@ -56,7 +58,8 @@ def gui_catalog(fmt, title, dbspec, ids, out_file_name, sync, fmt_options, setattr(opts,option, fmt_options[option]) # Fetch and run the plugin for fmt + # Returns 0 if successful, 1 if no catalog built plugin = plugin_for_catalog_format(fmt) - plugin.run(out_file_name, opts, db, notification=notification) + return plugin.run(out_file_name, opts, db, notification=notification) diff --git a/src/calibre/gui2/convert/mobi_output.py b/src/calibre/gui2/convert/mobi_output.py index 611ef96e11..57cc3a2ac1 100644 --- a/src/calibre/gui2/convert/mobi_output.py +++ b/src/calibre/gui2/convert/mobi_output.py @@ -6,9 +6,14 @@ __license__ = 'GPL v3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' +from PyQt4.Qt import Qt from calibre.gui2.convert.mobi_output_ui import Ui_Form from calibre.gui2.convert import Widget +from calibre.gui2.widgets import FontFamilyModel +from calibre.utils.fonts import fontconfig + +font_family_model = None class PluginWidget(Widget, Ui_Form): @@ -19,8 +24,35 @@ class PluginWidget(Widget, Ui_Form): def __init__(self, parent, get_option, get_help, db=None, book_id=None): Widget.__init__(self, parent, 'mobi_output', ['prefer_author_sort', 'rescale_images', 'toc_title', - 'dont_compress', 'no_inline_toc'] + 'dont_compress', 'no_inline_toc', 'masthead_font'] ) self.db, self.book_id = db, book_id + + global font_family_model + if font_family_model is None: + font_family_model = FontFamilyModel() + try: + font_family_model.families = fontconfig.find_font_families(allowed_extensions=['ttf']) + except: + import traceback + font_family_model.families = [] + print 'WARNING: Could not load fonts' + traceback.print_exc() + font_family_model.families.sort() + font_family_model.families[:0] = [_('Default')] + + self.font_family_model = font_family_model + self.opt_masthead_font.setModel(self.font_family_model) + self.initialize_options(get_option, get_help, db, book_id) + def set_value_handler(self, g, val): + if unicode(g.objectName()) in 'opt_masthead_font': + idx = -1 + if val: + idx = g.findText(val, Qt.MatchFixedString) + if idx < 0: + idx = 0 + g.setCurrentIndex(idx) + return True + return False diff --git a/src/calibre/gui2/convert/mobi_output.ui b/src/calibre/gui2/convert/mobi_output.ui index a1bad48fb0..9c3ec9e68e 100644 --- a/src/calibre/gui2/convert/mobi_output.ui +++ b/src/calibre/gui2/convert/mobi_output.ui @@ -6,7 +6,7 @@ 0 0 - 400 + 421 300 @@ -41,19 +41,6 @@ - - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -68,6 +55,51 @@ + + + + Kindle options + + + + + + Masthead font: + + + + + + + + + + Qt::Vertical + + + + 20 + 55 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + diff --git a/src/calibre/gui2/convert/page_setup.ui b/src/calibre/gui2/convert/page_setup.ui index 0aa2a97e70..0ea2093697 100644 --- a/src/calibre/gui2/convert/page_setup.ui +++ b/src/calibre/gui2/convert/page_setup.ui @@ -115,6 +115,9 @@ 1 + + 200.000000000000000 + @@ -135,6 +138,9 @@ 1 + + 200.000000000000000 + @@ -155,6 +161,9 @@ 1 + + 200.000000000000000 + @@ -175,6 +184,9 @@ 1 + + 200.000000000000000 + diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index 5a977b37a6..679e86ab48 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -149,7 +149,7 @@ class DeviceManager(Thread): possibly_connected_devices.append((device, detected_device)) if possibly_connected_devices: if not self.do_connect(possibly_connected_devices): - print 'Connect to device failed, retying in 5 seconds...' + print 'Connect to device failed, retrying in 5 seconds...' time.sleep(5) if not self.do_connect(possibly_connected_devices): print 'Device connect failed again, giving up' diff --git a/src/calibre/gui2/device_drivers/configwidget.py b/src/calibre/gui2/device_drivers/configwidget.py index 6eb6e1226d..d1cebcb81d 100644 --- a/src/calibre/gui2/device_drivers/configwidget.py +++ b/src/calibre/gui2/device_drivers/configwidget.py @@ -38,7 +38,7 @@ class ConfigWidget(QWidget, Ui_ConfigWidget): self.opt_read_metadata.setChecked(self.settings.read_metadata) else: self.opt_read_metadata.hide() - if extra_customization_message: + if extra_customization_message and settings.extra_customization: self.extra_customization_label.setText(extra_customization_message) self.opt_extra_customization.setText(settings.extra_customization) else: diff --git a/src/calibre/gui2/dialogs/choose_format.py b/src/calibre/gui2/dialogs/choose_format.py index e0fcb0868b..e1f32e3d26 100644 --- a/src/calibre/gui2/dialogs/choose_format.py +++ b/src/calibre/gui2/dialogs/choose_format.py @@ -12,7 +12,8 @@ class ChooseFormatDialog(QDialog, Ui_ChooseFormatDialog): QDialog.__init__(self, window) Ui_ChooseFormatDialog.__init__(self) self.setupUi(self) - self.connect(self.formats, SIGNAL('activated(QModelIndex)'), lambda i: self.accept()) + self.connect(self.formats, SIGNAL('activated(QModelIndex)'), + self.activated_slot) self.msg.setText(msg) for format in formats: @@ -20,6 +21,15 @@ class ChooseFormatDialog(QDialog, Ui_ChooseFormatDialog): format.upper())) self._formats = formats self.formats.setCurrentRow(0) + self._format = None + + def activated_slot(self, *args): + self.accept() def format(self): - return self._formats[self.formats.currentRow()] + return self._format + + def accept(self): + self._format = self._formats[self.formats.currentRow()] + return QDialog.accept(self) + diff --git a/src/calibre/gui2/dialogs/config/config.ui b/src/calibre/gui2/dialogs/config/config.ui index 6da5362248..aff157bb08 100644 --- a/src/calibre/gui2/dialogs/config/config.ui +++ b/src/calibre/gui2/dialogs/config/config.ui @@ -174,7 +174,7 @@ - Overwrite & author/title by default when fetching metadata + &Overwrite author and title by default when fetching metadata @@ -612,7 +612,7 @@ - calibre can send your books to you (or your reader) by email + calibre can send your books to you (or your reader) by email. Emails will be automatically sent for downloaded news to all email addresses that have Auto-send checked. true diff --git a/src/calibre/gui2/dialogs/fetch_metadata.ui b/src/calibre/gui2/dialogs/fetch_metadata.ui index f14d402e11..dab12a1917 100644 --- a/src/calibre/gui2/dialogs/fetch_metadata.ui +++ b/src/calibre/gui2/dialogs/fetch_metadata.ui @@ -119,7 +119,7 @@ - Overwrite &author/title with author/title of selected book + Overwrite author and title with author and title of selected book diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py index 846851fd21..8e40dc053c 100644 --- a/src/calibre/gui2/dialogs/metadata_single.py +++ b/src/calibre/gui2/dialogs/metadata_single.py @@ -10,7 +10,6 @@ import os import re import time import traceback -from datetime import datetime, timedelta from PyQt4.Qt import SIGNAL, QObject, QCoreApplication, Qt, QTimer, QThread, QDate, \ QPixmap, QListWidgetItem, QDialog @@ -28,7 +27,8 @@ from calibre.ebooks.metadata import authors_to_sort_string, string_to_authors, \ from calibre.ebooks.metadata.library_thing import cover_from_isbn from calibre import islinux from calibre.ebooks.metadata.meta import get_metadata -from calibre.utils.config import prefs +from calibre.utils.config import prefs, tweaks +from calibre.utils.date import qt_to_dt from calibre.customize.ui import run_plugins_on_import, get_isbndb_key from calibre.gui2.dialogs.config.social import SocialMetadata @@ -354,12 +354,10 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.comments.setPlainText(comments if comments else '') cover = self.db.cover(row) pubdate = db.pubdate(self.id, index_is_id=True) - self.local_timezone_offset = timedelta(seconds=time.timezone) - timedelta(hours=time.daylight) - pubdate = pubdate - self.local_timezone_offset self.pubdate.setDate(QDate(pubdate.year, pubdate.month, pubdate.day)) timestamp = db.timestamp(self.id, index_is_id=True) - timestamp = timestamp - self.local_timezone_offset + self.orig_timestamp = timestamp self.date.setDate(QDate(timestamp.year, timestamp.month, timestamp.day)) @@ -399,6 +397,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): if not pm.isNull(): self.cover.setPixmap(pm) self.cover_data = cover + self.original_series_name = unicode(self.series.text()).strip() def validate_isbn(self, isbn): isbn = unicode(isbn).strip() @@ -582,7 +581,6 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): if book.isbn: self.isbn.setText(book.isbn) if book.pubdate: d = book.pubdate - d = d - self.local_timezone_offset self.pubdate.setDate(QDate(d.year, d.month, d.day)) summ = book.comments if summ: @@ -594,6 +592,11 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.rating.setValue(int(book.rating)) if book.tags: self.tags.setText(', '.join(book.tags)) + if book.series is not None: + if self.series.text() is None or self.series.text() == '': + self.series.setText(book.series) + if book.series_index is not None: + self.series_index.setValue(book.series_index) else: error_dialog(self, _('Cannot fetch metadata'), _('You must specify at least one of ISBN, Title, ' @@ -605,10 +608,13 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): def increment_series_index(self): if self.db is not None: try: - series = unicode(self.series.text()) - if series: - ns = self.db.get_next_series_num_for(series) + series = unicode(self.series.text()).strip() + if series and series != self.original_series_name: + ns = 1 + if tweaks['series_index_auto_increment'] == 'next': + ns = self.db.get_next_series_num_for(series) self.series_index.setValue(ns) + self.original_series_name = series except: traceback.print_exc() @@ -640,21 +646,25 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): re.sub(r'[^0-9a-zA-Z]', '', unicode(self.isbn.text())), notify=False) self.db.set_rating(self.id, 2*self.rating.value(), notify=False) self.db.set_publisher(self.id, qstring_to_unicode(self.publisher.currentText()), notify=False) - self.db.set_tags(self.id, qstring_to_unicode(self.tags.text()).split(','), notify=False) - self.db.set_series(self.id, qstring_to_unicode(self.series.currentText()), notify=False) + self.db.set_tags(self.id, [x.strip() for x in + unicode(self.tags.text()).split(',')], notify=False) + self.db.set_series(self.id, + unicode(self.series.currentText()).strip(), notify=False) self.db.set_series_index(self.id, self.series_index.value(), notify=False) self.db.set_comment(self.id, qstring_to_unicode(self.comments.toPlainText()), notify=False) d = self.pubdate.date() - d = datetime(d.year(), d.month(), d.day()) - d = d + self.local_timezone_offset + d = qt_to_dt(d) self.db.set_pubdate(self.id, d) d = self.date.date() - d = datetime(d.year(), d.month(), d.day()) - d = d + self.local_timezone_offset - self.db.set_timestamp(self.id, d) + d = qt_to_dt(d) + if d.date() != self.orig_timestamp.date(): + self.db.set_timestamp(self.id, d) - if self.cover_changed and self.cover_data is not None: - self.db.set_cover(self.id, self.cover_data) + if self.cover_changed: + if self.cover_data is not None: + self.db.set_cover(self.id, self.cover_data) + else: + self.db.remove_cover(self.id) except IOError, err: if err.errno == 13: # Permission denied fname = err.filename if err.filename else 'file' diff --git a/src/calibre/gui2/dialogs/scheduler.py b/src/calibre/gui2/dialogs/scheduler.py index 8702322b7e..5aee71d7c6 100644 --- a/src/calibre/gui2/dialogs/scheduler.py +++ b/src/calibre/gui2/dialogs/scheduler.py @@ -7,7 +7,7 @@ __docformat__ = 'restructuredtext en' Scheduler for automated recipe downloads ''' -from datetime import datetime, timedelta +from datetime import timedelta from PyQt4.Qt import QDialog, SIGNAL, Qt, QTime, QObject, QMenu, \ QAction, QIcon, QMutex, QTimer @@ -17,6 +17,7 @@ from calibre.gui2.search_box import SearchBox2 from calibre.gui2 import config as gconf, error_dialog from calibre.web.feeds.recipes.model import RecipeModel from calibre.ptempfile import PersistentTemporaryFile +from calibre.utils.date import utcnow class SchedulerDialog(QDialog, Ui_Dialog): @@ -185,7 +186,7 @@ class SchedulerDialog(QDialog, Ui_Dialog): self.day.setCurrentIndex(day+1) self.time.setTime(QTime(hour, minute)) - d = datetime.utcnow() - last_downloaded + d = utcnow() - last_downloaded def hm(x): return (x-x%3600)//3600, (x%3600 - (x%3600)%60)//60 hours, minutes = hm(d.seconds) tm = _('%d days, %d hours and %d minutes ago')%(d.days, hours, minutes) diff --git a/src/calibre/gui2/dialogs/search.py b/src/calibre/gui2/dialogs/search.py index f41a80e620..47bf9c6c9f 100644 --- a/src/calibre/gui2/dialogs/search.py +++ b/src/calibre/gui2/dialogs/search.py @@ -5,21 +5,30 @@ from PyQt4.QtGui import QDialog from calibre.gui2.dialogs.search_ui import Ui_Dialog from calibre.gui2 import qstring_to_unicode - +from calibre.library.database2 import CONTAINS_MATCH, EQUALS_MATCH class SearchDialog(QDialog, Ui_Dialog): def __init__(self, *args): QDialog.__init__(self, *args) self.setupUi(self) + self.mc = '' def tokens(self, raw): - phrases = re.findall(r'\s+".*?"\s+', raw) + phrases = re.findall(r'\s*".*?"\s*', raw) for f in phrases: raw = raw.replace(f, ' ') - return [t.strip() for t in phrases + raw.split()] + phrases = [t.strip('" ') for t in phrases] + return ['"' + self.mc + t + '"' for t in phrases + [r.strip() for r in raw.split()]] def search_string(self): + mk = self.matchkind.currentIndex() + if mk == CONTAINS_MATCH: + self.mc = '' + elif mk == EQUALS_MATCH: + self.mc = '=' + else: + self.mc = '~' all, any, phrase, none = map(lambda x: unicode(x.text()), (self.all, self.any, self.phrase, self.none)) all, any, none = map(self.tokens, (all, any, none)) diff --git a/src/calibre/gui2/dialogs/search.ui b/src/calibre/gui2/dialogs/search.ui index bbd7411583..dc66aae6a9 100644 --- a/src/calibre/gui2/dialogs/search.ui +++ b/src/calibre/gui2/dialogs/search.ui @@ -104,7 +104,64 @@ - + + + + 16777215 + 60 + + + + + + + What kind of match to use: + + + matchkind + + + + + + + + Contains: the word or phrase matches anywhere in the metadata + + + + + Equals: the word or phrase must match an entire metadata field + + + + + Regular expression: the expression must match anywhere in the metadata + + + + + + + + + 40 + 0 + + + + + + + matchkind + + + + + + + + 16777215 diff --git a/src/calibre/gui2/library.py b/src/calibre/gui2/library.py index fd4f8999b4..bf4fd02fa8 100644 --- a/src/calibre/gui2/library.py +++ b/src/calibre/gui2/library.py @@ -1,8 +1,7 @@ from calibre.ebooks.metadata import authors_to_string __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' -import os, textwrap, traceback, time, re -from datetime import timedelta, datetime +import os, textwrap, traceback, re, shutil from operator import attrgetter from math import cos, sin, pi @@ -17,13 +16,15 @@ from PyQt4.QtCore import QAbstractTableModel, QVariant, Qt, pyqtSignal, \ from calibre import strftime from calibre.ptempfile import PersistentTemporaryFile from calibre.utils.pyparsing import ParseException -from calibre.library.database2 import FIELD_MAP +from calibre.library.database2 import FIELD_MAP, _match, CONTAINS_MATCH, EQUALS_MATCH, REGEXP_MATCH from calibre.gui2 import NONE, TableView, qstring_to_unicode, config, \ error_dialog from calibre.gui2.widgets import EnLineEdit, TagsLineEdit from calibre.utils.search_query_parser import SearchQueryParser from calibre.ebooks.metadata.meta import set_metadata as _set_metadata from calibre.ebooks.metadata import string_to_authors, fmt_sidx +from calibre.utils.config import tweaks +from calibre.utils.date import dt_factory, qt_to_dt, isoformat class LibraryDelegate(QItemDelegate): COLOR = QColor("blue") @@ -97,7 +98,10 @@ class DateDelegate(QStyledItemDelegate): def createEditor(self, parent, option, index): qde = QStyledItemDelegate.createEditor(self, parent, option, index) - qde.setDisplayFormat(unicode(qde.displayFormat()).replace('yy', 'yyyy')) + stdformat = unicode(qde.displayFormat()) + if 'yyyy' not in stdformat: + stdformat = stdformat.replace('yy', 'yyyy') + qde.setDisplayFormat(stdformat) qde.setMinimumDate(QDate(101,1,1)) qde.setCalendarPopup(True) return qde @@ -465,8 +469,10 @@ class BooksModel(QAbstractTableModel): break if format is not None: pt = PersistentTemporaryFile(suffix='.'+format) - pt.write(self.db.format(id, format, index_is_id=True)) + src = self.db.format(id, format, index_is_id=True, as_file=True) + shutil.copyfileobj(src, pt) pt.flush() + pt.seek(0) if set_metadata: _set_metadata(pt, self.db.get_metadata(id, get_cover=True, index_is_id=True), format) @@ -563,13 +569,11 @@ class BooksModel(QAbstractTableModel): def timestamp(r): dt = self.db.data[r][tmdx] if dt: - dt = dt - timedelta(seconds=time.timezone) + timedelta(hours=time.daylight) return QDate(dt.year, dt.month, dt.day) def pubdate(r): dt = self.db.data[r][pddx] if dt: - dt = dt - timedelta(seconds=time.timezone) + timedelta(hours=time.daylight) return QDate(dt.year, dt.month, dt.day) def rating(r): @@ -657,21 +661,20 @@ class BooksModel(QAbstractTableModel): self.db.set_series_index(id, float(match.group(1))) val = pat.sub('', val).strip() elif val: - ni = self.db.get_next_series_num_for(val) - if ni != 1: - self.db.set_series_index(id, ni) + if tweaks['series_index_auto_increment'] == 'next': + ni = self.db.get_next_series_num_for(val) + if ni != 1: + self.db.set_series_index(id, ni) if val: self.db.set_series(id, val) elif column == 'timestamp': if val.isNull() or not val.isValid(): return False - dt = datetime(val.year(), val.month(), val.day()) + timedelta(seconds=time.timezone) - timedelta(hours=time.daylight) - self.db.set_timestamp(id, dt) + self.db.set_timestamp(id, qt_to_dt(val, as_utc=False)) elif column == 'pubdate': if val.isNull() or not val.isValid(): return False - dt = datetime(val.year(), val.month(), val.day()) + timedelta(seconds=time.timezone) - timedelta(hours=time.daylight) - self.db.set_pubdate(id, dt) + self.db.set_pubdate(id, qt_to_dt(val, as_utc=False)) else: self.db.set(row, column, val) self.emit(SIGNAL("dataChanged(QModelIndex, QModelIndex)"), \ @@ -888,7 +891,20 @@ class OnDeviceSearch(SearchQueryParser): def get_matches(self, location, query): location = location.lower().strip() - query = query.lower().strip() + + matchkind = CONTAINS_MATCH + if len(query) > 1: + if query.startswith('\\'): + query = query[1:] + elif query.startswith('='): + matchkind = EQUALS_MATCH + query = query[1:] + elif query.startswith('~'): + matchkind = REGEXP_MATCH + query = query[1:] + if matchkind != REGEXP_MATCH: ### leave case in regexps because it can be significant e.g. \S \W \D + query = query.lower() + if location not in ('title', 'author', 'tag', 'all', 'format'): return set([]) matches = set([]) @@ -899,13 +915,28 @@ class OnDeviceSearch(SearchQueryParser): 'tag':lambda x: ','.join(getattr(x, 'tags')).lower(), 'format':lambda x: os.path.splitext(x.path)[1].lower() } - for i, v in enumerate(locations): - locations[i] = q[v] - for i, r in enumerate(self.model.db): - for loc in locations: - if query in loc(r): - matches.add(i) - break + for index, row in enumerate(self.model.db): + for locvalue in locations: + accessor = q[locvalue] + try: + ### Can't separate authors because comma is used for name sep and author sep + ### Exact match might not get what you want. For that reason, turn author + ### exactmatch searches into contains searches. + if locvalue == 'author' and matchkind == EQUALS_MATCH: + m = CONTAINS_MATCH + else: + m = matchkind + + if locvalue == 'tag': + vals = accessor(row).split(',') + else: + vals = [accessor(row)] + if _match(query, vals, m): + matches.add(index) + break + except ValueError: # Unicode errors + import traceback + traceback.print_exc() return matches @@ -999,7 +1030,8 @@ class DeviceBooksModel(BooksModel): def datecmp(x, y): x = self.db[x].datetime y = self.db[y].datetime - return cmp(datetime(*x[0:6]), datetime(*y[0:6])) + return cmp(dt_factory(x, assume_utc=True), dt_factory(y, + assume_utc=True)) def sizecmp(x, y): x, y = int(self.db[x].size), int(self.db[y].size) return cmp(x, y) @@ -1048,10 +1080,8 @@ class DeviceBooksModel(BooksModel): type = ext[1:].lower() data[_('Format')] = type data[_('Path')] = item.path - dt = item.datetime - dt = datetime(*dt[0:6]) - dt = dt - timedelta(seconds=time.timezone) + timedelta(hours=time.daylight) - data[_('Timestamp')] = strftime('%a %b %d %H:%M:%S %Y', dt.timetuple()) + dt = dt_factory(item.datetime, assume_utc=True) + data[_('Timestamp')] = isoformat(dt, sep=' ', as_utc=False) data[_('Tags')] = ', '.join(item.tags) self.emit(SIGNAL('new_bookdisplay_data(PyQt_PyObject)'), data) @@ -1086,8 +1116,7 @@ class DeviceBooksModel(BooksModel): return QVariant(BooksView.human_readable(size)) elif col == 3: dt = self.db[self.map[row]].datetime - dt = datetime(*dt[0:6]) - dt = dt - timedelta(seconds=time.timezone) + timedelta(hours=time.daylight) + dt = dt_factory(dt, assume_utc=True, as_utc=False) return QVariant(strftime(BooksView.TIME_FMT, dt.timetuple())) elif col == 4: tags = self.db[self.map[row]].tags diff --git a/src/calibre/gui2/lrf_renderer/document.py b/src/calibre/gui2/lrf_renderer/document.py index 13407d45bf..f0c53b12f9 100644 --- a/src/calibre/gui2/lrf_renderer/document.py +++ b/src/calibre/gui2/lrf_renderer/document.py @@ -79,6 +79,8 @@ class _Canvas(QGraphicsRectItem): pen = QPen() pen.setStyle(Qt.NoPen) self.setPen(pen) + if not hasattr(self, 'children'): + self.children = self.childItems def layout_block(self, block, x, y): if isinstance(block, TextBlock): diff --git a/src/calibre/gui2/lrf_renderer/text.py b/src/calibre/gui2/lrf_renderer/text.py index e612a1af5a..b6a2788353 100644 --- a/src/calibre/gui2/lrf_renderer/text.py +++ b/src/calibre/gui2/lrf_renderer/text.py @@ -358,6 +358,8 @@ class Line(QGraphicsItem): self.links = collections.deque() self.current_link = None self.valign = None + if not hasattr(self, 'children'): + self.children = self.childItems def start_link(self, refobj, slot): self.current_link = [self.current_width, sys.maxint, refobj, slot] diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py index 8ad0dff4d2..6d4e0d8655 100644 --- a/src/calibre/gui2/tag_view.py +++ b/src/calibre/gui2/tag_view.py @@ -173,6 +173,8 @@ class TagsModel(QAbstractItemModel): if len(data[r]) > 0: self.beginInsertRows(category_index, 0, len(data[r])-1) for tag in data[r]: + if r == 'author': + tag.name = tag.name.replace('|', ',') tag.state = state_map.get(tag.name, 0) t = TagTreeItem(parent=category, data=tag, icon_map=self.icon_map) self.endInsertRows() @@ -278,7 +280,7 @@ class TagsModel(QAbstractItemModel): category = key if key != 'news' else 'tag' if tag.state > 0: prefix = ' not ' if tag.state == 2 else '' - ans.append('%s%s:"%s"'%(prefix, category, tag.name)) + ans.append('%s%s:"=%s"'%(prefix, category, tag.name)) return ans diff --git a/src/calibre/gui2/tools.py b/src/calibre/gui2/tools.py index bd34f84821..90686f7d86 100644 --- a/src/calibre/gui2/tools.py +++ b/src/calibre/gui2/tools.py @@ -7,7 +7,7 @@ __docformat__ = 'restructuredtext en' Logic for setting up conversion jobs ''' -import cPickle +import cPickle, os from PyQt4.Qt import QDialog, QProgressDialog, QString, QTimer, SIGNAL @@ -236,7 +236,7 @@ def fetch_scheduled_recipe(arg): return 'gui_convert', args, _('Fetch news from ')+arg['title'], fmt.upper(), [pt] -def generate_catalog(parent, dbspec, ids): +def generate_catalog(parent, dbspec, ids, device): from calibre.gui2.dialogs.catalog import Catalog # Build the Catalog dialog in gui2.dialogs.catalog @@ -248,6 +248,26 @@ def generate_catalog(parent, dbspec, ids): # Create the output file out = PersistentTemporaryFile(suffix='_catalog_out.'+d.catalog_format.lower()) + # Profile the connected device + # Parallel initialization in calibre.library.cli:command_catalog() + connected_device = { 'storage':None,'serial':None,'name':None} + if device: + try: + storage = [] + if device._main_prefix: + storage.append(os.path.join(device._main_prefix, device.EBOOK_DIR_MAIN)) + if device._card_a_prefix: + storage.append(os.path.join(device._card_a_prefix, device.EBOOK_DIR_CARD_A)) + if device._card_b_prefix: + storage.append(os.path.join(device._card_b_prefix, device.EBOOK_DIR_CARD_B)) + connected_device = {'storage': storage, + 'serial': device.detected_device.serial if \ + hasattr(device.detected_device,'serial') else None, + 'name': device.gui_name} + except: + pass + + # These args are passed inline to gui2.convert.gui_conversion:gui_catalog args = [ d.catalog_format, d.catalog_title, @@ -255,12 +275,13 @@ def generate_catalog(parent, dbspec, ids): ids, out.name, d.catalog_sync, - d.fmt_options + d.fmt_options, + connected_device ] out.close() # This returns to gui2.ui:generate_catalog() - # Which then calls gui2.convert.gui_conversion:gui_catalog() + # Which then calls gui2.convert.gui_conversion:gui_catalog() with the args inline return 'gui_catalog', args, _('Generate catalog'), out.name, d.catalog_sync, \ d.catalog_title diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index 7f3ca297fd..c16b868b34 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -337,7 +337,8 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): QObject.connect(self.view_menu.actions()[0], SIGNAL("triggered(bool)"), self.view_book) QObject.connect(self.view_menu.actions()[1], - SIGNAL("triggered(bool)"), self.view_specific_format) + SIGNAL("triggered(bool)"), self.view_specific_format, + Qt.QueuedConnection) self.connect(self.action_open_containing_folder, SIGNAL('triggered(bool)'), self.view_folder) self.delete_menu.actions()[0].triggered.connect(self.delete_books) @@ -668,19 +669,19 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): if type == 'series': series = idx.model().db.series(row) if series: - search = ['series:'+series] + search = ['series:"'+series+'"'] elif type == 'publisher': publisher = idx.model().db.publisher(row) if publisher: - search = ['publisher:'+publisher] + search = ['publisher:"'+publisher+'"'] elif type == 'tag': tags = idx.model().db.tags(row) if tags: - search = ['tag:'+t for t in tags.split(',')] + search = ['tag:"='+t+'"' for t in tags.split(',')] elif type == 'author': authors = idx.model().db.authors(row) if authors: - search = ['author:'+a.strip().replace('|', ',') \ + search = ['author:"='+a.strip().replace('|', ',')+'"' \ for a in authors.split(',')] join = ' or ' if search: @@ -1378,7 +1379,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): show=True) # Calling gui2.tools:generate_catalog() - ret = generate_catalog(self, dbspec, ids) + ret = generate_catalog(self, dbspec, ids, self.device_manager.device) if ret is None: return @@ -1394,6 +1395,11 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): self.status_bar.showMessage(_('Generating %s catalog...')%fmt) def catalog_generated(self, job): + if job.result: + # Search terms nulled catalog results + return error_dialog(self, _('No books found'), + _("No books to catalog\nCheck exclude tags"), + show=True) if job.failed: return self.job_exception(job) id = self.library_view.model().add_catalog(job.catalog_file_path, job.catalog_title) @@ -1637,12 +1643,9 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): row = rows[0].row() formats = self.library_view.model().db.formats(row).upper().split(',') d = ChooseFormatDialog(self, _('Choose the format to view'), formats) - d.exec_() - if d.result() == QDialog.Accepted: + if d.exec_() == QDialog.Accepted: format = d.format() self.view_format(row, format) - else: - return def view_folder(self, *args): rows = self.current_view().selectionModel().selectedRows() diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py index 9b911754c8..5ad22506b6 100644 --- a/src/calibre/gui2/viewer/documentview.py +++ b/src/calibre/gui2/viewer/documentview.py @@ -5,7 +5,7 @@ __docformat__ = 'restructuredtext en' ''' ''' -import os, math, re, glob +import os, math, re, glob, sys from base64 import b64encode from PyQt4.Qt import QSize, QSizePolicy, QUrl, SIGNAL, Qt, QTimer, \ QPainter, QPalette, QBrush, QFontDatabase, QDialog, \ @@ -295,8 +295,49 @@ class Document(QWebPage): if r > 0: self.javascript('document.body.style.paddingBottom = "%dpx"'%r) + def element_ypos(self, elem): + ans, ok = elem.evaluateJavaScript('$(this).offset().top').toInt() + if not ok: + raise ValueError('No ypos found') + return ans + + def elem_outer_xml(self, elem): + return unicode(elem.toOuterXml()) + + def find_bookmark_element(self): + mf = self.mainFrame() + doc_pos = self.ypos + min_delta, min_elem = sys.maxint, None + for y in range(10, -500, -10): + for x in range(-50, 500, 10): + pos = QPoint(x, y) + result = mf.hitTestContent(pos) + if result.isNull(): continue + elem = result.enclosingBlockElement() + if elem.isNull(): continue + try: + ypos = self.element_ypos(elem) + except: + continue + delta = abs(ypos - doc_pos) + if delta < 25: + return elem + if delta < min_delta: + min_elem, min_delta = elem, delta + return min_elem + + def bookmark(self): - return self.javascript('calculate_bookmark(%d)'%(self.ypos+25), 'string') + elem = self.find_bookmark_element() + + if elem is None or self.element_ypos(elem) < 100: + bm = 'body|%f'%(float(self.ypos)/(self.height*0.7)) + else: + bm = unicode(elem.evaluateJavaScript( + 'calculate_bookmark(%d, this)'%self.ypos).toString()) + if not bm: + bm = 'body|%f'%(float(self.ypos)/(self.height*0.7)) + return bm @property def at_bottom(self): diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py index 96bfd2dfd7..952c4df20c 100644 --- a/src/calibre/gui2/viewer/main.py +++ b/src/calibre/gui2/viewer/main.py @@ -5,7 +5,7 @@ import traceback, os, sys, functools, collections, re from functools import partial from threading import Thread -from PyQt4.Qt import QApplication, Qt, QIcon, QTimer, SIGNAL, \ +from PyQt4.Qt import QApplication, Qt, QIcon, QTimer, SIGNAL, QByteArray, \ QDesktopServices, QDoubleSpinBox, QLabel, QTextBrowser, \ QPainter, QBrush, QColor, QStandardItemModel, QPalette, \ QStandardItem, QUrl, QRegExpValidator, QRegExp, QLineEdit, \ @@ -161,6 +161,8 @@ class HelpfulLineEdit(QLineEdit): class EbookViewer(MainWindow, Ui_EbookViewer): + STATE_VERSION = 1 + def __init__(self, pathtoebook=None, debug_javascript=False): MainWindow.__init__(self, None) self.setupUi(self) @@ -182,6 +184,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer): self.pos.setToolTip(_('Position in book')) self.pos.setSuffix('/'+_('Unknown')+' ') self.pos.setMinimum(1.) + self.pos.setMinimumWidth(150) self.tool_bar2.insertWidget(self.action_find_next, self.pos) self.reference = HelpfulLineEdit() self.reference.setValidator(QRegExpValidator(QRegExp(r'\d+\.\d+'), self.reference)) @@ -193,6 +196,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer): self.search = SearchBox2(self) self.search.initialize('viewer_search_history') self.search.setToolTip(_('Search for text in book')) + self.search.setMinimumWidth(200) self.tool_bar2.insertWidget(self.action_find_next, self.search) self.view.set_manager(self) self.view.document.debug_javascript = debug_javascript @@ -265,6 +269,25 @@ class EbookViewer(MainWindow, Ui_EbookViewer): ca = self.view.copy_action ca.setShortcut(QKeySequence.Copy) self.addAction(ca) + self.restore_state() + + def closeEvent(self, e): + self.save_state() + return MainWindow.closeEvent(self, e) + + def save_state(self): + state = str(self.saveState(self.STATE_VERSION)) + dynamic['viewer_toolbar_state'] = state + + def restore_state(self): + state = dynamic.get('viewer_toolbar_state', None) + if state is not None: + try: + state = QByteArray(state) + self.restoreState(state, self.STATE_VERSION) + except: + pass + def lookup(self, word): self.dictionary_view.setHtml('

'+ \ diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 67e360da68..c0065c24c9 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -1,15 +1,17 @@ -import os, re, shutil, htmlentitydefs +import datetime, htmlentitydefs, os, re, shutil, time from collections import namedtuple -from datetime import date +from copy import deepcopy + from xml.sax.saxutils import escape -from calibre import filesystem_encoding, prints, strftime +from calibre import filesystem_encoding, prints, prepare_string_for_xml, strftime from calibre.customize import CatalogPlugin from calibre.customize.conversion import OptionRecommendation, DummyReporter from calibre.ebooks.BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag, NavigableString from calibre.ptempfile import PersistentTemporaryDirectory from calibre.utils.logging import Log +from calibre.utils.date import isoformat FIELDS = ['all', 'author_sort', 'authors', 'comments', 'cover', 'formats', 'id', 'isbn', 'pubdate', 'publisher', 'rating', @@ -102,7 +104,9 @@ class CSV_XML(CatalogPlugin): item = ', '.join(item) elif field == 'isbn': # Could be 9, 10 or 13 digits - field = u'%s' % re.sub(r'[\D]','',field) + item = u'%s' % re.sub(r'[\D]', '', item) + elif field in ['pubdate', 'timestamp']: + item = isoformat(item) if x < len(fields) - 1: if item is not None: @@ -163,12 +167,12 @@ class CSV_XML(CatalogPlugin): if 'date' in fields: record_child = etree.SubElement(record, 'date') record_child.set(PY + "if", "record['date']") - record_child.text = "${record['date']}" + record_child.text = "${record['date'].isoformat()}" if 'pubdate' in fields: record_child = etree.SubElement(record, 'pubdate') record_child.set(PY + "if", "record['pubdate']") - record_child.text = "${record['pubdate']}" + record_child.text = "${record['pubdate'].isoformat()}" if 'size' in fields: record_child = etree.SubElement(record, 'size') @@ -274,6 +278,18 @@ class EPUB_MOBI(CatalogPlugin): "--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats")), + Option('--generate-titles', + default=True, + dest='generate_titles', + help=_("Include 'Titles' section in catalog.\n" + "Default: '%default'\n" + "Applies to: ePub, MOBI output formats")), + Option('--generate-recently-added', + default=True, + dest='generate_recently_added', + help=_("Include 'Recently Added' section in catalog.\n" + "Default: '%default'\n" + "Applies to: ePub, MOBI output formats")), Option('--note-tag', default='*', dest='note_tag', @@ -306,17 +322,19 @@ class EPUB_MOBI(CatalogPlugin): 456 => four hundred fifty-six 4:56 => four fifty-six ''' - + ORDINALS = ['zeroth','first','second','third','fourth','fifth','sixth','seventh','eighth','ninth'] lessThanTwenty = ["","one","two","three","four","five","six","seven","eight","nine", "ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen", "eighteen","nineteen"] tens = ["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"] hundreds = ["","one","two","three","four","five","six","seven","eight","nine"] - def __init__(self, number): + def __init__(self, number, verbose=False): self.number = number self.number_as_float = 0.0 self.text = '' + self.verbose = verbose + self.log = Log() self.numberTranslate() def stringFromInt(self, intToTranslate): @@ -324,7 +342,6 @@ class EPUB_MOBI(CatalogPlugin): # intToTranslate is a three-digit number tensComponentString = "" - hundredsComponent = intToTranslate - (intToTranslate % 100) tensComponent = intToTranslate % 100 @@ -336,8 +353,7 @@ class EPUB_MOBI(CatalogPlugin): # Build the tens component if tensComponent < 20: - if tensComponent > 0: - tensComponentString = self.lessThanTwenty[tensComponent] + tensComponentString = self.lessThanTwenty[tensComponent] else: tensPart = "" onesPart = "" @@ -369,9 +385,27 @@ class EPUB_MOBI(CatalogPlugin): hundredsString = "" thousandsString = "" resultString = "" + self.suffix = '' + + if self.verbose: self.log("numberTranslate(): %s" % self.number) + + # Special case ordinals + if re.search('[st|nd|rd|th]',self.number): + self.number = re.sub(',','',self.number) + ordinal_suffix = re.search('[\D]', self.number) + ordinal_number = re.sub('\D','',re.sub(',','',self.number)) + if self.verbose: self.log("Ordinal: %s" % ordinal_number) + self.number_as_float = ordinal_number + self.suffix = self.number[ordinal_suffix.start():] + if int(ordinal_number) > 9: + # Some typos (e.g., 'twentyth'), acceptable + self.text = '%s' % (EPUB_MOBI.NumberToText(ordinal_number).text) + else: + self.text = '%s' % (self.ORDINALS[int(ordinal_number)]) # Test for time - if re.search(':',self.number): + elif re.search(':',self.number): + if self.verbose: self.log("Time: %s" % self.number) self.number_as_float = re.sub(':','.',self.number) time_strings = self.number.split(":") hours = EPUB_MOBI.NumberToText(time_strings[0]).text @@ -380,11 +414,13 @@ class EPUB_MOBI(CatalogPlugin): # Test for % elif re.search('%', self.number): + if self.verbose: self.log("Percent: %s" % self.number) self.number_as_float = self.number.split('%')[0] self.text = EPUB_MOBI.NumberToText(self.number.replace('%',' percent')).text # Test for decimal elif re.search('\.',self.number): + if self.verbose: self.log("Decimal: %s" % self.number) self.number_as_float = self.number decimal_strings = self.number.split(".") left = EPUB_MOBI.NumberToText(decimal_strings[0]).text @@ -393,6 +429,7 @@ class EPUB_MOBI(CatalogPlugin): # Test for hypenated elif re.search('-', self.number): + if self.verbose: self.log("Hyphenated: %s" % self.number) self.number_as_float = self.number.split('-')[0] strings = self.number.split('-') if re.search('[0-9]+', strings[0]): @@ -403,44 +440,54 @@ class EPUB_MOBI(CatalogPlugin): right = EPUB_MOBI.NumberToText(strings[1]).text self.text = '%s-%s' % (left, right) - # Test for comma - elif re.search(',', self.number): + # Test for only commas and numbers + elif re.search(',', self.number) and not re.search('[^0-9,]',self.number): + if self.verbose: self.log("Comma(s): %s" % self.number) self.number_as_float = re.sub(',','',self.number) - self.text = EPUB_MOBI.NumberToText(self.number.replace(',','')).text + self.text = EPUB_MOBI.NumberToText(self.number_as_float).text - # Test for hybrid e.g., 'K2' + # Test for hybrid e.g., 'K2, 2nd, 10@10' elif re.search('[\D]+', self.number): - result = [] - for char in self.number: - if re.search('[\d]+', char): - result.append(EPUB_MOBI.NumberToText(char).text) - else: - result.append(char) - self.text = ''.join(result) + if self.verbose: self.log("Hybrid: %s" % self.number) + # Split the token into number/text + number_position = re.search('\d',self.number).start() + text_position = re.search('\D',self.number).start() + if number_position < text_position: + number = self.number[:text_position] + text = self.number[text_position:] + self.text = '%s%s' % (EPUB_MOBI.NumberToText(number).text,text) + else: + text = self.number[:number_position] + number = self.number[number_position:] + self.text = '%s%s' % (text, EPUB_MOBI.NumberToText(number).text) else: + if self.verbose: self.log("Clean: %s" % self.number) try: self.float_as_number = float(self.number) number = int(self.number) except: return - if number > 1000000: + if number > 10**9: self.text = "%d out of range" % number return - if number == 1000000: - self.text = "one million" + if number == 10**9: + self.text = "one billion" else : - # Strip out the three-digit number groups - thousandsNumber = number/1000 - hundredsNumber = number - (thousandsNumber * 1000) + # Isolate the three-digit number groups + millionsNumber = number/10**6 + thousandsNumber = (number - (millionsNumber * 10**6))/10**3 + hundredsNumber = number - (millionsNumber * 10**6) - (thousandsNumber * 10**3) + if self.verbose: + print "Converting %s %s %s" % (millionsNumber, thousandsNumber, hundredsNumber) - # Convert the lower 3 numbers - hundredsNumber + # Convert hundredsNumber if hundredsNumber : hundredsString = self.stringFromInt(hundredsNumber) - # Convert the upper 3 numbers - thousandsNumber + # Convert thousandsNumber if thousandsNumber: if number > 1099 and number < 2000: resultString = '%s %s' % (self.lessThanTwenty[number/100], @@ -450,19 +497,26 @@ class EPUB_MOBI(CatalogPlugin): else: thousandsString = self.stringFromInt(thousandsNumber) + # Convert millionsNumber + if millionsNumber: + millionsString = self.stringFromInt(millionsNumber) + # Concatenate the strings - if thousandsNumber and not hundredsNumber: - resultString = "%s thousand" % thousandsString + resultString = '' + if millionsNumber: + resultString += "%s million " % millionsString - if thousandsNumber and hundredsNumber: - resultString = "%s thousand %s" % (thousandsString, hundredsString) + if thousandsNumber: + resultString += "%s thousand " % thousandsString - if not thousandsNumber and hundredsNumber: - resultString = "%s" % hundredsString + if hundredsNumber: + resultString += "%s" % hundredsString - if not thousandsNumber and not hundredsNumber: + if not millionsNumber and not thousandsNumber and not hundredsNumber: resultString = "zero" + if self.verbose: + self.log(u'resultString: %s' % resultString) self.text = resultString.strip().capitalize() class CatalogBuilder(object): @@ -482,26 +536,18 @@ class EPUB_MOBI(CatalogPlugin): catalog.createDirectoryStructure() catalog.copyResources() catalog.buildSources() - - - To do: - *** generateThumbnails() creates a default book image from book.svg, but the background - is black instead of white. This needs to be fixed (approx line #1418) - ''' - - # Number of discrete steps to catalog creation - current_step = 0.0 - total_steps = 14.0 - - THUMB_WIDTH = 75 - THUMB_HEIGHT = 100 + # A single number creates 'Last x days' only. + # Multiple numbers create 'Last x days', 'x to y days ago' ... + # e.g, [7,15,30,60], [30] + # [] = No date ranges added + DATE_RANGE=[30] # basename output file basename # creator dc:creator in OPF metadata # descriptionClip limits size of NCX descriptions (Kindle only) # includeSources Used in processSpecialTags to skip tags like '[SPL]' # notification Used to check for cancel, report progress - # plugin_path Plugin zip file (resources) # stylesheet CSS stylesheet # title dc:title in OPF metadata, NCX periodical # verbosity level of diagnostic printout @@ -510,12 +556,15 @@ class EPUB_MOBI(CatalogPlugin): report_progress=DummyReporter(), stylesheet="content/stylesheet.css"): self.__opts = opts + self.__authorClip = opts.authorClip self.__authors = None self.__basename = opts.basename self.__booksByAuthor = None self.__booksByTitle = None + self.__booksByTitle_noSeriesPrefix = None self.__catalogPath = PersistentTemporaryDirectory("_epub_mobi_catalog", prefix='') self.__contentDir = os.path.join(self.catalogPath, "content") + self.__currentStep = 0.0 self.__creator = opts.creator self.__db = db self.__descriptionClip = opts.descriptionClip @@ -524,20 +573,30 @@ class EPUB_MOBI(CatalogPlugin): self.opts.output_profile and \ self.opts.output_profile.startswith("kindle")) else False self.__genres = None + self.__genre_tags_dict = None self.__htmlFileList = [] self.__markerTags = self.getMarkerTags() self.__ncxSoup = None self.__playOrder = 1 self.__plugin = plugin - self.__plugin_path = opts.plugin_path self.__progressInt = 0.0 self.__progressString = '' self.__reporter = report_progress self.__stylesheet = stylesheet self.__thumbs = None + self.__thumbWidth = 0 + self.__thumbHeight = 0 self.__title = opts.catalog_title + self.__totalSteps = 11.0 + self.__useSeriesPrefixInTitlesSection = False self.__verbose = opts.verbose + # Tweak build steps based on optional sections. 1 call for HTML, 1 for NCX + if self.opts.generate_titles: + self.__totalSteps += 2 + if self.opts.generate_recently_added: + self.__totalSteps += 2 + # Accessors ''' @dynamic_property @@ -549,6 +608,13 @@ class EPUB_MOBI(CatalogPlugin): return property(fget=fget, fset=fset) ''' + @dynamic_property + def authorClip(self): + def fget(self): + return self.__authorClip + def fset(self, val): + self.__authorClip = val + return property(fget=fget, fset=fset) @dynamic_property def authors(self): def fget(self): @@ -578,6 +644,13 @@ class EPUB_MOBI(CatalogPlugin): self.__booksByTitle = val return property(fget=fget, fset=fset) @dynamic_property + def booksByTitle_noSeriesPrefix(self): + def fget(self): + return self.__booksByTitle_noSeriesPrefix + def fset(self, val): + self.__booksByTitle_noSeriesPrefix = val + return property(fget=fget, fset=fset) + @dynamic_property def catalogPath(self): def fget(self): return self.__catalogPath @@ -592,6 +665,13 @@ class EPUB_MOBI(CatalogPlugin): self.__contentDir = val return property(fget=fget, fset=fset) @dynamic_property + def currentStep(self): + def fget(self): + return self.__currentStep + def fset(self, val): + self.__currentStep = val + return property(fget=fget, fset=fset) + @dynamic_property def creator(self): def fget(self): return self.__creator @@ -630,6 +710,13 @@ class EPUB_MOBI(CatalogPlugin): self.__genres = val return property(fget=fget, fset=fset) @dynamic_property + def genre_tags_dict(self): + def fget(self): + return self.__genre_tags_dict + def fset(self, val): + self.__genre_tags_dict = val + return property(fget=fget, fset=fset) + @dynamic_property def htmlFileList(self): def fget(self): return self.__htmlFileList @@ -675,13 +762,6 @@ class EPUB_MOBI(CatalogPlugin): return self.__plugin return property(fget=fget) @dynamic_property - def pluginPath(self): - def fget(self): - return self.__pluginPath - def fset(self, val): - self.__pluginPath = val - return property(fget=fget, fset=fset) - @dynamic_property def progressInt(self): def fget(self): return self.__progressInt @@ -716,6 +796,18 @@ class EPUB_MOBI(CatalogPlugin): def fset(self, val): self.__thumbs = val return property(fget=fget, fset=fset) + def thumbWidth(self): + def fget(self): + return self.__thumbWidth + def fset(self, val): + self.__thumbWidth = val + return property(fget=fget, fset=fset) + def thumbHeight(self): + def fget(self): + return self.__thumbHeight + def fset(self, val): + self.__thumbHeight = val + return property(fget=fget, fset=fset) @dynamic_property def title(self): def fget(self): @@ -724,6 +816,18 @@ class EPUB_MOBI(CatalogPlugin): self.__title = val return property(fget=fget, fset=fset) @dynamic_property + def totalSteps(self): + def fget(self): + return self.__totalSteps + return property(fget=fget) + @dynamic_property + def useSeriesPrefixInTitlesSection(self): + def fget(self): + return self.__useSeriesPrefixInTitlesSection + def fset(self, val): + self.__useSeriesPrefixInTitlesSection = val + return property(fget=fget, fset=fset) + @dynamic_property def verbose(self): def fget(self): return self.__verbose @@ -756,12 +860,16 @@ class EPUB_MOBI(CatalogPlugin): # Methods def buildSources(self): - self.fetchBooksByTitle() + if self.booksByTitle is None: + if not self.fetchBooksByTitle(): + return False self.fetchBooksByAuthor() self.generateHTMLDescriptions() self.generateHTMLByAuthor() - self.generateHTMLByTitle() - self.generateHTMLByDateAdded() + if self.opts.generate_titles: + self.generateHTMLByTitle() + if self.opts.generate_recently_added: + self.generateHTMLByDateAdded() self.generateHTMLByTags() from calibre.utils.PythonMagickWand import ImageMagick @@ -772,10 +880,13 @@ class EPUB_MOBI(CatalogPlugin): self.generateNCXHeader() self.generateNCXDescriptions("Descriptions") self.generateNCXByAuthor("Authors") - self.generateNCXByTitle("Titles") - self.generateNCXByDateAdded("Recently Added") + if self.opts.generate_titles: + self.generateNCXByTitle("Titles") + if self.opts.generate_recently_added: + self.generateNCXByDateAdded("Recently Added") self.generateNCXByGenre("Genres") self.writeNCX() + return True def cleanUp(self): pass @@ -797,12 +908,16 @@ class EPUB_MOBI(CatalogPlugin): os.path.join(self.catalogPath, file[0])) # Create the custom masthead image overwriting default - try: - self.generate_masthead_image(os.path.join(self.catalogPath, 'images/mastheadImage.gif')) - except: - pass + # If failure, default mastheadImage.gif should still be in place + if self.generateForKindle: + try: + self.generateMastheadImage(os.path.join(self.catalogPath, + 'images/mastheadImage.gif')) + except: + pass def fetchBooksByTitle(self): + self.updateProgressFullStep("Fetching database") # Get the database as a dictionary @@ -814,14 +929,16 @@ class EPUB_MOBI(CatalogPlugin): self.opts.sort_by = 'title' - # Merge opts.exclude_tag with opts.search_text - - # What if no exclude tags? - exclude_tags = self.opts.exclude_tags.split(',') - search_terms = [] - for tag in exclude_tags: - search_terms.append("tag:%s" % tag) - search_phrase = "not (%s)" % " or ".join(search_terms) + # Merge opts.exclude_tags with opts.search_text + # Updated to use exact match syntax + empty_exclude_tags = False if len(self.opts.exclude_tags) else True + search_phrase = '' + if not empty_exclude_tags: + exclude_tags = self.opts.exclude_tags.split(',') + search_terms = [] + for tag in exclude_tags: + search_terms.append("tag:=%s" % tag) + search_phrase = "not (%s)" % " or ".join(search_terms) # If a list of ids are provided, don't use search_text if self.opts.ids: @@ -832,6 +949,7 @@ class EPUB_MOBI(CatalogPlugin): else: self.opts.search_text = search_phrase + #print "fetchBooksByTitle(): opts.search_text: %s" % self.opts.search_text # Fetch the database as a dictionary data = self.plugin.search_sort_db(self.db, self.opts) @@ -840,11 +958,33 @@ class EPUB_MOBI(CatalogPlugin): for record in data: this_title = {} - title = this_title['title'] = self.convertHTMLEntities(record['title']) - this_title['title_sort'] = self.generateSortTitle(title) - this_title['author'] = " & ".join(record['authors']) - this_title['author_sort'] = record['author_sort'] if len(record['author_sort']) \ + this_title['title'] = self.convertHTMLEntities(record['title']) + if record['series']: + this_title['series'] = record['series'] + this_title['series_index'] = record['series_index'] + this_title['title'] = self.generateSeriesTitle(this_title) + else: + this_title['series'] = None + this_title['series_index'] = 0.0 + + this_title['title_sort'] = self.generateSortTitle(this_title['title']) + if 'authors' in record and record['authors']: + this_title['author'] = " & ".join(record['authors']) + else: + this_title['author'] = 'Unknown' + + ''' + this_title['author_sort_original'] = record['author_sort'] + author_sort = record['author_sort'] if len(record['author_sort'].strip()) \ else self.author_to_author_sort(this_title['author']) + author_sort = author_sort[0].upper() + author_sort[1:] + this_title['author_sort'] = author_sort + ''' + if 'author_sort' in record and record['author_sort'].strip(): + this_title['author_sort'] = record['author_sort'] + else: + this_title['author_sort'] = self.author_to_author_sort(this_title['author']) + this_title['id'] = record['id'] if record['publisher']: this_title['publisher'] = re.sub('&', '&', record['publisher']) @@ -853,8 +993,14 @@ class EPUB_MOBI(CatalogPlugin): this_title['date'] = strftime(u'%B %Y', record['pubdate'].timetuple()) this_title['timestamp'] = record['timestamp'] if record['comments']: - this_title['description'] = re.sub('&', '&', record['comments']) - this_title['short_description'] = self.generateShortDescription(this_title['description']) + this_title['description'] = self.markdownComments(record['comments']) + paras = BeautifulSoup(this_title['description']).findAll('p') + tokens = [] + for p in paras: + for token in p.contents: + if token.string is not None: + tokens.append(token.string) + this_title['short_description'] = self.generateShortDescription(' '.join(tokens), dest="description") else: this_title['description'] = None this_title['short_description'] = None @@ -877,24 +1023,46 @@ class EPUB_MOBI(CatalogPlugin): titles.append(this_title) # Re-sort based on title_sort - self.booksByTitle = sorted(titles, - key=lambda x:(x['title_sort'].upper(), x['title_sort'].upper())) - if False and self.verbose: - self.opts.log.info("fetchBooksByTitle(): %d books" % len(self.booksByTitle)) - for title in self.booksByTitle: - self.opts.log.info((u" %-50s %-25s" % (title['title'][0:45], title['title_sort'][0:20])).encode('utf-8')) + if len(titles): + self.booksByTitle = sorted(titles, + key=lambda x:(x['title_sort'].upper(), x['title_sort'].upper())) + if False and self.verbose: + self.opts.log.info("fetchBooksByTitle(): %d books" % len(self.booksByTitle)) + self.opts.log.info(" %-40s %-40s" % ('title', 'title_sort')) + for title in self.booksByTitle: + self.opts.log.info((u" %-40s %-40s" % (title['title'][0:40], + title['title_sort'][0:40])).encode('utf-8')) + return True + else: + return False def fetchBooksByAuthor(self): # Generate a list of titles sorted by author from the database self.updateProgressFullStep("Sorting database") - # Sort titles case-insensitive + ''' + # Sort titles case-insensitive, by author self.booksByAuthor = sorted(self.booksByTitle, key=lambda x:(x['author_sort'].upper(), x['author_sort'].upper())) + ''' + + self.booksByAuthor = list(self.booksByTitle) + self.booksByAuthor.sort(self.author_compare) + + if False and self.verbose: + self.opts.log.info("fetchBooksByAuthor(): %d books" % len(self.booksByAuthor)) + self.opts.log.info(" %-30s %-20s %s" % ('title', 'series', 'series_index')) + for title in self.booksByAuthor: + self.opts.log.info((u" %-30s %-20s%5s " % \ + (title['title'][:30], + title['series'][:20] if title['series'] else '', + title['series_index'], + )).encode('utf-8')) + raise SystemExit # Build the unique_authors set from existing data - authors = [(record['author'], record['author_sort']) for record in self.booksByAuthor] + authors = [(record['author'], record['author_sort'].capitalize()) for record in self.booksByAuthor] # authors[] contains a list of all book authors, with multiple entries for multiple books by author # authors[]: (([0]:friendly [1]:sort)) @@ -936,6 +1104,7 @@ class EPUB_MOBI(CatalogPlugin): for author in unique_authors: self.opts.log.info((u" %-50s %-25s %2d" % (author[0][0:45], author[1][0:20], author[2])).encode('utf-8')) + self.authors = unique_authors def generateHTMLDescriptions(self): @@ -965,7 +1134,17 @@ class EPUB_MOBI(CatalogPlugin): # Insert the book title #

Book Title

emTag = Tag(soup, "em") - emTag.insert(0, NavigableString(escape(title['title']))) + if title['series']: + # title
series series_index + brTag = Tag(soup,'br') + title_tokens = title['title'].split(': ') + emTag.insert(0, escape(NavigableString(title_tokens[1]))) + emTag.insert(1, brTag) + smallTag = Tag(soup,'small') + smallTag.insert(0, escape(NavigableString(title_tokens[0]))) + emTag.insert(2, smallTag) + else: + emTag.insert(0, NavigableString(escape(title['title']))) titleTag = body.find(attrs={'class':'title'}) titleTag.insert(0,emTag) @@ -975,7 +1154,12 @@ class EPUB_MOBI(CatalogPlugin): aTag['href'] = "%s.html#%s" % ("ByAlphaAuthor", self.generateAuthorAnchor(title['author'])) #aTag.insert(0, escape(title['author'])) aTag.insert(0, title['author']) - authorTag.insert(0, NavigableString("by ")) + + # Insert READ_SYMBOL + if title['read']: + authorTag.insert(0, NavigableString(self.READ_SYMBOL + "by ")) + else: + authorTag.insert(0, NavigableString(self.NOT_READ_SYMBOL + "by ")) authorTag.insert(1, aTag) ''' @@ -987,6 +1171,27 @@ class EPUB_MOBI(CatalogPlugin): tagsTag.insert(0,emTag) ''' + ''' + # Insert Series info or remove. + seriesTag = body.find(attrs={'class':'series'}) + if title['series']: + # Insert a spacer to match the author indent + stc = 0 + fontTag = Tag(soup,"font") + fontTag['style'] = 'color:white;font-size:large' + if self.opts.fmt == 'epub': + fontTag['style'] += ';opacity: 0.0' + fontTag.insert(0, NavigableString("by ")) + seriesTag.insert(stc, fontTag) + stc += 1 + if float(title['series_index']) - int(title['series_index']): + series_str = 'Series: %s [%4.2f]' % (title['series'], title['series_index']) + else: + series_str = '%s [%d]' % (title['series'], title['series_index']) + seriesTag.insert(stc,NavigableString(series_str)) + else: + seriesTag.extract() + ''' # Insert linked genres if 'tags' in title: tagsTag = body.find(attrs={'class':'tags'}) @@ -1003,7 +1208,8 @@ class EPUB_MOBI(CatalogPlugin): for tag in title['tags']: aTag = Tag(soup,'a') - aTag['href'] = "Genre%s.html" % re.sub("\W","",self.convertHTMLEntities(tag)) + #print "aTag: %s" % "Genre_%s.html" % re.sub("\W","",tag.lower()) + aTag['href'] = "Genre_%s.html" % re.sub("\W","",tag.lower()) aTag.insert(0,escape(NavigableString(tag))) emTag = Tag(soup, "em") emTag.insert(0, aTag) @@ -1019,7 +1225,12 @@ class EPUB_MOBI(CatalogPlugin): else: imgTag['src'] = "../images/thumbnail_default.jpg" imgTag['alt'] = "cover" - imgTag['style'] = 'width: %dpx; height:%dpx;' % (self.THUMB_WIDTH, self.THUMB_HEIGHT) + + ''' + if self.opts.fmt == 'mobi': + imgTag['style'] = 'width: %dpx; height:%dpx;' % (self.thumbWidth, self.thumbHeight) + ''' + thumbnailTag = body.find(attrs={'class':'thumbnail'}) thumbnailTag.insert(0,imgTag) @@ -1105,8 +1316,29 @@ class EPUB_MOBI(CatalogPlugin): dtc = 0 current_letter = "" + # 2/14/10 7:11 AM Experimental: re-sort title list without leading series/series_index + if not self.useSeriesPrefixInTitlesSection: + nspt = deepcopy(self.booksByTitle) + for book in nspt: + if book['series']: + tokens = book['title'].split(': ') + book['title'] = '%s (%s)' % (tokens[1], tokens[0]) + book['title_sort'] = self.generateSortTitle(book['title']) + nspt = sorted(nspt, + key=lambda x:(x['title_sort'].upper(), x['title_sort'].upper())) + self.booksByTitle_noSeriesPrefix = nspt + if False and self.verbose: + self.opts.log.info("no_series_prefix_titles: %d books" % len(nspt)) + self.opts.log.info(" %-40s %-40s" % ('title', 'title_sort')) + for title in nspt: + self.opts.log.info((u" %-40s %-40s" % (title['title'][0:40], + title['title_sort'][0:40])).encode('utf-8')) + # Loop through the books by title - for book in self.booksByTitle: + title_list = self.booksByTitle + if not self.useSeriesPrefixInTitlesSection: + title_list = self.booksByTitle_noSeriesPrefix + for book in title_list: if self.letter_or_symbol(book['title_sort'][0]) != current_letter : # Start a new letter current_letter = self.letter_or_symbol(book['title_sort'][0]) @@ -1211,12 +1443,13 @@ class EPUB_MOBI(CatalogPlugin): dtc = 0 current_letter = "" current_author = "" + current_series = None - # Loop through books_by_author + # Loop through booksByAuthor book_count = 0 for book in self.booksByAuthor: book_count += 1 - if book['author_sort'][0].upper() != current_letter : + if self.letter_or_symbol(book['author_sort'][0].upper()) != current_letter : ''' # Start a new letter - anchor only, hidden current_letter = book['author_sort'][0].upper() @@ -1226,19 +1459,21 @@ class EPUB_MOBI(CatalogPlugin): dtc += 1 ''' # Start a new letter with Index letter - current_letter = book['author_sort'][0].upper() + current_letter = self.letter_or_symbol(book['author_sort'][0].upper()) pIndexTag = Tag(soup, "p") pIndexTag['class'] = "letter_index" aTag = Tag(soup, "a") - aTag['name'] = "%sauthors" % current_letter + aTag['name'] = "%sauthors" % self.letter_or_symbol(current_letter) pIndexTag.insert(0,aTag) - pIndexTag.insert(1,NavigableString(book['author_sort'][0].upper())) + pIndexTag.insert(1,NavigableString(self.letter_or_symbol(book['author_sort'][0].upper()))) divTag.insert(dtc,pIndexTag) dtc += 1 if book['author'] != current_author: # Start a new author current_author = book['author'] + non_series_books = 0 + current_series = None pAuthorTag = Tag(soup, "p") pAuthorTag['class'] = "author_index" emTag = Tag(soup, "em") @@ -1250,11 +1485,31 @@ class EPUB_MOBI(CatalogPlugin): divTag.insert(dtc,pAuthorTag) dtc += 1 + # Insert an
between non-series and series + if not current_series and non_series_books and book['series']: + # Insert an
+ hrTag = Tag(soup,'hr') + hrTag['class'] = "series_divider" + divTag.insert(dtc,hrTag) + dtc += 1 + + # Check for series + if book['series'] and book['series'] != current_series: + # Start a new series + current_series = book['series'] + pSeriesTag = Tag(soup,'p') + pSeriesTag['class'] = "series" + pSeriesTag.insert(0,NavigableString(self.NOT_READ_SYMBOL + book['series'])) + divTag.insert(dtc,pSeriesTag) + dtc += 1 + if current_series and not book['series']: + current_series = None + # Add books pBookTag = Tag(soup, "p") ptc = 0 - # Prefix book with read/unread symbol + # book with read/unread symbol if book['read']: # check mark pBookTag.insert(ptc,NavigableString(self.READ_SYMBOL)) @@ -1268,7 +1523,12 @@ class EPUB_MOBI(CatalogPlugin): aTag = Tag(soup, "a") aTag['href'] = "book_%d.html" % (int(float(book['id']))) - aTag.insert(0,escape(book['title'])) + # Use series, series index if avail else just title + if current_series: + aTag.insert(0,escape(book['title'][len(book['series'])+1:])) + else: + aTag.insert(0,escape(book['title'])) + non_series_books += 1 pBookTag.insert(ptc, aTag) ptc += 1 @@ -1303,14 +1563,13 @@ class EPUB_MOBI(CatalogPlugin): # Write books by reverse chronological order self.updateProgressFullStep("'Recently Added'") - def add_books_to_HTML(this_months_list, dtc): + def add_books_to_HTML_by_month(this_months_list, dtc): if len(this_months_list): - date_string = strftime(u'%B %Y', current_date.timetuple()) - this_months_list = sorted(this_months_list, - key=lambda x:(x['title_sort'], x['title_sort'])) - this_months_list = sorted(this_months_list, - key=lambda x:(x['author_sort'], x['author_sort'])) + + this_months_list.sort(self.author_compare) + # Create a new month anchor + date_string = strftime(u'%B %Y', current_date.timetuple()) pIndexTag = Tag(soup, "p") pIndexTag['class'] = "date_index" aTag = Tag(soup, "a") @@ -1320,11 +1579,14 @@ class EPUB_MOBI(CatalogPlugin): divTag.insert(dtc,pIndexTag) dtc += 1 current_author = None + current_series = None for new_entry in this_months_list: if new_entry['author'] != current_author: # Start a new author current_author = new_entry['author'] + non_series_books = 0 + current_series = None pAuthorTag = Tag(soup, "p") pAuthorTag['class'] = "author_index" emTag = Tag(soup, "em") @@ -1336,6 +1598,68 @@ class EPUB_MOBI(CatalogPlugin): divTag.insert(dtc,pAuthorTag) dtc += 1 + # Insert an
between non-series and series + if not current_series and non_series_books and new_entry['series']: + # Insert an
+ hrTag = Tag(soup,'hr') + hrTag['class'] = "series_divider" + divTag.insert(dtc,hrTag) + dtc += 1 + + # Check for series + if new_entry['series'] and new_entry['series'] != current_series: + # Start a new series + current_series = new_entry['series'] + pSeriesTag = Tag(soup,'p') + pSeriesTag['class'] = "series" + pSeriesTag.insert(0,NavigableString(self.NOT_READ_SYMBOL + new_entry['series'])) + divTag.insert(dtc,pSeriesTag) + dtc += 1 + if current_series and not new_entry['series']: + current_series = None + + # Add books + pBookTag = Tag(soup, "p") + ptc = 0 + + # Prefix book with read/unread symbol + if new_entry['read']: + # check mark + pBookTag.insert(ptc,NavigableString(self.READ_SYMBOL)) + pBookTag['class'] = "read_book" + ptc += 1 + else: + # hidden check mark + pBookTag['class'] = "unread_book" + pBookTag.insert(ptc,NavigableString(self.NOT_READ_SYMBOL)) + ptc += 1 + + aTag = Tag(soup, "a") + aTag['href'] = "book_%d.html" % (int(float(new_entry['id']))) + if current_series: + aTag.insert(0,escape(new_entry['title'][len(new_entry['series'])+1:])) + else: + aTag.insert(0,escape(new_entry['title'])) + non_series_books += 1 + pBookTag.insert(ptc, aTag) + ptc += 1 + + divTag.insert(dtc, pBookTag) + dtc += 1 + return dtc + + def add_books_to_HTML_by_date_range(date_range_list, date_range, dtc): + if len(date_range_list): + pIndexTag = Tag(soup, "p") + pIndexTag['class'] = "date_index" + aTag = Tag(soup, "a") + aTag['name'] = date_range.replace(' ','') + pIndexTag.insert(0,aTag) + pIndexTag.insert(1,NavigableString(date_range)) + divTag.insert(dtc,pIndexTag) + dtc += 1 + + for new_entry in date_range_list: # Add books pBookTag = Tag(soup, "p") ptc = 0 @@ -1358,15 +1682,23 @@ class EPUB_MOBI(CatalogPlugin): pBookTag.insert(ptc, aTag) ptc += 1 + # Dot + pBookTag.insert(ptc, NavigableString(" · ")) + ptc += 1 + + # Link to author + emTag = Tag(soup, "em") + aTag = Tag(soup, "a") + aTag['href'] = "%s.html#%s" % ("ByAlphaAuthor", self.generateAuthorAnchor(new_entry['author'])) + aTag.insert(0, NavigableString(new_entry['author'])) + emTag.insert(0,aTag) + pBookTag.insert(ptc, emTag) + ptc += 1 + divTag.insert(dtc, pBookTag) dtc += 1 return dtc - - # Sort titles case-insensitive - self.booksByDate = sorted(self.booksByTitle, - key=lambda x:(x['timestamp'], x['timestamp']),reverse=True) - friendly_name = "Recently Added" soup = self.generateHTMLEmptyHeader(friendly_name) @@ -1404,20 +1736,63 @@ class EPUB_MOBI(CatalogPlugin): divTag = Tag(soup, "div") dtc = 0 - current_date = date.fromordinal(1) + # Add books by date range + if self.useSeriesPrefixInTitlesSection: + self.booksByDateRange = sorted(self.booksByTitle, + key=lambda x:(x['timestamp'], x['timestamp']),reverse=True) + else: + nspt = deepcopy(self.booksByTitle) + for book in nspt: + if book['series']: + tokens = book['title'].split(': ') + book['title'] = '%s (%s)' % (tokens[1], tokens[0]) + book['title_sort'] = self.generateSortTitle(book['title']) + self.booksByDateRange = sorted(nspt, key=lambda x:(x['timestamp'], x['timestamp']),reverse=True) + + today = datetime.datetime.now() + date_range_list = [] + today_time = datetime.datetime(today.year, today.month, today.day) + books_added_in_date_range = False + for (i, date) in enumerate(self.DATE_RANGE): + date_range_limit = self.DATE_RANGE[i] + if i: + date_range = '%d to %d days ago' % (self.DATE_RANGE[i-1], self.DATE_RANGE[i]) + else: + date_range = 'Last %d days' % (self.DATE_RANGE[i]) + for book in self.booksByDateRange: + book_time = datetime.datetime(book['timestamp'].year, book['timestamp'].month, book['timestamp'].day) + if (today_time-book_time).days <= date_range_limit: + #print "generateHTMLByDateAdded: %s added %d days ago" % (book['title'], (today_time-book_time).days) + date_range_list.append(book) + books_added_in_date_range = True + else: + break + dtc = add_books_to_HTML_by_date_range(date_range_list, date_range, dtc) + date_range_list = [book] + + if books_added_in_date_range: + # Add an
separating date ranges from months + hrTag = Tag(soup,'hr') + divTag.insert(dtc,hrTag) + dtc += 1 + + # Sort titles case-insensitive for by month using series prefix + self.booksByMonth = sorted(self.booksByTitle, + key=lambda x:(x['timestamp'], x['timestamp']),reverse=True) # Loop through books by date + current_date = datetime.date.fromordinal(1) this_months_list = [] - for book in self.booksByDate: + for book in self.booksByMonth: if book['timestamp'].month != current_date.month or \ book['timestamp'].year != current_date.year: - dtc = add_books_to_HTML(this_months_list, dtc) + dtc = add_books_to_HTML_by_month(this_months_list, dtc) this_months_list = [] current_date = book['timestamp'].date() this_months_list.append(book) # Add the last month's list - add_books_to_HTML(this_months_list, dtc) + add_books_to_HTML_by_month(this_months_list, dtc) # Add the divTag to the body body.insert(btc, divTag) @@ -1432,75 +1807,111 @@ class EPUB_MOBI(CatalogPlugin): def generateHTMLByTags(self): # Generate individual HTML files for each tag, e.g. Fiction, Nonfiction ... # Note that special tags - ~+*[] - have already been filtered from books[] + # There may be synonomous tags self.updateProgressFullStep("'Genres'") - # Filter out REMOVE_TAGS, sort - filtered_tags = self.filterDbTags(self.db.all_tags()) + self.genre_tags_dict = self.filterDbTags(self.db.all_tags()) # Extract books matching filtered_tags genre_list = [] - for tag in filtered_tags: + for friendly_tag in sorted(self.genre_tags_dict): + #print "\ngenerateHTMLByTags(): looking for books with friendly_tag '%s'" % friendly_tag + # tag_list => { normalized_genre_tag : [{book},{},{}], + # normalized_genre_tag : [{book},{},{}] } + tag_list = {} - tag_list['tag'] = tag - tag_list['books'] = [] for book in self.booksByAuthor: - if 'tags' in book and tag in book['tags']: + # Scan each book for tag matching friendly_tag + if 'tags' in book and friendly_tag in book['tags']: this_book = {} this_book['author'] = book['author'] this_book['title'] = book['title'] - this_book['author_sort'] = book['author_sort'] + this_book['author_sort'] = book['author_sort'].capitalize() this_book['read'] = book['read'] this_book['id'] = book['id'] - tag_list['books'].append(this_book) + this_book['series'] = book['series'] + normalized_tag = self.genre_tags_dict[friendly_tag] + genre_tag_list = [key for genre in genre_list for key in genre] + if normalized_tag in genre_tag_list: + for existing_genre in genre_list: + for key in existing_genre: + new_book = None + if key == normalized_tag: + for book in existing_genre[key]: + if book['title'] == this_book['title']: + new_book = False + break + else: + new_book = True + if new_book: + existing_genre[key].append(this_book) + else: + tag_list[normalized_tag] = [this_book] + genre_list.append(tag_list) - if len(tag_list['books']): - # Possible to have an empty tag list if the books were excluded - genre_list.append(tag_list) + if self.opts.verbose: + self.opts.log.info(" Genre summary: %d active genre tags used in generating catalog with %d titles" % + (len(genre_list), len(self.booksByTitle))) + + for genre in genre_list: + for key in genre: + self.opts.log.info(" %s: %d %s" % (self.getFriendlyGenreTag(key), + len(genre[key]), + 'titles' if len(genre[key]) > 1 else 'title')) # Write the results - # genre_list = [ [tag_list], [tag_list] ...] + # genre_list = [ {friendly_tag:[{book},{book}]}, {friendly_tag:[{book},{book}]}, ...] master_genre_list = [] - for (index, genre) in enumerate(genre_list): - # Create sorted_authors[0] = friendly, [1] = author_sort for NCX creation - authors = [] - for book in genre['books']: - authors.append((book['author'],book['author_sort'])) + for genre_tag_set in genre_list: + for (index, genre) in enumerate(genre_tag_set): + #print "genre: %s \t genre_tag_set[genre]: %s" % (genre, genre_tag_set[genre]) - # authors[] contains a list of all book authors, with multiple entries for multiple books by author - # Create unique_authors with a count of books per author as the third tuple element - books_by_current_author = 1 - current_author = authors[0] - unique_authors = [] - for (i,author) in enumerate(authors): - if author != current_author and i: - unique_authors.append((current_author[0], current_author[1], books_by_current_author)) - current_author = author - books_by_current_author = 1 - elif i==0 and len(authors) == 1: - # Allow for single-book lists - unique_authors.append((current_author[0], current_author[1], books_by_current_author)) - else: - books_by_current_author += 1 - ''' - # Extract the unique entries - unique_authors = [] - for author in authors: - if not author in unique_authors: - unique_authors.append(author) - ''' + # Create sorted_authors[0] = friendly, [1] = author_sort for NCX creation + authors = [] + for book in genre_tag_set[genre]: + authors.append((book['author'],book['author_sort'])) - # Write the genre book list as an article - titles_spanned = self.generateHTMLByGenre(genre['tag'], True if index==0 else False, genre['books'], - "%s/Genre%s.html" % (self.contentDir, re.sub("\W","", self.convertHTMLEntities(genre['tag'])))) + # authors[] contains a list of all book authors, with multiple entries for multiple books by author + # Create unique_authors with a count of books per author as the third tuple element + books_by_current_author = 1 + current_author = authors[0] + unique_authors = [] + for (i,author) in enumerate(authors): + if author != current_author and i: + unique_authors.append((current_author[0], current_author[1], books_by_current_author)) + current_author = author + books_by_current_author = 1 + elif i==0 and len(authors) == 1: + # Allow for single-book lists + unique_authors.append((current_author[0], current_author[1], books_by_current_author)) + else: + books_by_current_author += 1 + ''' + # Extract the unique entries + unique_authors = [] + for author in authors: + if not author in unique_authors: + unique_authors.append(author) + ''' + # Write the genre book list as an article + titles_spanned = self.generateHTMLByGenre(genre, True if index==0 else False, + genre_tag_set[genre], + "%s/Genre_%s.html" % (self.contentDir, + genre)) - tag_file = "content/Genre%s.html" % (re.sub("\W","", self.convertHTMLEntities(genre['tag']))) - master_genre_list.append({'tag':genre['tag'], - 'file':tag_file, - 'authors':unique_authors, - 'books':genre['books'], - 'titles_spanned':titles_spanned}) + tag_file = "content/Genre_%s.html" % genre + master_genre_list.append({'tag':genre, + 'file':tag_file, + 'authors':unique_authors, + 'books':genre_tag_set[genre], + 'titles_spanned':titles_spanned}) + if False and self.opts.verbose: + for genre in master_genre_list: + print "genre['tag']: %s" % genre['tag'] + for book in genre['books']: + print book['title'] self.genres = master_genre_list def generateThumbnails(self): @@ -1508,10 +1919,9 @@ class EPUB_MOBI(CatalogPlugin): # If a cover doesn't exist, use default # Return list of active thumbs + self.updateProgressFullStep("'Thumbnails'") thumbs = ['thumbnail_default.jpg'] - image_dir = "%s/images" % self.catalogPath - for (i,title) in enumerate(self.booksByTitle): # Update status self.updateProgressMicroStep("Thumbnail %d of %d" % \ @@ -1586,7 +1996,7 @@ class EPUB_MOBI(CatalogPlugin): def generateOPF(self): - self.updateProgressFullStep("Saving OPF") + self.updateProgressFullStep("Generating OPF") header = ''' @@ -1654,7 +2064,9 @@ class EPUB_MOBI(CatalogPlugin): mtc += 1 # HTML files - add books to manifest and spine - for book in self.booksByTitle: + sort_descriptions_by = self.booksByAuthor if self.opts.sort_descriptions_by_author \ + else self.booksByTitle + for book in sort_descriptions_by: # manifest itemTag = Tag(soup, "item") itemTag['href'] = "content/book_%d.html" % int(book['id']) @@ -1780,7 +2192,10 @@ class EPUB_MOBI(CatalogPlugin): nptc += 1 # Loop over the titles - for book in self.booksByTitle: + sort_descriptions_by = self.booksByAuthor if self.opts.sort_descriptions_by_author \ + else self.booksByTitle + + for book in sort_descriptions_by: navPointVolumeTag = Tag(ncx_soup, 'navPoint') navPointVolumeTag['class'] = "article" navPointVolumeTag['id'] = "book%dID" % int(book['id']) @@ -1788,7 +2203,25 @@ class EPUB_MOBI(CatalogPlugin): self.playOrder += 1 navLabelTag = Tag(ncx_soup, "navLabel") textTag = Tag(ncx_soup, "text") - textTag.insert(0, NavigableString(self.formatNCXText(book['title']))) + if book['series']: + tokens = book['title'].split(': ') + if self.generateForKindle: + # Don't include Author for Kindle + textTag.insert(0, NavigableString(self.formatNCXText('%s (%s)' % \ + (tokens[1], tokens[0]), dest='title'))) + else: + # Include Author for non-Kindle + textTag.insert(0, NavigableString(self.formatNCXText('%s · %s (%s)' % \ + (tokens[1], book['author'], tokens[0]), dest='title'))) + else: + if self.generateForKindle: + # Don't include Author for Kindle + textTag.insert(0, NavigableString(self.formatNCXText('%s' % (book['title']), + dest='title'))) + else: + # Include Author for non-Kindle + textTag.insert(0, NavigableString(self.formatNCXText('%s · %s' % \ + (book['title'], book['author']), dest='title'))) navLabelTag.insert(0,textTag) navPointVolumeTag.insert(0,navLabelTag) @@ -1800,10 +2233,10 @@ class EPUB_MOBI(CatalogPlugin): # Add the author tag cmTag = Tag(ncx_soup, '%s' % 'calibre:meta') cmTag['name'] = "author" - navStr = '%s | %s' % (self.formatNCXText(book['author']), + navStr = '%s | %s' % (self.formatNCXText(book['author'], dest='author'), book['date'].split()[1]) - if 'tags' in book: - navStr += ' | %s' % self.formatNCXText(' · '.join(sorted(book['tags']))) + if 'tags' in book and len(book['tags']): + navStr = self.formatNCXText(navStr + ' | ' + ' · '.join(sorted(book['tags'])), dest='author') cmTag.insert(0, NavigableString(navStr)) navPointVolumeTag.insert(2, cmTag) @@ -1811,7 +2244,7 @@ class EPUB_MOBI(CatalogPlugin): if book['short_description']: cmTag = Tag(ncx_soup, '%s' % 'calibre:meta') cmTag['name'] = "description" - cmTag.insert(0, NavigableString(self.formatNCXText(book['short_description']))) + cmTag.insert(0, NavigableString(self.formatNCXText(book['short_description'], dest='description'))) navPointVolumeTag.insert(3, cmTag) # Add this volume to the section tag @@ -1829,7 +2262,7 @@ class EPUB_MOBI(CatalogPlugin): def add_to_books_by_letter(current_book_list): current_book_list = " • ".join(current_book_list) - current_book_list = self.generateShortDescription(self.formatNCXText(current_book_list)) + current_book_list = self.formatNCXText(current_book_list, dest="description") books_by_letter.append(current_book_list) soup = self.ncxSoup @@ -1858,11 +2291,16 @@ class EPUB_MOBI(CatalogPlugin): books_by_letter = [] # Loop over the titles, find start of each letter, add description_preview_count books - current_letter = self.letter_or_symbol(self.booksByTitle[0]['title_sort'][0]) + # Special switch for using different title list + if self.useSeriesPrefixInTitlesSection: + title_list = self.booksByTitle + else: + title_list = self.booksByTitle_noSeriesPrefix + current_letter = self.letter_or_symbol(title_list[0]['title_sort'][0]) title_letters = [current_letter] current_book_list = [] current_book = "" - for book in self.booksByTitle: + for book in title_list: if self.letter_or_symbol(book['title_sort'][0]) != current_letter: # Save the old list add_to_books_by_letter(current_book_list) @@ -1901,7 +2339,7 @@ class EPUB_MOBI(CatalogPlugin): if self.generateForKindle: cmTag = Tag(soup, '%s' % 'calibre:meta') cmTag['name'] = "description" - cmTag.insert(0, NavigableString(self.formatNCXText(books))) + cmTag.insert(0, NavigableString(self.formatNCXText(books, dest='description'))) navPointByLetterTag.insert(2, cmTag) navPointTag.insert(nptc, navPointByLetterTag) @@ -1918,7 +2356,7 @@ class EPUB_MOBI(CatalogPlugin): def add_to_author_list(current_author_list, current_letter): current_author_list = " • ".join(current_author_list) - current_author_list = self.generateShortDescription(self.formatNCXText(current_author_list)) + current_author_list = self.formatNCXText(current_author_list, dest="description") master_author_list.append((current_author_list, current_letter)) soup = self.ncxSoup @@ -1952,15 +2390,15 @@ class EPUB_MOBI(CatalogPlugin): # self.authors[0]:friendly [1]:author_sort [2]:book_count master_author_list = [] # self.authors[0][1][0] = Initial letter of author_sort[0] - current_letter = self.authors[0][1][0] + current_letter = self.letter_or_symbol(self.authors[0][1][0]) current_author_list = [] for author in self.authors: - if author[1][0] != current_letter: + if self.letter_or_symbol(author[1][0]) != current_letter: # Save the old list add_to_author_list(current_author_list, current_letter) # Start the new list - current_letter = author[1][0] + current_letter = self.letter_or_symbol(author[1][0]) current_author_list = [author[0]] else: if len(current_author_list) < self.descriptionClip: @@ -2008,9 +2446,15 @@ class EPUB_MOBI(CatalogPlugin): def add_to_master_month_list(current_titles_list): book_count = len(current_titles_list) current_titles_list = " • ".join(current_titles_list) - current_titles_list = self.generateShortDescription(self.formatNCXText(current_titles_list)) + current_titles_list = self.formatNCXText(current_titles_list, dest='description') master_month_list.append((current_titles_list, current_date, book_count)) + def add_to_master_date_range_list(current_titles_list): + book_count = len(current_titles_list) + current_titles_list = " • ".join(current_titles_list) + current_titles_list = self.formatNCXText(current_titles_list, dest='description') + master_date_range_list.append((current_titles_list, date_range, book_count)) + soup = self.ncxSoup HTML_file = "content/ByDateAdded.html" body = soup.find("navPoint") @@ -2036,15 +2480,74 @@ class EPUB_MOBI(CatalogPlugin): navPointTag.insert(nptc, contentTag) nptc += 1 + # Create an NCX article entry for each date range + current_titles_list = [] + master_date_range_list = [] + today = datetime.datetime.now() + today_time = datetime.datetime(today.year, today.month, today.day) + for (i,date) in enumerate(self.DATE_RANGE): + if i: + date_range = '%d to %d days ago' % (self.DATE_RANGE[i-1], self.DATE_RANGE[i]) + else: + date_range = 'Last %d days' % (self.DATE_RANGE[i]) + date_range_limit = self.DATE_RANGE[i] + for book in self.booksByDateRange: + book_time = datetime.datetime(book['timestamp'].year, book['timestamp'].month, book['timestamp'].day) + if (today_time-book_time).days <= date_range_limit: + #print "generateNCXByDateAdded: %s added %d days ago" % (book['title'], (today_time-book_time).days) + current_titles_list.append(book['title']) + else: + break + if current_titles_list: + add_to_master_date_range_list(current_titles_list) + current_titles_list = [book['title']] + + # Add *article* entries for each populated date range + # master_date_range_list{}: [0]:titles list [1]:datestr + for books_by_date_range in master_date_range_list: + navPointByDateRangeTag = Tag(soup, 'navPoint') + navPointByDateRangeTag['class'] = "article" + navPointByDateRangeTag['id'] = "%s-ID" % books_by_date_range[1].replace(' ','') + navPointTag['playOrder'] = self.playOrder + self.playOrder += 1 + navLabelTag = Tag(soup, 'navLabel') + textTag = Tag(soup, 'text') + textTag.insert(0, NavigableString(books_by_date_range[1])) + navLabelTag.insert(0, textTag) + navPointByDateRangeTag.insert(0,navLabelTag) + contentTag = Tag(soup, 'content') + contentTag['src'] = "%s#%s" % (HTML_file, + books_by_date_range[1].replace(' ','')) + + navPointByDateRangeTag.insert(1,contentTag) + + if self.generateForKindle: + cmTag = Tag(soup, '%s' % 'calibre:meta') + cmTag['name'] = "description" + cmTag.insert(0, NavigableString(books_by_date_range[0])) + navPointByDateRangeTag.insert(2, cmTag) + + cmTag = Tag(soup, '%s' % 'calibre:meta') + cmTag['name'] = "author" + navStr = '%d titles' % books_by_date_range[2] if books_by_date_range[2] > 1 else \ + '%d title' % books_by_date_range[2] + cmTag.insert(0, NavigableString(navStr)) + navPointByDateRangeTag.insert(3, cmTag) + + navPointTag.insert(nptc, navPointByDateRangeTag) + nptc += 1 + + + # Create an NCX article entry for each populated month # Loop over the booksByDate list, find start of each month, # add description_preview_count titles # master_month_list(list,date,count) current_titles_list = [] master_month_list = [] - current_date = self.booksByDate[0]['timestamp'] + current_date = self.booksByMonth[0]['timestamp'] - for book in self.booksByDate: + for book in self.booksByMonth: if book['timestamp'].month != current_date.month or \ book['timestamp'].year != current_date.year: # Save the old lists @@ -2107,9 +2610,6 @@ class EPUB_MOBI(CatalogPlugin): self.updateProgressFullStep("NCX 'Genres'") - - - if not len(self.genres): self.opts.log.warn(" No genres found in tags.\n" " No Genre section added to Catalog") @@ -2136,13 +2636,12 @@ class EPUB_MOBI(CatalogPlugin): navPointTag.insert(nptc, navLabelTag) nptc += 1 contentTag = Tag(ncx_soup,"content") - contentTag['src'] = "content/Genre%s.html#section_start" % (re.sub("\W","", self.convertHTMLEntities(self.genres[0]['tag']))) + contentTag['src'] = "content/Genre_%s.html#section_start" % self.genres[0]['tag'] navPointTag.insert(nptc, contentTag) nptc += 1 for genre in self.genres: # Add an article for each genre - navPointVolumeTag = Tag(ncx_soup, 'navPoint') navPointVolumeTag['class'] = "article" navPointVolumeTag['id'] = "genre-%s-ID" % genre['tag'] @@ -2150,13 +2649,18 @@ class EPUB_MOBI(CatalogPlugin): self.playOrder += 1 navLabelTag = Tag(ncx_soup, "navLabel") textTag = Tag(ncx_soup, "text") - textTag.insert(0, self.formatNCXText(NavigableString(genre['tag']))) + + # GwR *** Can this be optimized? + normalized_tag = None + for friendly_tag in self.genre_tags_dict: + if self.genre_tags_dict[friendly_tag] == genre['tag']: + normalized_tag = self.genre_tags_dict[friendly_tag] + break + textTag.insert(0, self.formatNCXText(NavigableString(friendly_tag), dest='description')) navLabelTag.insert(0,textTag) navPointVolumeTag.insert(0,navLabelTag) - contentTag = Tag(ncx_soup, "content") - genre_name = re.sub("\W","", self.convertHTMLEntities(genre['tag'])) - contentTag['src'] = "content/Genre%s.html#Genre%s" % (genre_name, genre_name) + contentTag['src'] = "content/Genre_%s.html#Genre_%s" % (normalized_tag, normalized_tag) navPointVolumeTag.insert(1, contentTag) if self.generateForKindle: @@ -2183,15 +2687,15 @@ class EPUB_MOBI(CatalogPlugin): title_range = "%s -\n%s" % (genre['titles_spanned'][0][1], genre['titles_spanned'][1][1]) else: title_range = "%s" % (genre['titles_spanned'][0][1]) - cmTag.insert(0, NavigableString(self.formatNCXText(title_range))) + cmTag.insert(0, NavigableString(self.formatNCXText(title_range, dest='description'))) else: # Form 2: title • title • title ... titles = [] for title in genre['books']: titles.append(title['title']) titles = sorted(titles, key=lambda x:(self.generateSortTitle(x),self.generateSortTitle(x))) - titles_list = self.generateShortDescription(u" • ".join(titles)) - cmTag.insert(0, NavigableString(self.formatNCXText(titles_list))) + titles_list = self.generateShortDescription(u" • ".join(titles), dest="description") + cmTag.insert(0, NavigableString(self.formatNCXText(titles_list, dest='description'))) navPointVolumeTag.insert(3, cmTag) @@ -2217,7 +2721,64 @@ class EPUB_MOBI(CatalogPlugin): tokens = tokens[-1:] + tokens[:-1] if len(tokens) > 1: tokens[0] += ',' - return ' '.join(tokens) + return ' '.join(tokens).capitalize() + + def author_compare(self,x,y): + # Return -1 if xy + + # Different authors - sort by author_sort + if x['author_sort'].capitalize() > y['author_sort'].capitalize(): + return 1 + elif x['author_sort'].capitalize() < y['author_sort'].capitalize(): + return -1 + else: + # Same author + if x['series'] != y['series']: + # One title is a series, the other is not + if not x['series']: + # Sort regular titles < series titles + return -1 + elif not y['series']: + return 1 + + # Different series + if x['title_sort'].lstrip() > y['title_sort'].lstrip(): + return 1 + else: + return -1 + else: + # Same series + if x['series'] == y['series']: + if float(x['series_index']) > float(y['series_index']): + return 1 + elif float(x['series_index']) < float(y['series_index']): + return -1 + else: + return 0 + else: + if x['series'] > y['series']: + return 1 + else: + return -1 + + def calculateThumbnailSize(self): + ''' Calculate thumbnail dimensions based on device DPI. Scale Kindle by 50% ''' + from calibre.customize.ui import output_profiles + for x in output_profiles(): + if x.short_name == self.opts.output_profile: + # .9" width aspect ratio: 3:4 + self.thumbWidth = int(x.dpi * .9) + self.thumbHeight = int(self.thumbWidth * 1.33) + if 'kindle' in x.short_name and self.opts.fmt == 'mobi': + # Kindle DPI appears to be off by a factor of 2 + self.thumbWidth = int(self.thumbWidth/2) + self.thumbHeight = int(self.thumbHeight/2) + break + if self.verbose: + self.opts.log(" DPI = %d; thumbnail dimensions: %d x %d" % \ + (x.dpi, self.thumbWidth, self.thumbHeight)) def convertHTMLEntities(self, s): matches = re.findall("&#\d+;", s) @@ -2258,26 +2819,12 @@ class EPUB_MOBI(CatalogPlugin): if not os.path.isdir(images_path): os.makedirs(images_path) - def getMarkerTags(self): - ''' Return a list of special marker tags to be excluded from genre list ''' - markerTags = [] - markerTags.extend(self.opts.exclude_tags.split(',')) - markerTags.extend(self.opts.note_tag.split(',')) - markerTags.extend(self.opts.read_tag.split(',')) - return markerTags - def filterDbTags(self, tags): # Remove the special marker tags from the database's tag list, - # return sorted list of tags representing valid genres + # return sorted list of normalized genre tags - def next_tag(tags): - for (i, tag) in enumerate(tags): - if i < len(tags) - 1: - yield tag + ", " - else: - yield tag - - filtered_tags = [] + normalized_tags = [] + friendly_tags = [] for tag in tags: if tag[0] in self.markerTags: continue @@ -2286,34 +2833,50 @@ class EPUB_MOBI(CatalogPlugin): if tag == ' ': continue - filtered_tags.append(tag) + normalized_tags.append(re.sub('\W','',tag).lower()) + friendly_tags.append(tag) - filtered_tags.sort() + genre_tags_dict = dict(zip(friendly_tags,normalized_tags)) - # Enable this code to force certain tags to the front of the genre list - if False: - for (i, tag) in enumerate(filtered_tags): - if tag == 'Fiction': - filtered_tags.insert(0, (filtered_tags.pop(i))) - elif tag == 'Nonfiction': - filtered_tags.insert(1, (filtered_tags.pop(i))) - else: - continue + # Test for multiple genres resolving to same normalized form + normalized_set = set(normalized_tags) + for normalized in normalized_set: + if normalized_tags.count(normalized) > 1: + self.opts.log.warn(" Warning: multiple tags resolving to genre '%s':" % normalized) + for key in genre_tags_dict: + if genre_tags_dict[key] == normalized: + self.opts.log.warn(" %s" % key) if self.verbose: - self.opts.log.info(u' %d Genre tags in database (exclude_genre: %s):' % \ - (len(filtered_tags), self.opts.exclude_genre)) - out_buf = '' + def next_tag(tags): + for (i, tag) in enumerate(tags): + if i < len(tags) - 1: + yield tag + ", " + else: + yield tag - for tag in next_tag(filtered_tags): - out_buf += tag - if len(out_buf) > 72: - self.opts.log(u' %s' % out_buf.rstrip()) - out_buf = '' - self.opts.log(u' %s' % out_buf) + self.opts.log.info(u' %d genre tags in database (excluding genres matching %s):' % \ + (len(genre_tags_dict), self.opts.exclude_genre)) - return filtered_tags + # Display friendly/normalized genres + # friendly => normalized + if False: + sorted_tags = ['%s => %s' % (key, genre_tags_dict[key]) for key in sorted(genre_tags_dict.keys())] + for tag in next_tag(sorted_tags): + self.opts.log(u' %s' % tag) + else: + sorted_tags = ['%s' % (key) for key in sorted(genre_tags_dict.keys())] + out_str = '' + line_break = 70 + for tag in next_tag(sorted_tags): + out_str += tag + if len(out_str) >= line_break: + self.opts.log.info(' %s' % out_str) + out_str = '' + self.opts.log.info(' %s' % out_str) - def formatNCXText(self, description): + return genre_tags_dict + + def formatNCXText(self, description, dest=None): # Kindle TOC descriptions won't render certain characters # Fix up massaged = unicode(BeautifulStoneSoup(description, convertEntities=BeautifulStoneSoup.HTML_ENTITIES)) @@ -2321,7 +2884,11 @@ class EPUB_MOBI(CatalogPlugin): # Replace '&' with '&' massaged = re.sub("&","&", massaged) - return massaged.strip() + if massaged.strip() and dest: + #print traceback.print_stack(limit=3) + return self.generateShortDescription(massaged.strip(), dest=dest) + else: + return None def generateAuthorAnchor(self, author): # Strip white space to '' @@ -2343,25 +2910,27 @@ class EPUB_MOBI(CatalogPlugin): body.insert(btc, aTag) btc += 1 - # Insert the anchor with spaces stripped + # Create an anchor from the tag aTag = Tag(soup, 'a') - aTag['name'] = "Genre%s" % re.sub("\W","", genre) + aTag['name'] = "Genre_%s" % genre body.insert(btc,aTag) btc += 1 - # Insert the genre title titleTag = body.find(attrs={'class':'title'}) - titleTag.insert(0,NavigableString('%s' % escape(genre))) + titleTag.insert(0,NavigableString('%s' % escape(self.getFriendlyGenreTag(genre)))) # Insert the books by author list divTag = body.find(attrs={'class':'authors'}) dtc = 0 current_author = '' + current_series = None for book in books: if book['author'] != current_author: # Start a new author with link current_author = book['author'] + non_series_books = 0 + current_series = None pAuthorTag = Tag(soup, "p") pAuthorTag['class'] = "author_index" emTag = Tag(soup, "em") @@ -2373,6 +2942,27 @@ class EPUB_MOBI(CatalogPlugin): divTag.insert(dtc,pAuthorTag) dtc += 1 + # Insert an
between non-series and series + if not current_series and non_series_books and book['series']: + # Insert an
+ hrTag = Tag(soup,'hr') + hrTag['class'] = "series_divider" + divTag.insert(dtc,hrTag) + dtc += 1 + + # Check for series + if book['series'] and book['series'] != current_series: + # Start a new series + current_series = book['series'] + pSeriesTag = Tag(soup,'p') + pSeriesTag['class'] = "series" + pSeriesTag.insert(0,NavigableString(self.NOT_READ_SYMBOL + book['series'])) + divTag.insert(dtc,pSeriesTag) + dtc += 1 + + if current_series and not book['series']: + current_series = None + # Add books pBookTag = Tag(soup, "p") ptc = 0 @@ -2389,7 +2979,12 @@ class EPUB_MOBI(CatalogPlugin): # Add the book title aTag = Tag(soup, "a") aTag['href'] = "book_%d.html" % (int(float(book['id']))) - aTag.insert(0,escape(book['title'])) + # Use series, series index if avail else just title + if current_series: + aTag.insert(0,escape(book['title'][len(book['series'])+1:])) + else: + aTag.insert(0,escape(book['title'])) + non_series_books += 1 pBookTag.insert(ptc, aTag) ptc += 1 @@ -2424,6 +3019,7 @@ class EPUB_MOBI(CatalogPlugin):

{0}

+

 

@@ -2457,9 +3053,7 @@ class EPUB_MOBI(CatalogPlugin):

-

- - +
'''.format(title_border) @@ -2511,7 +3105,23 @@ class EPUB_MOBI(CatalogPlugin): titleTag.insert(0,escape(NavigableString(title))) return soup - def generate_masthead_image(self, out_path): + def generateMastheadImage(self, out_path): + from calibre.ebooks.conversion.config import load_defaults + from calibre.utils.fonts import fontconfig + font_path = default_font = P('fonts/liberation/LiberationSerif-Bold.ttf') + recs = load_defaults('mobi_output') + masthead_font_family = recs.get('masthead_font', 'Default') + + if masthead_font_family != 'Default': + masthead_font = fontconfig.files_for_family(masthead_font_family) + # Assume 'normal' always in dict, else use default + # {'normal': (path_to_font, friendly name)} + if 'normal' in masthead_font: + font_path = masthead_font['normal'][0] + + if not font_path or not os.access(font_path, os.R_OK): + font_path = default_font + MI_WIDTH = 600 MI_HEIGHT = 60 @@ -2523,7 +3133,11 @@ class EPUB_MOBI(CatalogPlugin): img = Image.new('RGB', (MI_WIDTH, MI_HEIGHT), 'white') draw = ImageDraw.Draw(img) - font = ImageFont.truetype(P('fonts/liberation/LiberationSerif-Bold.ttf'), 48) + try: + font = ImageFont.truetype(font_path, 48) + except: + self.opts.log.error(" Failed to load user-specifed font '%s'" % font_path) + font = ImageFont.truetype(default_font, 48) text = self.title.encode('utf-8') width, height = draw.textsize(text, font=font) left = max(int((MI_WIDTH - width)/2.), 0) @@ -2531,27 +3145,52 @@ class EPUB_MOBI(CatalogPlugin): draw.text((left, top), text, fill=(0,0,0), font=font) img.save(open(out_path, 'wb'), 'GIF') - def generateShortDescription(self, description): - # Truncate the description to description_clip, on word boundaries if necessary + def generateSeriesTitle(self, title): + if float(title['series_index']) - int(title['series_index']): + series_title = '%s %4.2f: %s' % (title['series'], + title['series_index'], + title['title']) + else: + series_title = '%s %d: %s' % (title['series'], + title['series_index'], + title['title']) + return series_title + + def generateShortDescription(self, description, dest=None): + # Truncate the description, on word boundaries if necessary + # Possible destinations: + # description NCX summary + # title NCX title + # author NCX author + + def shortDescription(description, limit): + short_description = "" + words = description.split() + for word in words: + short_description += word + " " + if len(short_description) > limit: + short_description += "..." + return short_description + if not description: return None - if not self.descriptionClip: + if dest == 'title': + # No truncation for titles, let the device deal with it return description - - if len(description) < self.descriptionClip: - return description - - # Start adding words until we reach description_clip - short_description = "" - words = description.split() - for word in words: - short_description += word + " " - if len(short_description) > self.descriptionClip: - short_description += "..." - return short_description - - return short_description + elif dest == 'author': + if self.authorClip and len(description) < self.authorClip: + return description + else: + return shortDescription(description, self.authorClip) + elif dest == 'description': + if self.descriptionClip and len(description) < self.descriptionClip: + return description + else: + return shortDescription(description, self.descriptionClip) + else: + print " returning description with unspecified destination '%s'" % description + raise RuntimeError def generateSortTitle(self, title): # Convert the actual title to a string suitable for sorting. @@ -2566,27 +3205,26 @@ class EPUB_MOBI(CatalogPlugin): # Leading numbers optionally translated to text equivalent # Capitalize leading sort word if i==0: - if self.opts.numbers_as_text and re.search('[0-9]+',word): + if self.opts.numbers_as_text and re.match('[0-9]+',word[0]): translated.append(EPUB_MOBI.NumberToText(word).text.capitalize()) else: - if re.search('-',word): - # Split hyphenated words for sorting - tokens = word.split('-') - title_words[0] = tokens[0] - title_words.insert(1,tokens[1]) - if re.search('[0-9]+',word): - # Coerce standard-width strings for numbers for value sorting - # Any non-digit is interpreted as a decimal point - # word = '%10.2f' % float(re.sub('[^\d\.]','',word)) - try: - word = '%10.2f' % float(re.sub('[^\d\.]','.',word)) - except: - word = '%10.2f' % float(EPUB_MOBI.NumberToText(word).number_as_float) + if re.match('[0-9]+',word[0]): + word = word.replace(',','') + suffix = re.search('[\D]', word) + if suffix: + word = '%10.0f%s' % (float(word[:suffix.start()]),word[suffix.start():]) + else: + word = '%10.0f' % (float(word)) translated.append(word.capitalize()) + else: - if re.search('[0-9]+',word): - # Coerce standard-width strings for numbers - word = '%10.2f' % float(re.sub('[^\d\.]','',word)) + if re.search('[0-9]+',word[0]): + word = word.replace(',','') + suffix = re.search('[\D]', word) + if suffix: + word = '%10.0f%s' % (float(word[:suffix.start()]),word[suffix.start():]) + else: + word = '%10.0f' % (float(word)) translated.append(word) return ' '.join(translated) @@ -2606,7 +3244,7 @@ class EPUB_MOBI(CatalogPlugin): self.opts.log.error('generateThumbnail(): Cannot clone cover') raise RuntimeError # img, width, height - pw.MagickThumbnailImage(thumb, self.THUMB_WIDTH, self.THUMB_HEIGHT) + pw.MagickThumbnailImage(thumb, self.thumbWidth, self.thumbHeight) pw.MagickWriteImage(thumb, os.path.join(image_dir, thumb_file)) pw.DestroyMagickWand(thumb) pw.DestroyMagickWand(img) @@ -2615,18 +3253,131 @@ class EPUB_MOBI(CatalogPlugin): except RuntimeError: self.opts.log.error("generateThumbnail(): RuntimeError with %s" % title['title']) + def getMarkerTags(self): + ''' Return a list of special marker tags to be excluded from genre list ''' + markerTags = [] + markerTags.extend(self.opts.exclude_tags.split(',')) + markerTags.extend(self.opts.note_tag.split(',')) + markerTags.extend(self.opts.read_tag.split(',')) + return markerTags + def letter_or_symbol(self,char): if not re.search('[a-zA-Z]',char): return 'Symbols' else: return char + def getFriendlyGenreTag(self, genre): + # Find the first instance of friendly_tag matching genre + for friendly_tag in self.genre_tags_dict: + if self.genre_tags_dict[friendly_tag] == genre: + return friendly_tag + + def markdownComments(self, comments): + ''' + Convert random comment text to normalized, xml-legal block of

s + 'plain text' returns as +

plain text

+ + 'plain text with minimal markup' returns as +

plain text with minimal markup

+ + '

pre-formatted text

returns untouched + + 'A line of text\n\nFollowed by a line of text' returns as +

A line of text

+

Followed by a line of text

+ + 'A line of text.\nA second line of text.\rA third line of text' returns as +

A line of text.
A second line of text.
A third line of text.

+ + '...end of a paragraph.Somehow the break was lost...' returns as +

...end of a paragraph.

+

Somehow the break was lost...

+ + Deprecated HTML returns as HTML via BeautifulSoup() + + ''' + # Hackish - ignoring sentences ending or beginning in numbers to avoid + # confusion with decimal points. + + # Explode lost CRs to \n\n + for lost_cr in re.finditer('([a-z])([\.\?!])([A-Z])',comments): + comments = comments.replace(lost_cr.group(), + '%s%s\n\n%s' % (lost_cr.group(1), + lost_cr.group(2), + lost_cr.group(3))) + + # Convert \n\n to

s + if re.search('\n\n', comments): + soup = BeautifulSoup() + split_ps = comments.split('\n\n') + tsc = 0 + for p in split_ps: + pTag = Tag(soup,'p') + pTag.insert(0,p) + soup.insert(tsc,pTag) + tsc += 1 + comments = soup.renderContents() + + # Convert solo returns to
+ comments = re.sub('[\r\n]','
', comments) + + # Convert two hypens to emdash + comments = re.sub('--','—',comments) + soup = BeautifulSoup(comments) + + result = BeautifulSoup() + rtc = 0 + open_pTag = False + + all_tokens = list(soup.contents) + for token in all_tokens: + if type(token) is NavigableString: + if not open_pTag: + pTag = Tag(result,'p') + open_pTag = True + ptc = 0 + pTag.insert(ptc,prepare_string_for_xml(token)) + ptc += 1 + + elif token.name in ['br','b','i']: + if not open_pTag: + pTag = Tag(result,'p') + open_pTag = True + ptc = 0 + pTag.insert(ptc, token) + ptc += 1 + + else: + if open_pTag: + result.insert(rtc, pTag) + rtc += 1 + open_pTag = False + ptc = 0 + # Clean up NavigableStrings for xml + sub_tokens = list(token.contents) + for sub_token in sub_tokens: + if type(sub_token) is NavigableString: + sub_token.replaceWith(prepare_string_for_xml(sub_token)) + result.insert(rtc, token) + rtc += 1 + + if open_pTag: + result.insert(rtc, pTag) + + paras = result.findAll('p') + for p in paras: + p['class'] = 'description' + + return result.renderContents(encoding=None) + def processSpecialTags(self, tags, this_title, opts): tag_list = [] for tag in tags: tag = self.convertHTMLEntities(tag) if tag.startswith(opts.note_tag): - this_title['notes'] = tag[1:] + this_title['notes'] = tag[len(self.opts.note_tag):] elif tag == opts.read_tag: this_title['read'] = True elif re.search(opts.exclude_genre, tag): @@ -2635,6 +3386,22 @@ class EPUB_MOBI(CatalogPlugin): tag_list.append(tag) return tag_list + def updateProgressFullStep(self, description): + self.currentStep += 1 + self.progressString = description + self.progressInt = float((self.currentStep-1)/self.totalSteps) + self.reporter(self.progressInt, self.progressString) + if self.opts.cli_environment: + self.opts.log(u"%3.0f%% %s" % (self.progressInt*100, self.progressString)) + + def updateProgressMicroStep(self, description, micro_step_pct): + step_range = 100/self.totalSteps + self.progressString = description + coarse_progress = float((self.currentStep-1)/self.totalSteps) + fine_progress = float((micro_step_pct*step_range)/100) + self.progressInt = coarse_progress + fine_progress + self.reporter(self.progressInt, self.progressString) + class NotImplementedError: def __init__(self, error): self.error = error @@ -2642,22 +3409,6 @@ class EPUB_MOBI(CatalogPlugin): def logerror(self): self.opts.log.info('%s not implemented' % self.error) - def updateProgressFullStep(self, description): - self.current_step += 1 - self.progressString = description - self.progressInt = float((self.current_step-1)/self.total_steps) - self.reporter(self.progressInt, self.progressString) - if self.opts.cli_environment: - self.opts.log(u"%3.0f%% %s" % (self.progressInt*100, self.progressString)) - - def updateProgressMicroStep(self, description, micro_step_pct): - step_range = 100/self.total_steps - self.progressString = description - coarse_progress = float((self.current_step-1)/self.total_steps) - fine_progress = float((micro_step_pct*step_range)/100) - self.progressInt = coarse_progress + fine_progress - self.reporter(self.progressInt, self.progressString) - def run(self, path_to_output, opts, db, notification=DummyReporter()): opts.log = log = Log() opts.fmt = self.fmt = path_to_output.rpartition('.')[2] @@ -2665,59 +3416,111 @@ class EPUB_MOBI(CatalogPlugin): # Add local options opts.creator = "calibre" + + # Finalize output_profile op = self.opts.output_profile if op is None: op = 'default' - opts.descriptionClip = 380 if op.endswith('dx') or 'kindle' not in op else 90 + if opts.connected_device['name'] and 'kindle' in opts.connected_device['name'].lower(): + if opts.connected_device['serial'] and opts.connected_device['serial'][:4] in ['B004','B005']: + op = "kindle_dx" + else: + op = "kindle" + opts.descriptionClip = 380 if op.endswith('dx') or 'kindle' not in op else 100 + opts.authorClip = 100 if op.endswith('dx') or 'kindle' not in op else 60 + self.opts.output_profile = op + opts.basename = "Catalog" - opts.plugin_path = self.plugin_path - opts.cli_environment = getattr(opts,'sync',True) + opts.cli_environment = not hasattr(opts,'sync') + # GwR *** hardwired to sort by author, could be an option if passed in opts + opts.sort_descriptions_by_author = True if opts.verbose: opts_dict = vars(opts) - log("%s(): Generating %s for %s in %s environment" % - (self.name,self.fmt,opts.output_profile, + log(u"%s(): Generating %s %sin %s environment" % + (self.name,self.fmt,'for %s ' % opts.output_profile if opts.output_profile else '', 'CLI' if opts.cli_environment else 'GUI')) if opts_dict['ids']: log(" Book count: %d" % len(opts_dict['ids'])) + + sections_list = ['Descriptions','Authors'] + if opts.generate_titles: + sections_list.append('Titles') + if opts.generate_recently_added: + sections_list.append('Recently Added') + if not opts.exclude_genre.strip() == '.': + sections_list.append('Genres') + log(u"Creating Sections for %s" % ', '.join(sections_list)) + + # If exclude_genre is blank, assume user wants all genre tags included + if opts.exclude_genre.strip() == '': + opts.exclude_genre = '\[^.\]' + log(" converting empty exclude_genre to '\[^.\]'") + + if opts.connected_device['name']: + if opts.connected_device['serial']: + log(" connected_device: '%s' #%s%s " % \ + (opts.connected_device['name'], + opts.connected_device['serial'][0:4], + 'x' * (len(opts.connected_device['serial']) - 4))) + else: + log(" connected_device: '%s'" % opts.connected_device['name']) + + for storage in opts.connected_device['storage']: + if storage: + log(" mount point: %s" % storage) +# for book in opts.connected_device['books']: +# log("%s: %s" % (book.title, book.path)) + # Display opts keys = opts_dict.keys() keys.sort() log(" opts:") - for key in keys: - if key in ['catalog_title','exclude_genre','exclude_tags','note_tag', - 'numbers_as_text','read_tag','search_text','sort_by','sync']: + if key in ['catalog_title','authorClip','descriptionClip','exclude_genre','exclude_tags', + 'note_tag','numbers_as_text','read_tag', + 'search_text','sort_by','sort_descriptions_by_author','sync']: log(" %s: %s" % (key, opts_dict[key])) # Launch the Catalog builder - if opts.verbose: - log.info("Begin generating catalog source") catalog = self.CatalogBuilder(db, opts, self, report_progress=notification) + if opts.verbose: + log.info("Begin catalog source generation") catalog.createDirectoryStructure() catalog.copyResources() - catalog.buildSources() + catalog.calculateThumbnailSize() + catalog_source_built = catalog.buildSources() if opts.verbose: - log.info("Finished generating catalog source\n") + if catalog_source_built: + log.info("Finished catalog source generation\n") + else: + log.warn("No database hits with supplied criteria") - recommendations = [] + if catalog_source_built: + recommendations = [] + # recommendations.append(('cover', I('catalog.svg'), OptionRecommendation.HIGH)) - dp = getattr(opts, 'debug_pipeline', None) - if dp is not None: - recommendations.append(('debug_pipeline', dp, - OptionRecommendation.HIGH)) + dp = getattr(opts, 'debug_pipeline', None) + if dp is not None: + recommendations.append(('debug_pipeline', dp, + OptionRecommendation.HIGH)) - if opts.fmt == 'mobi' and opts.output_profile and opts.output_profile.startswith("kindle"): - recommendations.append(('output_profile', opts.output_profile, - OptionRecommendation.HIGH)) - recommendations.append(('no_inline_toc', True, - OptionRecommendation.HIGH)) + if opts.fmt == 'mobi' and opts.output_profile and opts.output_profile.startswith("kindle"): + recommendations.append(('output_profile', opts.output_profile, + OptionRecommendation.HIGH)) + recommendations.append(('no_inline_toc', True, + OptionRecommendation.HIGH)) + recommendations.append(('book_producer',opts.output_profile, + OptionRecommendation.HIGH)) - # Run ebook-convert - from calibre.ebooks.conversion.plumber import Plumber - plumber = Plumber(os.path.join(catalog.catalogPath, - opts.basename + '.opf'), path_to_output, log, report_progress=notification, - abort_after_input_dump=False) - plumber.merge_ui_recommendations(recommendations) + # Run ebook-convert + from calibre.ebooks.conversion.plumber import Plumber + plumber = Plumber(os.path.join(catalog.catalogPath, + opts.basename + '.opf'), path_to_output, log, report_progress=notification, + abort_after_input_dump=False) + plumber.merge_ui_recommendations(recommendations) - plumber.run() + plumber.run() + return 0 + else: + return 1 diff --git a/src/calibre/library/cli.py b/src/calibre/library/cli.py index 0d9665de8a..f474590f7d 100644 --- a/src/calibre/library/cli.py +++ b/src/calibre/library/cli.py @@ -17,6 +17,7 @@ from calibre.ebooks.metadata.meta import get_metadata from calibre.library.database2 import LibraryDatabase2 from calibre.ebooks.metadata.opf2 import OPFCreator, OPF from calibre.utils.genshi.template import MarkupTemplate +from calibre.utils.date import isoformat FIELDS = set(['title', 'authors', 'author_sort', 'publisher', 'rating', 'timestamp', 'size', 'tags', 'comments', 'series', 'series_index', @@ -37,8 +38,8 @@ XML_TEMPLATE = '''\ ${record['publisher']} ${record['rating']} - ${record['timestamp']} - ${record['pubdate']} + ${record['timestamp'].isoformat()} + ${record['pubdate'].isoformat()} ${record['size']} @@ -68,7 +69,7 @@ STANZA_TEMPLATE='''\ http://calibre-ebook.com $id - ${updated.strftime('%Y-%m-%dT%H:%M:%SZ')} + ${updated.isoformat()} ${subtitle} @@ -77,7 +78,7 @@ STANZA_TEMPLATE='''\ ${record['title']} urn:calibre:${record['uuid']} ${record['author_sort']} - ${record['timestamp'].strftime('%Y-%m-%dT%H:%M:%SZ')} + ${record['timestamp'].isoformat()} @@ -144,7 +145,10 @@ def do_list(db, fields, sort_by, ascending, search_text, line_width, separator, widths = list(map(lambda x : 0, fields)) for record in data: for f in record.keys(): - record[f] = unicode(record[f]) + if hasattr(record[f], 'isoformat'): + record[f] = isoformat(record[f], as_utc=False) + else: + record[f] = unicode(record[f]) record[f] = record[f].replace('\n', ' ') for i in data: for j, field in enumerate(fields): @@ -673,6 +677,10 @@ def command_catalog(args, dbpath): if opts.ids: opts.ids = [int(id) for id in opts.ids.split(',')] + # No support for connected device in CLI environment + # Parallel initialization in calibre.gui2.tools:generate_catalog() + opts.connected_device = {'storage':None,'serial':None,'name':None} + with plugin: plugin.run(args[1], opts, get_db(dbpath, opts)) return 0 diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 1fdb4ef9a9..f1929578f7 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -9,7 +9,6 @@ The database used to store ebook metadata import os, re, sys, shutil, cStringIO, glob, collections, textwrap, \ itertools, functools, traceback from itertools import repeat -from datetime import datetime from math import floor from PyQt4.QtCore import QThread, QReadWriteLock @@ -34,6 +33,7 @@ from calibre.ptempfile import PersistentTemporaryFile from calibre.customize.ui import run_plugins_on_import from calibre.utils.filenames import ascii_filename +from calibre.utils.date import utcnow, now as nowf, utcfromtimestamp from calibre.ebooks import BOOK_EXTENSIONS if iswindows: @@ -174,6 +174,22 @@ class CoverCache(QThread): self.load_queue.appendleft(id) self.load_queue_lock.unlock() +### Global utility function for get_match here and in gui2/library.py +CONTAINS_MATCH = 0 +EQUALS_MATCH = 1 +REGEXP_MATCH = 2 +def _match(query, value, matchkind): + for t in value: + t = t.lower() + try: ### ignore regexp exceptions, required because search-ahead tries before typing is finished + if ((matchkind == EQUALS_MATCH and query == t) or + (matchkind == REGEXP_MATCH and re.search(query, t, re.I)) or ### search unanchored + (matchkind == CONTAINS_MATCH and query in t)): + return True + except re.error: + pass + return False + class ResultCache(SearchQueryParser): ''' @@ -202,16 +218,30 @@ class ResultCache(SearchQueryParser): matches = set([]) if query and query.strip(): location = location.lower().strip() - query = query.lower() + + matchkind = CONTAINS_MATCH + if (len(query) > 1): + if query.startswith('\\'): + query = query[1:] + elif query.startswith('='): + matchkind = EQUALS_MATCH + query = query[1:] + elif query.startswith('~'): + matchkind = REGEXP_MATCH + query = query[1:] + if matchkind != REGEXP_MATCH: ### leave case in regexps because it can be significant e.g. \S \W \D + query = query.lower() + if not isinstance(query, unicode): query = query.decode('utf-8') - if location in ('tag', 'author', 'format'): + if location in ('tag', 'author', 'format', 'comment'): location += 's' all = ('title', 'authors', 'publisher', 'tags', 'comments', 'series', 'formats', 'isbn', 'rating', 'cover') MAP = {} for x in all: MAP[x] = FIELD_MAP[x] EXCLUDE_FIELDS = [MAP['rating'], MAP['cover']] + SPLITABLE_FIELDS = [MAP['authors'], MAP['tags'], MAP['formats']] location = [location] if location != 'all' else list(MAP.keys()) for i, loc in enumerate(location): location[i] = MAP[loc] @@ -219,28 +249,40 @@ class ResultCache(SearchQueryParser): rating_query = int(query) * 2 except: rating_query = None - for item in self._data: - if item is None: continue - for loc in location: - if query == 'false' and not item[loc]: - if isinstance(item[loc], basestring): - if item[loc].strip() != '': - continue - matches.add(item[0]) - break - if query == 'true' and item[loc]: + for loc in location: + if loc == MAP['authors']: + q = query.replace(',', '|'); ### DB stores authors with commas changed to bars, so change query + else: + q = query + + for item in self._data: + if item is None: continue + if not item[loc]: + if query == 'false': + if isinstance(item[loc], basestring): + if item[loc].strip() != '': + continue + matches.add(item[0]) + break + continue ### item is empty. No possible matches below + + if q == 'true': if isinstance(item[loc], basestring): if item[loc].strip() == '': continue matches.add(item[0]) - break - if rating_query and item[loc] and loc == MAP['rating'] and rating_query == int(item[loc]): + continue + if rating_query and loc == MAP['rating'] and rating_query == int(item[loc]): matches.add(item[0]) - break - if item[loc] and loc not in EXCLUDE_FIELDS and query in item[loc].lower(): - matches.add(item[0]) - break - + continue + if loc not in EXCLUDE_FIELDS: + if loc in SPLITABLE_FIELDS: + vals = item[loc].split(',') ### check individual tags/authors/formats, not the long string + else: + vals = [item[loc]] ### make into list to make _match happy + if _match(q, vals, matchkind): + matches.add(item[0]) + continue return matches def remove(self, id): @@ -673,12 +715,12 @@ class LibraryDatabase2(LibraryDatabase): def last_modified(self): ''' Return last modified time as a UTC datetime object''' - return datetime.utcfromtimestamp(os.stat(self.dbpath).st_mtime) + return utcfromtimestamp(os.stat(self.dbpath).st_mtime) def check_if_modified(self): if self.last_modified() > self.last_update_check: self.refresh() - self.last_update_check = datetime.utcnow() + self.last_update_check = utcnow() def path(self, index, index_is_id=False): 'Return the relative path to the directory containing this books files as a unicode string.' @@ -1081,7 +1123,7 @@ class LibraryDatabase2(LibraryDatabase): def tags_older_than(self, tag, delta): tag = tag.lower().strip() - now = datetime.now() + now = nowf() for r in self.data._data: if r is not None: if (now - r[FIELD_MAP['timestamp']]) > delta: @@ -1120,7 +1162,8 @@ class LibraryDatabase2(LibraryDatabase): elif column == 'rating': self.set_rating(id, val, notify=False) elif column == 'tags': - self.set_tags(id, val.split(','), append=False, notify=False) + self.set_tags(id, [x.strip() for x in val.split(',') if x.strip()], + append=False, notify=False) self.data.refresh_ids(self, [id]) self.set_path(id, True) self.notify('metadata', [id]) @@ -1274,6 +1317,10 @@ class LibraryDatabase2(LibraryDatabase): self.conn.execute('DELETE FROM books_tags_link WHERE book=?', (id,)) self.conn.execute('DELETE FROM tags WHERE (SELECT COUNT(id) FROM books_tags_link WHERE tag=tags.id) < 1') otags = self.get_tags(id) + tags = [x.strip() for x in tags if x.strip()] + tags = [x.decode(preferred_encoding, 'replace') if not isinstance(x, + unicode) else x for x in tags] + tags = [u' '.join(x.split()) for x in tags] for tag in (set(tags)-otags): tag = tag.strip() if not tag: @@ -1344,6 +1391,8 @@ class LibraryDatabase2(LibraryDatabase): if series: if not isinstance(series, unicode): series = series.decode(preferred_encoding, 'replace') + series = series.strip() + series = u' '.join(series.split()) s = self.conn.get('SELECT id from series WHERE name=?', (series,), all=False) if s: aid = s @@ -1435,7 +1484,7 @@ class LibraryDatabase2(LibraryDatabase): stream.close() self.conn.commit() if existing: - t = datetime.utcnow() + t = utcnow() self.set_timestamp(db_id, t, notify=False) self.set_pubdate(db_id, t, notify=False) self.data.refresh_ids(self, [db_id]) # Needed to update format list and size @@ -1531,6 +1580,8 @@ class LibraryDatabase2(LibraryDatabase): ids.append(id) self.set_path(id, True) self.conn.commit() + if mi.timestamp is None: + mi.timestamp = nowf() self.set_metadata(id, mi) npath = self.run_import_plugins(path, format) format = os.path.splitext(npath)[-1].lower().replace('.', '').upper() @@ -1562,6 +1613,8 @@ class LibraryDatabase2(LibraryDatabase): id = obj.lastrowid self.data.books_added([id], self) self.set_path(id, True) + if mi.timestamp is None: + mi.timestamp = nowf() self.set_metadata(id, mi, ignore_errors=True) for path in formats: ext = os.path.splitext(path)[1][1:].lower() diff --git a/src/calibre/library/server.py b/src/calibre/library/server.py index a1c8aec0bd..50c5ccafbd 100644 --- a/src/calibre/library/server.py +++ b/src/calibre/library/server.py @@ -11,7 +11,6 @@ import sys, textwrap, operator, os, re, logging, cStringIO import __builtin__ from itertools import repeat from logging.handlers import RotatingFileHandler -from datetime import datetime from threading import Thread import cherrypy @@ -31,15 +30,16 @@ from calibre.utils.config import config_dir from calibre.utils.mdns import publish as publish_zeroconf, \ stop_server as stop_zeroconf from calibre.ebooks.metadata import fmt_sidx, title_sort +from calibre.utils.date import now as nowf, fromtimestamp def strftime(fmt='%Y/%m/%d %H:%M:%S', dt=None): if not hasattr(dt, 'timetuple'): - dt = datetime.now() + dt = nowf() dt = dt.timetuple() try: return _strftime(fmt, dt) except: - return _strftime(fmt, datetime.now().timetuple()) + return _strftime(fmt, nowf().timetuple()) def expose(func): @@ -351,7 +351,7 @@ class LibraryServer(object): map(int, self.opts.max_cover.split('x')) self.max_stanza_items = opts.max_opds_items path = P('content_server') - self.build_time = datetime.fromtimestamp(os.stat(path).st_mtime) + self.build_time = fromtimestamp(os.stat(path).st_mtime) self.default_cover = open(P('content_server/default_cover.jpg'), 'rb').read() cherrypy.config.update({ @@ -429,7 +429,7 @@ class LibraryServer(object): cherrypy.response.headers['Content-Type'] = 'image/jpeg' cherrypy.response.timeout = 3600 path = getattr(cover, 'name', False) - updated = datetime.utcfromtimestamp(os.stat(path).st_mtime) if path and \ + updated = fromtimestamp(os.stat(path).st_mtime) if path and \ os.access(path, os.R_OK) else self.build_time cherrypy.response.headers['Last-Modified'] = self.last_modified(updated) try: @@ -476,7 +476,7 @@ class LibraryServer(object): cherrypy.response.timeout = 3600 path = getattr(fmt, 'name', None) if path and os.path.exists(path): - updated = datetime.utcfromtimestamp(os.stat(path).st_mtime) + updated = fromtimestamp(os.stat(path).st_mtime) cherrypy.response.headers['Last-Modified'] = self.last_modified(updated) return fmt.read() @@ -517,8 +517,8 @@ class LibraryServer(object): def get_matches(self, location, query): base = self.db.data.get_matches(location, query) - epub = self.db.data.get_matches('format', 'epub') - pdb = self.db.data.get_matches('format', 'pdb') + epub = self.db.data.get_matches('format', '=epub') + pdb = self.db.data.get_matches('format', '=pdb') return base.intersection(epub.union(pdb)) def stanza_sortby_subcategory(self, updated, sortby, offset): @@ -540,15 +540,15 @@ class LibraryServer(object): what, subtitle = sortby[2:], '' if sortby == 'byseries': data = self.db.all_series() - data = [(x[0], x[1], len(self.get_matches('series', x[1]))) for x in data] + data = [(x[0], x[1], len(self.get_matches('series', '='+x[1]))) for x in data] subtitle = 'Books by series' elif sortby == 'byauthor': data = self.db.all_authors() - data = [(x[0], x[1], len(self.get_matches('authors', x[1]))) for x in data] + data = [(x[0], x[1], len(self.get_matches('authors', '='+x[1]))) for x in data] subtitle = 'Books by author' elif sortby == 'bytag': data = self.db.all_tags2() - data = [(x[0], x[1], len(self.get_matches('tags', x[1]))) for x in data] + data = [(x[0], x[1], len(self.get_matches('tags', '='+x[1]))) for x in data] subtitle = 'Books by tag' fcmp = author_cmp if sortby == 'byauthor' else cmp data = [x for x in data if x[2] > 0] @@ -841,7 +841,7 @@ class LibraryServer(object): if not os.path.exists(path): raise cherrypy.HTTPError(404, '%s not found'%name) if self.opts.develop: - lm = datetime.fromtimestamp(os.stat(path).st_mtime) + lm = fromtimestamp(os.stat(path).st_mtime) cherrypy.response.headers['Last-Modified'] = self.last_modified(lm) return open(path, 'rb').read() diff --git a/src/calibre/library/sqlite.py b/src/calibre/library/sqlite.py index ae9ab181f2..498d00005a 100644 --- a/src/calibre/library/sqlite.py +++ b/src/calibre/library/sqlite.py @@ -12,46 +12,18 @@ from sqlite3 import IntegrityError, OperationalError from threading import Thread from Queue import Queue from threading import RLock -from datetime import tzinfo, datetime, timedelta +from datetime import datetime from calibre.ebooks.metadata import title_sort +from calibre.utils.date import parse_date, isoformat global_lock = RLock() def convert_timestamp(val): - datepart, timepart = val.split(' ') - tz, mult = None, 1 - x = timepart.split('+') - if len(x) > 1: - timepart, tz = x - else: - x = timepart.split('-') - if len(x) > 1: - timepart, tz = x - mult = -1 - - year, month, day = map(int, datepart.split("-")) - timepart_full = timepart.split(".") - hours, minutes, seconds = map(int, timepart_full[0].split(":")) - if len(timepart_full) == 2: - microseconds = int(timepart_full[1]) - else: - microseconds = 0 - if tz is not None: - h, m = map(int, tz.split(':')) - delta = timedelta(minutes=mult*(60*h + m)) - tz = type('CustomTZ', (tzinfo,), {'utcoffset':lambda self, dt:delta, - 'dst':lambda self,dt:timedelta(0)})() - - val = datetime(year, month, day, hours, minutes, seconds, microseconds, - tzinfo=tz) - if tz is not None: - val = datetime(*(val.utctimetuple()[:6])) - return val + return parse_date(val, as_utc=False) def adapt_datetime(dt): - dt = datetime(*(dt.utctimetuple()[:6])) - return dt.isoformat(' ') + return isoformat(dt) sqlite.register_adapter(datetime, adapt_datetime) sqlite.register_converter('timestamp', convert_timestamp) diff --git a/src/calibre/manual/develop.rst b/src/calibre/manual/develop.rst index b9cebcab3d..5f359ad713 100644 --- a/src/calibre/manual/develop.rst +++ b/src/calibre/manual/develop.rst @@ -219,3 +219,30 @@ is great for testing a little snippet of code on the command line. It works in t can be used to execute your own python script. It works in the same way as passing the script to the python interpreter, except that the calibre environment is fully initialized, so you can use all the calibre code in your script. + +Using calibre in your projects +---------------------------------------- + +It is possible to directly use calibre functions/code in your python project. Two ways exist to do this: + +Binary install of calibre +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you have a binary install of calibre, you can use the python interpreter bundled with calibre, like this:: + + calibre-debug -e /path/to/your/python/script.py + +Source install on linux +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In addition to using the above technique, if you do a source install on linux, +you can also directly import calibre, as follows:: + + import init_calibre + import calibre + + print calibre.__version__ + +It is essential that you import the init_calibre module before any other calibre modules/packages as +it sets up the interpreter to run calibre code. + diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst index 9bdd9aaa6b..bafc13f388 100644 --- a/src/calibre/manual/faq.rst +++ b/src/calibre/manual/faq.rst @@ -62,7 +62,7 @@ How do I convert my file containing non-English characters, or smart quotes? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are two aspects to this problem: 1. Knowing the encoding of the source file: |app| tries to guess what character encoding your source files use, but often, this is impossible, so you need to tell it what encoding to use. This can be done in the GUI via the :guilabel:`Input character encoding` field in the :guilabel:`Look & Feel` section. The command-line tools all have an :option:`--input-encoding` option. - 2. When adding HTML files to |app|, you may need to tell |app| what encoding the files are in. To do this go to Preferences->Plugins->File Type plugins and customize the HTML2Zip plugin, telling it what encoding your HTML files are in. Now when you add HTML files to |app| they will be correctly processed. HTML files from different sources often have different encodings, so you may have to change this setting repeatedly. A common encoding for many files from the web is ``cp1252`` and I would suggest you try that first. + 2. When adding HTML files to |app|, you may need to tell |app| what encoding the files are in. To do this go to Preferences->Plugins->File Type plugins and customize the HTML2Zip plugin, telling it what encoding your HTML files are in. Now when you add HTML files to |app| they will be correctly processed. HTML files from different sources often have different encodings, so you may have to change this setting repeatedly. A common encoding for many files from the web is ``cp1252`` and I would suggest you try that first. Note that when converting HTML files, leave the input encoding setting mentioned above blank. This is because the HTML2ZIP plugin automatically converts the HTML files to a standard encoding (utf-8). 3. Embedding fonts: If you are generating an LRF file to read on your SONY Reader, you are limited by the fact that the Reader only supports a few non-English characters in the fonts it comes pre-loaded with. You can work around this problem by embedding a unicode-aware font that supports the character set your file uses into the LRF file. You should embed atleast a serif and a sans-serif font. Be aware that embedding fonts significantly slows down page-turn speed on the reader. @@ -146,6 +146,8 @@ Now you should be able to access your books on your iPhone by opening Stanza. Go Replace ``192.168.1.2`` with the local IP address of the computer running |app|. If you have changed the port the |app| content server is running on, you will have to change ``8080`` as well to the new port. The local IP address is the IP address you computer is assigned on your home network. A quick Google search will tell you how to find out your local IP address. Now click "Save" and you are done. +If you get timeout errors while browsing the calibre catalog in Stanza, try increasing the connection timeout value in the stanza settings. Go to Info->Settings and increase the value of Download Timeout. + How do I use |app| with my Android phone? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/calibre/manual/gui.rst b/src/calibre/manual/gui.rst index 93b91e94ae..06906cdfb3 100644 --- a/src/calibre/manual/gui.rst +++ b/src/calibre/manual/gui.rst @@ -195,6 +195,15 @@ are available in the LRF format. Some more examples:: title:"The Ring" or "This book is about a ring" format:epub publisher:feedbooks.com +Searches are by default 'contains'. An item matches if the search string appears anywhere in the indicated metadata. +Two other kinds of searches are available: equality search and search using regular expressions. + +Equality searches are indicated by prefixing the search string with an equals sign (=). For example, the query +``tag:"=science"`` will match "science", but not "science fiction". Regular expression searches are +indicated by prefixing the search string with a tilde (~). Any python-compatible regular expression can +be used. Regular expression searches are contains searches unless the expression contains anchors. +Should you need to search for a string with a leading equals or tilde, prefix the string with a backslash. + You can build advanced search queries easily using the :guilabel:`Advanced Search Dialog`, accessed by clicking the button |sbi|. diff --git a/src/calibre/translations/ar.po b/src/calibre/translations/ar.po index c556ccce40..4b742b0c4c 100644 --- a/src/calibre/translations/ar.po +++ b/src/calibre/translations/ar.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:32+0000\n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-09 05:46+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-02-10 04:41+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,7 +30,7 @@ msgstr "لا يفعل شيءً" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,19 +38,19 @@ msgstr "لا يفعل شيءً" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +65,18 @@ msgstr "لا يفعل شيءً" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +99,10 @@ msgstr "لا يفعل شيءً" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,23 +113,23 @@ msgstr "لا يفعل شيءً" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -152,11 +152,11 @@ msgstr "نوع الملف" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" -msgstr "قارئ الميتاداتا" +msgstr "قارئ دليل المعلومات" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 msgid "Metadata writer" -msgstr "كاتب الميتاداتا" +msgstr "كاتب دليل المعلومات" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 msgid "Catalog generator" @@ -211,11 +211,11 @@ msgstr "استخرج الغلاف من ملف الرسومات" #: /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" -msgstr "يقرأ الميتاداتا من الملفات %s" +msgstr "يقرأ دليل المعلومات من الملفات %s" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 msgid "Read metadata from ebooks in RAR archives" -msgstr "إقرأ ميتاداتا لكتب في أرشيفات RAR" +msgstr "إقرأ دليل المعلومات لكتب في أرشيفات RAR" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 msgid "Read metadata from ebooks in ZIP archives" @@ -227,11 +227,11 @@ msgstr "إقرأ ميتاداتا لكتب في أرشيفات ZIP" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:351 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:362 msgid "Set metadata in %s files" -msgstr "ضبط الميتاداتا في الملفات %s" +msgstr "ضبط دليل المعلومات في الملفات %s" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 msgid "Set metadata from %s files" -msgstr "ضبط ميتاداتا من ملفات %s" +msgstr "ضبط دليل المعلومات من ملفات %s" #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" @@ -269,21 +269,25 @@ msgid "" "This profile tries to provide sane defaults and is useful if you know " "nothing about the input document." msgstr "" +"ملف تعريف هذا يحاول تقديم افتراضات عاقلة ومفيدة إذا كنت لا تعرف شيئا عن " +"وثيقة الإدخال." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:235 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" +"ملف التعريف هذا هو المقصود لجهاز سوني من خط إنتاج PRS . الـ500/505/600/700 " +"إلخ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 msgid "This profile is intended for the SONY PRS 300." -msgstr "" +msgstr "ملف التعريف هذا هو المقصود لجهاز سوني PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 msgid "This profile is intended for the SONY PRS-900." -msgstr "" +msgstr "ملف التعريف هذا هو المقصود لجهاز سوني PRS 900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 @@ -293,51 +297,51 @@ msgstr "هذا الطور يستخدم مع Microsoft Reader" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 msgid "This profile is intended for the Mobipocket books." -msgstr "هذا الطور يستخدم مع كتب Mobipocket" +msgstr "ملف التعريف هذا يستخدم مع كتب Mobipocket ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 msgid "This profile is intended for the Hanlin V3 and its clones." -msgstr "هذا الطور يستخدم مع Hanlin V3 وأمثاله." +msgstr "ملف التعريف هذا يستخدم مع Hanlin V3 وأمثاله." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 msgid "This profile is intended for the Hanlin V5 and its clones." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع Hanlin V5 وأمثاله." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 msgid "This profile is intended for the Cybook G3." -msgstr "هذا الطور يستخدم مع Cybook G3" +msgstr "ملف التعريف هذا يستخدم مع Cybook G3" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 msgid "This profile is intended for the Cybook Opus." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع Cybook Opus ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 msgid "This profile is intended for the Amazon Kindle." -msgstr "هذا الطور يستخدم مع Amazon Kindle" +msgstr "ملف التعريف هذا يستخدم مع Amazon Kindle ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 msgid "This profile is intended for the Irex Illiad." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع Irex Illiad ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 msgid "This profile is intended for the IRex Digital Reader 1000." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع IRex Digital Reader 1000 ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 msgid "This profile is intended for the B&N Nook." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع B&N Nook ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 msgid "Output profile" -msgstr "طور الخرج" +msgstr "المخرجات" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 msgid "" @@ -345,24 +349,28 @@ msgid "" "produce a document intended to be read at a computer or on a range of " "devices." msgstr "" +"ملف التعريف هذا يحاول تقديم افتراضات عاقلة و مفيدة إذا كنت ترغب في إصدار " +"وثيقة للقراءة في جهاز الكمبيوتر أو على مجموعة من الأجهزة." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:248 msgid "This profile is intended for the SONY PRS-300." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع سوني PRS-300 ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 msgid "This profile is intended for the 5-inch JetBook." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع الخمسة بوصة JetBook ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." msgstr "" +"ملف التعريف هذا يستخدم مع سوني خط إنتاج PRS . الـ500/505/700 الخ ، في وضع " +"أفقي.غالباً مفيد للكاريكاتيرات." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 msgid "This profile is intended for the Amazon Kindle DX." -msgstr "هذا الطور يستخدم مع Amazon Kindle DX" +msgstr "ملف التعريف هذا يستخدم مع Amazon Kindle DX" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 msgid "Installed plugins" @@ -395,6 +403,10 @@ msgid "" " Customize calibre by loading external plugins.\n" " " msgstr "" +" %prog البرنامج\n" +"\n" +" المقدرة على التخصيص بتحميل الملحقات الخارجية .\n" +" " #: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 msgid "Add a plugin by specifying the path to the zip file containing it." @@ -408,7 +420,7 @@ msgstr "حذف الملحق المخصص عن طريق اسمه. لا يؤثر msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." -msgstr "تخصيص الملحق حدد اسم الملحق وسلسلة التخصيص وفرقهما بفاصلة." +msgstr "تخصيص الملحق . حدد اسم الملحق وسلسلة التخصيص وفرقهما بفاصلة." #: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" @@ -424,7 +436,7 @@ msgstr "تعطيل الملحق المسمى" #: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 msgid "Communicate with Android phones." -msgstr "" +msgstr "التواصل مع هواتف أندرويد ." #: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 msgid "" @@ -452,31 +464,31 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى EB600 ." #: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 msgid "Communicate with the ESlick eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى ESlick ." #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 msgid "Communicate with Hanlin V3 eBook readers." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Hanlin V3 ." #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 msgid "Communicate with Hanlin V5 eBook readers." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Hanlin V5 ." #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 msgid "Communicate with the BOOX eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى BOOX ." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 msgid "Communicate with the Hanvon N520 eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Hanvon N520 ." #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى IRex Iliad ." #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 @@ -490,51 +502,55 @@ msgstr "واجهة الجهاز" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." +msgstr "التواصل مع القارئ الكتاب الاليكترونى IRex Digital Reader 1000 ." + +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Iriver Story ." #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 msgid "Communicate with the JetBook eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى JetBook ." #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 msgid "Communicate with the Kindle eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Kindle ." #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 msgid "Communicate with the Kindle 2 eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Kindle 2 ." #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 msgid "Communicate with the Kindle DX eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Kindle DX ." #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." -msgstr "" +msgstr "التواصل مع نوكيا 770" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 msgid "Communicate with the Nokia 810 internet tablet." -msgstr "" +msgstr "التواصل مع نوكيا 810" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 msgid "The Nook" -msgstr "" +msgstr "جهاز الـNook" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 msgid "Communicate with the Nook eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Nook ." #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Nuut2 ." #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 msgid "Communicate with the Sony PRS-500 eBook reader." -msgstr "" +msgstr "التواصل مع قارئ الكتاب الاليكتروني سوني PRS-500 ." #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:102 @@ -552,7 +568,7 @@ msgstr "يجري إحصاء قائمة كتب من الجهاز..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:26 msgid "Communicate with the Sony PRS-300/505/500 eBook reader." -msgstr "" +msgstr "التواصل مع قارئات الكتاب الاليكتروني سوني PRS-300/505/500 ." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:58 msgid "" @@ -577,11 +593,11 @@ msgstr "يجري حذف الكتب من الجهاز..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." -msgstr "يجري إرسال الميتاداتا إلى الجهاز..." +msgstr "يجري إرسال دليل المعلومات. إلى الجهاز..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 msgid "Communicate with the Sony PRS-600/700/900 eBook reader." -msgstr "" +msgstr "التواصل مع قارئات الكتاب الاليكتروني سوني PRS-600/700/900 ." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." @@ -589,7 +605,7 @@ msgstr "لم يتمكن من كشف القرص %s. حاول إعادة التش #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 msgid "Unable to detect the %s mount point. Try rebooting." -msgstr "" +msgstr "غير قادر على الكشف عن %s نقطة التحميل. حاول إعادة التشغيل." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." @@ -612,11 +628,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 msgid "The reader has no storage card in this slot." -msgstr "" +msgstr "لا يوجد بطاقات تخزين في القارئ ." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." -msgstr "" +msgstr "الفتحة المختارة : %s ليست مدعومة ." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" @@ -628,12 +644,12 @@ msgid "There is insufficient free space on the storage card" msgstr "لا توجد مساحة كافية في بطاقة التخزين" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "الأخبار" @@ -699,6 +715,9 @@ msgid "" "\n" "%s" msgstr "" +"فشل في معالجة الصور : \n" +"\n" +"%s ." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" @@ -770,8 +789,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "صفحة" @@ -1539,83 +1558,83 @@ msgstr "ضم أسرة الخطوط أحادية القياس" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "العنوان" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "المؤلف أو المؤلفون" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "الناشر" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "المنتج" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "التعليقات" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "الوسوم" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "السلسلة" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "اللغة" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "ختم التوقيت" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -1799,7 +1818,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "الغلاف" @@ -1826,74 +1845,74 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "صقحة العنوان" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "المحتويات" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "الفهرس" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "المسرد" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "شكر وتقدير" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "ببليوغرافيا" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "حقوق المؤلف" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "الإهداء" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "افتتاحية" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "قائمة الرسوم" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "قائمة الجداول" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "الملاحظات" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "افتتاحية" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "النصّ الرئيسي" @@ -2189,7 +2208,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2241,183 +2261,188 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "تأكيد قبل الحذف" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "حجم أيقونات شريط الأدوات" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "إظهار تسميات الأزرار في شريط الأدوات" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Notify when a new version is available" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "ترتيب الوسوم حسب الشهرة" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "الإفتراضي للتحويل إلى LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "الخيارات لمستعرض كتب LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "تهيئات التي تعرض عن طريق المستعرض الداخلي" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "إظهار أيقونة صينية النظام" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "رفع أخبار تم تنزيلها إلى الجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "حذف كتب من المكتبة بعد رفعها إلى الجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "يتم البحث في" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "تم الحفظ" @@ -2432,7 +2457,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2448,7 +2473,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2457,7 +2482,7 @@ msgid "output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2467,7 +2492,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2493,32 +2518,53 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -2646,12 +2692,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2983,7 +3029,7 @@ msgid "Change the title of this book" msgstr "تغيير عنوان هذا الكتاب" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "ال&مؤلف: " @@ -2999,7 +3045,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&الناشر: " @@ -3010,7 +3056,7 @@ msgid "Ta&gs: " msgstr "الو&سوم: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3020,15 +3066,15 @@ msgstr "" "مجموعة كلمات، مفرقة بفاصلة." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&سلسلات:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3039,30 +3085,42 @@ msgstr "قائمة السلسلات المعروفة. بإمكانك إضافة msgid "Book " msgstr "الكتاب " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "ضبط الصفحة" @@ -3150,7 +3208,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "" @@ -3443,7 +3501,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -3658,8 +3716,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "المسار" @@ -3669,7 +3727,7 @@ msgstr "المسار" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -3692,7 +3750,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -3815,127 +3873,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "خطأ" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "مسار الملحق غير صالح" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s ليس مسار لملحق صالح" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "إختيار الملحق" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "لا يمكن تعطيل الملحق" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "الملحق: %s لا يمكن تعطيله" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "لا يمكن تخصيص الملحق" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "الملحق: %s لا يحتاج التخصيص" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "لم يمكن حذف الملحق المضمن" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr " لا يمكن حذفه. هذا ملحق مضمن في البرنامج. حاول تعطيله بدلاً من حذفه." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "سجل الأخطاء:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "سجل النفاذ:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "فشل في تشغيل خادم المحتوى" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "حجم غير صالح" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
يجب أن يكون دليل." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4029,252 +4087,256 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "التفضيلات" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " ثانية" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "إختر ال&لغة (يحتاج إعادة تشغيل):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "عادي" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "مرتفع" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "منخفض" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "إرسال الأخبار& التي تم تنزيلها آلياً إلى قارئ الكتب الإلكترونية" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "شريط الأدوات" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "كبير" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "متوسط" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "صغير" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&حجم الأزرار على شريط الأدوات" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "إظهار النص& على أزرار شريط الأدوات" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "استخدم المستعرض& الداخلي في:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&اسم المستخدم:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&كلمة السرّ" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "إظهار& كلمة السرّ" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4285,33 +4347,33 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "ت&خصيص الملحق" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "&حذف الملحق" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "إضافة ملحق جديد" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "&ملف الملحق:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&إضافة" @@ -4376,40 +4438,40 @@ msgstr "ترتيب المؤلف" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "لم يوجد ميتاداتا" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4417,27 +4479,31 @@ msgid "" "below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "" @@ -4458,71 +4524,75 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "تحرير معلومات الميتا" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "معلومات الميتا" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "ضبط& ترتيب المؤلف آلياً" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " نجمة" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "فتح محرر الوسوم" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "حذف& الوسوم:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "قائمة من الوسوم مفرقة بالفاصلة لحذفها من الكتب. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "حذف الت&هيئة:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4577,67 +4647,67 @@ msgstr "" msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -5311,23 +5381,23 @@ msgstr "غير متوفر" msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "تاريخ" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5335,25 +5405,25 @@ msgstr "" msgid "None" msgstr "بدون" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "كتاب %s لـ%s." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "التهيئة" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "" @@ -5382,7 +5452,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "" @@ -5429,52 +5499,52 @@ msgstr "فتح الكتب الإلكترونية" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5630,11 +5700,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" @@ -5765,11 +5835,11 @@ msgstr "" msgid "Fetch news from " msgstr "احصل على الأخبار من " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5856,7 +5926,7 @@ msgid "Save to disk in a single directory" msgstr "حفظ إلى القرص في دليل واحد" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "" @@ -5911,7 +5981,7 @@ msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "" @@ -6008,163 +6078,169 @@ msgstr "أرشيفات" msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "الكتب المختارة سوف تحذف تماماً من حاسوبك. هل أنت متأكّد؟" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "لا يمكن تحرير الميتاداتا" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "إختيار دليل الوجهة" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "لا يمكن تحويله" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6172,101 +6248,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "خطأ في الاتصال بالجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "خطأ في التحويل" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "تحديث متوفر" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6429,7 +6505,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "" @@ -6484,7 +6560,7 @@ msgstr "قياس خط الأحادي القياس بـpx" msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "" @@ -6544,88 +6620,88 @@ msgstr "" msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "إختيار الكتاب الإلكتروني" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "كتب إلكترونية" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "يتم تحميل الكتاب الإلكتروني..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "لم يتمكن من فتح الكتاب الإلكتروني" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7061,7 +7137,7 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7070,7 +7146,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7078,14 +7154,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7094,14 +7170,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7110,21 +7186,37 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7134,6 +7226,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7386,7 +7485,7 @@ msgstr "" msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7398,27 +7497,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "" @@ -7627,7 +7726,7 @@ msgstr "" msgid "Finished" msgstr "انتهى" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -7760,75 +7859,83 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "تم التنزيل" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "فشل تنزيل المقالات التالية:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "فشل تنزيل أجزاء من المقالات التالية:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr " من " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "محاولة تنزيل الغلاف..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "تم تنزيل التلقيم إلى %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "لم يتمكّن من تنزيل الغلاف: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "يتم تنزيل الغلاف من %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "مقالة بدون عنوان" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "المقالة منزّلة: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "فشل تنزيل المقالة: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "" diff --git a/src/calibre/translations/ast.po b/src/calibre/translations/ast.po new file mode 100644 index 0000000000..9178b57886 --- /dev/null +++ b/src/calibre/translations/ast.po @@ -0,0 +1,7865 @@ +# Asturian translation for calibre +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the calibre package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: calibre\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-31 21:37+0000\n" +"Last-Translator: Kovid Goyal \n" +"Language-Team: Asturian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-02-01 04:43+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 +msgid "Does absolutely nothing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:322 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 +#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 +#: /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/meta.py:36 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 +#: /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/pdf.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 +#: /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:70 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 +#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:82 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:83 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:73 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:74 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:65 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:66 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:81 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /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/database2.py:703 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:715 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/server.py:645 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:49 +msgid "Unknown" +msgstr "Desconocío" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 +msgid "Base" +msgstr "Base" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 +msgid "File type" +msgstr "Formatu de ficheru" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 +msgid "Metadata reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 +msgid "Metadata writer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "Xenerador de catálogu" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 +msgid "" +"Follow all local links in an HTML file and create a ZIP file containing all " +"linked files. This plugin is run every time you add an HTML file to the " +"library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 +msgid "" +"Character encoding for the input HTML files. Common choices include: cp1252, " +"latin1, iso-8859-1 and utf-8." +msgstr "" +"Codificación de carauteres pa los ficheros HTML d'entrada. Les eleiciones " +"más comunes incluyen: cp1252, latin1, iso-8859-1 ya utf-8." + +#: /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 "" +"Crear un ficheru PMLZ conteniendo'l ficheru PML y toes les imaxes nel " +"direutoriu pmlname_img o images. Esti complementu ye executáu cá vez que " +"s'añade un ficheru PML a la llibrería." + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87 +msgid "Extract cover from comic files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:108 +#: /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:140 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:151 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:161 +#: /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:191 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:201 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:212 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:223 +#: /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: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" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 +msgid "Read metadata from ebooks in RAR archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 +msgid "Read metadata from ebooks in ZIP archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:319 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:329 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:351 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:362 +msgid "Set metadata in %s files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 +msgid "Set metadata from %s files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 +msgid "Conversion Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 +msgid "" +"Specify the character encoding of the input document. If set this option " +"will override any encoding declared by the document itself. Particularly " +"useful for documents that do not declare an encoding or that have erroneous " +"encoding declarations." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 +msgid "Conversion Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 +msgid "" +"If specified, the output plugin will try to create output that is as human " +"readable as possible. May not have any effect for some output plugins." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:44 +msgid "Input profile" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:48 +msgid "" +"This profile tries to provide sane defaults and is useful if you know " +"nothing about the input document." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:235 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/600/700 etc." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 +msgid "This profile is intended for the SONY PRS 300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +msgid "This profile is intended for the SONY PRS-900." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 +msgid "This profile is intended for the Microsoft Reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 +msgid "This profile is intended for the Mobipocket books." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 +msgid "This profile is intended for the Hanlin V3 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 +msgid "This profile is intended for the Hanlin V5 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 +msgid "This profile is intended for the Cybook G3." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 +msgid "This profile is intended for the Cybook Opus." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 +msgid "This profile is intended for the Amazon Kindle." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 +msgid "This profile is intended for the Irex Illiad." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 +msgid "This profile is intended for the IRex Digital Reader 1000." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 +msgid "This profile is intended for the B&N Nook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 +msgid "Output profile" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 +msgid "" +"This profile tries to provide sane defaults and is useful if you want to " +"produce a document intended to be read at a computer or on a range of " +"devices." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:248 +msgid "This profile is intended for the SONY PRS-300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 +msgid "This profile is intended for the 5-inch JetBook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/700 etc, in " +"landscape mode. Mainly useful for comics." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 +msgid "This profile is intended for the Amazon Kindle DX." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 +msgid "Installed plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +msgid "Mapping for filetype plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +msgid "Local plugin customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +msgid "Disabled plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 +msgid "No valid plugin found in " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:263 +msgid "Initialization of plugin %s failed with traceback:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 +msgid "" +" %prog options\n" +"\n" +" Customize calibre by loading external plugins.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 +msgid "Add a plugin by specifying the path to the zip file containing it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 +msgid "Remove a custom plugin by name. Has no effect on builtin plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 +msgid "" +"Customize plugin. Specify name of plugin and customization string separated " +"by a comma." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 +msgid "List all installed plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 +msgid "Enable the named plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 +msgid "Disable the named plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 +msgid "Communicate with Android phones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 +msgid "" +"Comma separated list of directories to send e-books to on the device. The " +"first one that exists will be used" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +msgid "Communicate with the Binatone Readme eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +msgid "Communicate with the Blackberry smart phone." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 +msgid "Kovid Goyal" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 +msgid "Communicate with the EB600 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 +msgid "Communicate with the ESlick eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +msgid "Communicate with Hanlin V3 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 +msgid "Communicate with Hanlin V5 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 +msgid "Communicate with the BOOX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 +msgid "Communicate with the Hanvon N520 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 +msgid "Communicate with the IRex Iliad eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 +msgid "John Schember" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 +msgid "Device Interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 +msgid "Communicate with the IRex Digital Reader 1000 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 +msgid "Communicate with the Iriver Story reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 +msgid "Communicate with the JetBook eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 +msgid "Communicate with the Kindle eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 +msgid "Communicate with the Kindle 2 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 +msgid "Communicate with the Kindle DX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +msgid "Communicate with the Nokia 770 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +msgid "Communicate with the Nokia 810 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 +msgid "The Nook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 +msgid "Communicate with the Nook eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 +msgid "Communicate with the Nuut2 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 +msgid "Communicate with the Sony PRS-500 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:105 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:108 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:119 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:45 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:81 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:90 +msgid "Getting list of books on device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:26 +msgid "Communicate with the Sony PRS-300/505/500 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:58 +msgid "" +"Comma separated list of metadata fields to turn into collections on the " +"device. Possibilities include: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:116 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:118 +msgid "Transferring books to device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +msgid "Removing books from device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 +msgid "Sending metadata to device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 +msgid "Communicate with the Sony PRS-600/700/900 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 +msgid "Unable to detect the %s disk drive. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 +msgid "Unable to detect the %s mount point. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 +msgid "Unable to detect the %s disk drive." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 +msgid "Could not find mount helper: %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 +msgid "" +"Unable to detect the %s disk drive. Your kernel is probably exporting a " +"deprecated version of SYSFS." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 +msgid "Unable to mount main memory (Error code: %d)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 +msgid "The reader has no storage card in this slot." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 +msgid "Selected slot: %s is not supported." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 +msgid "There is insufficient free space in main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 +msgid "There is insufficient free space on the storage card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +msgid "News" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 +msgid "Configure Device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 +msgid "settings for device drivers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 +msgid "Ordered list of formats the device will accept" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:32 +msgid "Place files in sub directories if the device supports them" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 +msgid "Read metadata from files on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 +msgid "Template to control how books are saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +msgid "Extra customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 +msgid "Communicate with an eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +msgid "Get device information..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 +msgid "Adding books to device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 +msgid "Removing books from device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 +msgid "Rendered %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 +msgid "Failed %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 +msgid "" +"Failed to process comic: \n" +"\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 +msgid "" +"Disable normalize (improve contrast) color range for pictures. Default: False" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 +msgid "Maintain picture aspect ratio. Default is to fill the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 +msgid "Disable sharpening." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 +msgid "" +"Disable trimming of comic pages. For some comics, trimming might remove " +"content as well as borders." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 +msgid "Don't split landscape images into two portrait images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:294 +msgid "" +"Keep aspect ratio and scale image using screen height as image width for " +"viewing in landscape mode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 +msgid "" +"Used for right-to-left publications like manga. Causes landscape pages to be " +"split into portrait pages from right to left." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:301 +msgid "" +"Enable Despeckle. Reduces speckle noise. May greatly increase processing " +"time." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"Don't sort the files found in the comic alphabetically by name. Instead use " +"the order they were added to the comic." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:312 +msgid "Apply no processing to the image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +msgid "Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:19 +msgid "" +"input_file output_file [options]\n" +"\n" +"Convert an ebook from one format to another.\n" +"\n" +"input_file is the input and output_file is the output. Both must be " +"specified as the first two arguments to the command.\n" +"\n" +"The output ebook format is guessed from the file extension of output_file. " +"output_file can also be of the special format .EXT where EXT is the output " +"file extension. In this case, the name of the output file is derived the " +"name of the input file. Note that the filenames must not start with a " +"hyphen. Finally, if output_file has no extension, then it is treated as a " +"directory and an \"open ebook\" (OEB) consisting of HTML files is written to " +"that directory. These files are the files that would normally have been " +"passed to the output plugin.\n" +"\n" +"After specifying the input and output file you can customize the conversion " +"by specifying various options. The available options depend on the input and " +"output file types. To get help on them specify the input and output file and " +"then use the -h option.\n" +"\n" +"For full documentation of the conversion system see\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97 +msgid "INPUT OPTIONS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98 +msgid "Options to control the processing of the input %s file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104 +msgid "OUTPUT OPTIONS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105 +msgid "Options to control the processing of the output %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:119 +msgid "Options to control the look and feel of the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:135 +msgid "Control auto-detection of document structure." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:145 +msgid "" +"Control the automatic generation of a Table of Contents. By default, if the " +"source file has a Table of Contents, it will be used in preference to the " +"automatically generated one." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:155 +msgid "Options to set metadata in the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:158 +msgid "Options to help with debugging the conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 +msgid "List builtin recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:252 +msgid "Output saved to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:92 +msgid "Level of verbosity. Specify multiple times for greater verbosity." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:108 +msgid "" +"Specify the input profile. The input profile gives the conversion system " +"information on how to interpret various information in the input document. " +"For example resolution dependent lengths (i.e. lengths in pixels). Choices " +"are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:119 +msgid "" +"Specify the output profile. The output profile tells the conversion system " +"how to optimize the created document for the specified device. In some " +"cases, an output profile is required to produce documents that will work on " +"a device. For example EPUB on the SONY reader. Choices are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:130 +msgid "" +"The base font size in pts. All font sizes in the produced book will be " +"rescaled based on this size. By choosing a larger size you can make the " +"fonts in the output bigger and vice versa. By default, the base font size is " +"chosen based on the output profile you chose." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:140 +msgid "" +"Mapping from CSS font names to font sizes in pts. An example setting is " +"12,12,14,16,18,20,22,24. These are the mappings for the sizes xx-small to xx-" +"large, with the final size being for huge fonts. The font rescaling " +"algorithm uses these sizes to intelligently rescale fonts. The default is to " +"use a mapping based on the output profile you chose." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:152 +msgid "Disable all rescaling of font sizes." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 +msgid "" +"The line height in pts. Controls spacing between consecutive lines of text. " +"By default no line height manipulation is performed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:167 +msgid "" +"Some badly designed documents use tables to control the layout of text on " +"the page. When converted these documents often have text that runs off the " +"page and other artifacts. This option will extract the content from the " +"tables and present it in a linear fashion." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:177 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level one. If this is specified, it takes precedence over " +"other forms of auto-detection." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:186 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level two. Each entry is added under the previous level one " +"entry." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:194 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level three. Each entry is added under the previous level two " +"entry." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:202 +msgid "" +"Normally, if the source file already has a Table of Contents, it is used in " +"preference to the auto-generated one. With this option, the auto-generated " +"one is always used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:210 +msgid "Don't add auto-detected chapters to the Table of Contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 +msgid "" +"If fewer than this number of chapters is detected, then links are added to " +"the Table of Contents. Default: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 +msgid "" +"Maximum number of links to insert into the TOC. Set to 0 to disable. Default " +"is: %default. Links are only added to the TOC if less than the threshold " +"number of chapters were detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:232 +msgid "" +"Remove entries from the Table of Contents whose titles match the specified " +"regular expression. Matching entries and all their children are removed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:243 +msgid "" +"An XPath expression to detect chapter titles. The default is to consider " +"

or

tags that contain the words \"chapter\",\"book\",\"section\" or " +"\"part\" as chapter titles as well as any tags that have class=\"chapter\". " +"The expression used must evaluate to a list of elements. To disable chapter " +"detection, use the expression \"/\". See the XPath Tutorial in the calibre " +"User Manual for further help on using this feature." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:257 +msgid "" +"Specify how to mark detected chapters. A value of \"pagebreak\" will insert " +"page breaks before chapters. A value of \"rule\" will insert a line before " +"chapters. A value of \"none\" will disable chapter marking and a value of " +"\"both\" will use both page breaks and lines to mark chapters." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:267 +msgid "" +"Either the path to a CSS stylesheet or raw CSS. This CSS will be appended to " +"the style rules from the source file, so it can be used to override those " +"rules." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:276 +msgid "" +"An XPath expression. Page breaks are inserted before the specified elements." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:282 +msgid "" +"Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:287 +msgid "" +"Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:292 +msgid "" +"Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:297 +msgid "" +"Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:302 +msgid "" +"Do not force text to be justified in output. Whether text is actually " +"displayed justified or not depends on whether the ebook format and reading " +"device support justification." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:309 +msgid "" +"Remove spacing between paragraphs. Also sets an indent on paragraphs of " +"1.5em. Spacing removal will not work if the source file does not use " +"paragraphs (

or

tags)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +msgid "" +"When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 +msgid "" +"Use the cover detected from the source file in preference to the specified " +"cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:329 +msgid "" +"Insert a blank line between paragraphs. Will not work if the source file " +"does not use paragraphs (

or

tags)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 +msgid "" +"Remove the first image from the input ebook. Useful if the first image in " +"the source file is a cover and you are specifying an external cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:344 +msgid "" +"Insert the book metadata at the start of the book. This is useful if your " +"ebook reader does not support displaying/searching metadata directly." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 +msgid "" +"Attempt to detect and correct hard line breaks and other problems in the " +"source file. This may make things worse, so use with care." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:360 +msgid "Use a regular expression to try and remove the header." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 +msgid "The regular expression to use to remove the header." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:373 +msgid "Use a regular expression to try and remove the footer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 +msgid "The regular expression to use to remove the footer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 +msgid "" +"Read metadata from the specified OPF file. Metadata read from this file will " +"override any metadata in the source file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 +msgid "" +"Transliterate unicode characters to an ASCII representation. Use with care " +"because this will replace unicode characters with ASCII. For instance it " +"will replace \"%s\" with \"Mikhail Gorbachiov\". Also, note that in cases " +"where there are multiple representations of a character (characters shared " +"by Chinese and Japanese for instance) the representation used by the largest " +"number of people will be used (Chinese in the previous example)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:409 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:37 +msgid "Set the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:413 +msgid "Set the authors. Multiple authors should be separated by ampersands." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 +msgid "The version of the title to be used for sorting. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 +msgid "String to be used when sorting by author. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 +msgid "Set the cover to the specified file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 +msgid "Set the ebook description." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:55 +msgid "Set the ebook publisher." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 +msgid "Set the series this ebook belongs to." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:61 +msgid "Set the index of the book in this series." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:63 +msgid "Set the rating. Should be a number between 1 and 5." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 +msgid "Set the ISBN of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 +msgid "Set the tags for the book. Should be a comma separated list." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 +msgid "Set the book producer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:71 +msgid "Set the language." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 +msgid "Could not find an ebook inside the archive" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:620 +msgid "Values of series index and rating must be numbers. Ignoring" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:740 +msgid "Converting input to HTML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:763 +msgid "Running transforms on ebook..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:850 +msgid "Creating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:57 +msgid "" +"Extract the contents of the generated EPUB file to the specified directory. " +"The contents of the directory are first deleted, so be careful." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:63 +msgid "" +"Turn off splitting at page breaks. Normally, input files are automatically " +"split at every page break into two files. This gives an output ebook that " +"can be parsed faster and with less resources. However, splitting is slow and " +"if your source file contains a very large number of page breaks, you should " +"turn off splitting on page breaks." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:74 +msgid "" +"Split all HTML files larger than this size (in KB). This is necessary as " +"most EPUB readers cannot handle large file sizes. The default of %defaultKB " +"is the size required for Adobe Digital Editions." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:81 +msgid "" +"Normally, if the input file has no cover and you don't specify one, a " +"default cover is generated with the title, authors, etc. This option " +"disables the generation of this cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 +msgid "Table of Contents:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:32 +msgid "Do not insert a Table of Contents at the beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:32 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:37 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/output.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:35 +msgid "Add Table of Contents to beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:243 +msgid "" +"Traverse links in HTML files breadth first. Normally, they are traversed " +"depth first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:250 +msgid "" +"Maximum levels of recursion when following links in HTML files. Must be non-" +"negative. 0 implies that no links in the root HTML file are followed. " +"Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:259 +msgid "" +"Normally this input plugin re-arranges all the input files into a standard " +"folder hierarchy. Only use this option if you know what you are doing as it " +"can result in various nasty side effects in the rest of of the conversion " +"pipeline." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:267 +msgid "" +"Average line length for line breaking if the HTML is from a previous partial " +"conversion of a PDF file. Default is %default which disables this." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 +msgid "Creating LIT file from EPUB..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 +msgid "\tBook Designer file detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 +msgid "\tParsing HTML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 +msgid "\tBaen file detected. Re-parsing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 +msgid "Written preprocessed HTML to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 +msgid "Processing %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 +msgid "\tConverting to BBeB..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:552 +msgid "Could not parse file: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 +msgid "%s is an empty file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 +msgid "Failed to parse link %s %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 +msgid "Cannot add link %s to TOC" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 +msgid "Unable to process image %s. Error: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 +msgid "Unable to process interlaced PNG %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 +msgid "" +"Could not process image: %s\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 +msgid "" +"An error occurred while processing a table: %s. Ignoring table markup." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 +msgid "" +"Bad table:\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 +msgid "Table has cell that is too large" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 +msgid "Could not read cover image: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 +msgid "Cannot read from: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 +msgid "Failed to process opf file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:136 +msgid "" +"%prog book.lrf\n" +"Convert an LRF file into an LRS (XML UTF-8 encoded) file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:137 +msgid "Output LRS file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 +msgid "Do not save embedded image and font files to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 +msgid "Parsing LRF..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:161 +msgid "Creating XML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 +msgid "LRS written to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:267 +msgid "Could not read from thumbnail file:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:287 +msgid "" +"%prog [options] file.lrs\n" +"Compile an LRS file into an LRF file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:288 +msgid "Path to output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:113 +msgid "Verbose processing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:292 +msgid "Convert LRS to LRS, useful for debugging." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:457 +msgid "Invalid LRF file. Could not set metadata." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:582 +msgid "" +"%prog [options] mybook.lrf\n" +"\n" +"\n" +"Show/edit the metadata in an LRF file.\n" +"\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 +msgid "Set the book title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 +msgid "Set sort key for the title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 +msgid "Set the author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 +msgid "Set sort key for the author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597 +msgid "The category this book belongs to. E.g.: History" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600 +msgid "Path to a graphic that will be set as this files' thumbnail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:603 +msgid "" +"Path to a txt file containing the comment to be stored in the lrf file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 +msgid "Extract thumbnail from LRF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 +msgid "Set the publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 +msgid "Set the book classification" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 +msgid "Set the book creator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 +msgid "Set the book producer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 +msgid "" +"Extract cover from LRF file. Note that the LRF format has no defined cover, " +"so we use some heuristics to guess the cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 +msgid "Set book ID" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 +msgid "Enable autorotation of images that are wider than the screen width." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:94 +msgid "Set the space between words in pts. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:97 +msgid "Add a header to all the pages with title and author." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:100 +msgid "" +"Set the format of the header. %a is replaced by the author and %t by the " +"title. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:104 +msgid "Add extra spacing below the header. Default is %default pt." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:107 +msgid "" +"Minimum paragraph indent (the indent of the first line of a paragraph) in " +"pts. Default: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:112 +msgid "" +"Render tables in the HTML as images (useful if the document has large or " +"complex tables)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:117 +msgid "" +"Multiply the size of text in rendered tables by this factor. Default is " +"%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:121 +msgid "The serif family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:124 +msgid "The sans-serif family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:127 +msgid "The monospace family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:152 +msgid "Comic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +msgid "Title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +msgid "Author(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +msgid "Publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 +msgid "Producer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 +msgid "Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +msgid "Language" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +msgid "Timestamp" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +msgid "Published" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +msgid "Rights" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 +msgid "EDITORIAL REVIEW" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:19 +msgid "options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:20 +msgid "" +"\n" +"Read/Write metadata from/to ebook files.\n" +"\n" +"Supported formats for reading metadata: %s\n" +"\n" +"Supported formats for writing metadata: %s\n" +"\n" +"Different file types support different kinds of metadata. If you try to set\n" +"some metadata on a file type that does not support it, the metadata will be\n" +"silently ignored.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:39 +msgid "" +"Set the authors. Multiple authors should be separated by the & character. " +"Author names should be in the order Firstname Lastname." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:43 +msgid "" +"The version of the title to be used for sorting. If unspecified, and the " +"title is specified, it will be auto-generated from the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:47 +msgid "" +"String to be used when sorting by author. If unspecified, and the author(s) " +"are specified, it will be auto-generated from the author(s)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:57 +msgid "Set the book category." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 +msgid "Get the cover from the ebook and save it at as the specified file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77 +msgid "" +"Specify the name of an OPF file. The metadata will be written to the OPF " +"file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:80 +msgid "" +"Read metadata from the specified OPF file and use it to set metadata in the " +"ebook. Metadata specified on the command line will override metadata read " +"from the OPF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:85 +msgid "Set the BookID in LRF files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 +msgid "No file specified" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 +msgid "Original metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 +msgid "Changed metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 +msgid "OPF created in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 +msgid "Cover saved to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 +msgid "No cover found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +msgid "Metadata download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "ratings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +msgid "description/reviews" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +msgid "Download %s from %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 +msgid "Downloads metadata from Google Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:153 +msgid "Downloads metadata from isbndb.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 +msgid "" +"To use isbndb.com you must sign up for a %sfree account%s and enter your " +"access key below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189 +msgid "Downloads social metadata from amazon.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 +msgid "" +"\n" +"%prog [options] key\n" +"\n" +"Fetch metadata for books from isndb.com. You can specify either the\n" +"books ISBN ID or its title and author. If you specify the title and author,\n" +"then more than one book may be returned.\n" +"\n" +"key is the account key you generate after signing up for a free account from " +"isbndb.com.\n" +"\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:105 +msgid "The ISBN ID of the book you want metadata for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 +msgid "The author whose book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +msgid "The title of the book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:111 +msgid "The publisher of the book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:53 +msgid "LibraryThing.com timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:60 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:61 +msgid " not found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:64 +msgid "LibraryThing.com server error. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:71 +msgid "" +"\n" +"%prog [options] ISBN\n" +"\n" +"Fetch a cover image for the book identified by ISBN from LibraryThing.com\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +msgid "Cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 +msgid "Modify images to meet Palm device size limitations." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:26 +msgid "When present, use author sort field as author." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:30 +msgid "" +"Don't add Table of Contents to end of book. Useful if the book has its own " +"table of contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:33 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:56 +msgid "Title for any generated in-line table of contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 +msgid "Disable compression of the file contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +msgid "All articles" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +msgid "Title Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 +msgid "Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +msgid "Index" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +msgid "Glossary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +msgid "Acknowledgements" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +msgid "Bibliography" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +msgid "Colophon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +msgid "Copyright" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +msgid "Dedication" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +msgid "Epigraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +msgid "Foreword" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +msgid "List of Illustrations" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +msgid "List of Tables" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +msgid "Notes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +msgid "Preface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +msgid "Main Text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 +msgid "%s format books are not supported" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 +msgid "HTML TOC generation options." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 +msgid "Book Jacket" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 +msgid "" +"Could not find reasonable point at which to split: %s Sub-tree size: %d KB" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 +msgid "Unnamed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 +msgid "OPF/NCX/etc. generation options." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:35 +msgid "OPF version to generate. Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:37 +msgid "" +"Generate an Adobe \"page-map\" file if pagination information is available." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126 +msgid "Footnotes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:133 +msgid "Sidebar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:22 +msgid "" +"Normally calibre treats blank lines as paragraph markers. With this option " +"it will assume that every line represents a paragraph instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:26 +msgid "" +"Normally calibre treats blank lines as paragraph markers. With this option " +"it will assume that every line starting with an indent (either a tab or 2+ " +"spaces) represents a paragraph. Paragraphs end when the next line that " +"starts with an indent is reached." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23 +msgid "Format to use inside the pdb container. Choices are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:27 +msgid "" +"Specify the character encoding of the output document. The default is " +"cp1252. Note: This option is not honored by all formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 +msgid "Do not extract images from the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 +msgid "" +"Scale used to determine the length at which a line should be unwrapped. " +"Valid values are a decimal between 0 and 1. The default is 0.5, this is the " +"median line length." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 +msgid "Use the new PDF conversion engine." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/cli.py:31 +msgid "" +"command ...\n" +"\n" +"command can be one of the following:\n" +"[%%commands]\n" +"\n" +"Use %prog command --help to get more information about a specific command\n" +"\n" +"Manipulate a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:29 +msgid "" +"[options] file.pdf\n" +"\n" +"Crop a PDF file.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:38 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:32 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:36 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:33 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:41 +msgid "" +"Path to output file. By default a file is created in the current directory." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:41 +msgid "Number of pixels to crop from the left most x (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:44 +msgid "Number of pixels to crop from the left most y (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:47 +msgid "Number of pixels to crop from the right most x (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:50 +msgid "Number of pixels to crop from the right most y (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:53 +msgid "" +"A file generated by ghostscript which allows each page to be individually " +"cropped `gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox file.pdf 2> bounding`" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 +msgid "Crop Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +msgid "Options to control the transformation of pdf" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:23 +msgid "" +"[options] file.pdf password\n" +"\n" +"Decrypt a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +msgid "Decrypt Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 +msgid "" +"[options] file.pdf password\n" +"\n" +"Encrypt a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +msgid "Encrypt Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 +msgid "" +"file.pdf ...\n" +"\n" +"Get info about a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 +msgid "Author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:47 +msgid "Subject" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:48 +msgid "Creator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:50 +msgid "Pages" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:51 +msgid "File Size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +msgid "PDF Version" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:25 +msgid "" +"[options] file1.pdf file2.pdf ...\n" +"\n" +"Metadata will be used from the first PDF specified.\n" +"\n" +"Merges individual PDFs.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +msgid "Merge Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:25 +msgid "" +"[options] file.pdf\n" +"\n" +"Reverse a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +msgid "Reverse Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:24 +msgid "" +"file.pdf degrees\n" +"\n" +"Rotate pages of a PDF clockwise.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +msgid "Rotate Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:25 +msgid "" +"\n" +"%prog %%name [options] file.pdf page_to_split_on ...\n" +"%prog %%name [options] file.pdf page_range_to_split_on ...\n" +"\t\n" +"Ex.\n" +"\t\n" +"%prog %%name file.pdf 6\n" +"%prog %%name file.pdf 6-12\n" +"%prog %%name file.pdf 6-12 8 10 9-20\n" +"\n" +"Split a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +msgid "Split Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:31 +msgid "" +"The unit of measure. Default is inch. Choices are %s Note: This does not " +"override the unit for margins!" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:36 +msgid "" +"The size of the paper. This size will be overridden when an output profile " +"is used. Default is letter. Choices are %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:40 +msgid "" +"Custom size of the document. Use the form widthxheight EG. `123x321` to " +"specify the width and height. This overrides any specified paper-size." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:45 +msgid "The orientation of the page. Default is portrait. Choices are %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 +msgid "Could not find pdftohtml, check it is in your PATH" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:33 +msgid "" +"Specify the character encoding of the output document. The default is cp1252." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 +msgid "" +"This RTF file has a feature calibre does not support. Convert it to HTML " +"first and then try it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 +msgid "" +"Specify the character encoding of the output document. The default is utf-8." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27 +msgid "" +"Specify the compression level to use. Scale 1 - 10. 1 being the lowest " +"compression but the fastest and 10 being the highest compression but the " +"slowest." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32 +msgid "" +"Run the text input through the markdown pre-processor. To learn more about " +"markdown see" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:35 +msgid "Do not insert a Table of Contents into the output text." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 +msgid "" +"Type of newline to use. Options are %s. Default is 'system'. Use 'old_mac' " +"for compatibility with Mac OS 9 and earlier. For Mac OS X use 'unix'. " +"'system' will default to the newline type used by this OS." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:30 +msgid "" +"Specify the character encoding of the output document. The default is utf-8. " +"Note: This option is not honored by all formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 +msgid "" +"The maximum number of characters per line. This splits on the first space " +"before the specified value. If no space is found the line will be broken at " +"the space after and will exceed the specified value. Also, there is a " +"minimum of 25 characters. Use 0 to disable line splitting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 +msgid "" +"Force splitting on the max-line-length value when no space is present. Also " +"allows max-line-length to be below the minimum" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +msgid "Send file to storage card instead of main memory by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +msgid "Confirm before deleting" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +msgid "Toolbar icon size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +msgid "Show button labels in the toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +msgid "Main window geometry" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +msgid "Notify when a new version is available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +msgid "Use Roman numerals for series number" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +msgid "Sort tags list by popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +msgid "Number of covers to show in the cover browsing mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +msgid "Defaults for conversion to LRF" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +msgid "Options for the LRF ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +msgid "Formats that are viewed using the internal viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +msgid "Columns to be displayed in the book list" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +msgid "Automatically launch content server on application startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +msgid "Oldest news kept in database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +msgid "Show system tray icon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +msgid "Upload downloaded news to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +msgid "Delete books from library after uploading to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +msgid "" +"Show the cover flow in a separate window instead of in the main calibre " +"window" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +msgid "Disable notifications from the system tray icon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +msgid "Default action to perform when send to device button is clicked" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +msgid "Maximum number of waiting worker processes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +msgid "Download social metadata (tags/rating/etc.)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +msgid "Limit max simultaneous jobs to number of CPUs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 +msgid "Copied" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +msgid "Copy" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +msgid "Copy to Clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +msgid "Choose Files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +msgid "Searching in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +msgid "Adding..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +msgid "Searching in all sub-directories..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +msgid "Path error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +msgid "The specified directory could not be processed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 +msgid "No books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +msgid "No books found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +msgid "Added" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +msgid "Adding failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +msgid "" +"The add books process seems to have hung. Try restarting calibre and adding " +"the books in smaller increments, until you find the problem book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +msgid "Duplicates found!" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +msgid "" +"Books with the same title as the following already exist in the database. " +"Add them anyway?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +msgid "Adding duplicates..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +msgid "Saving..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +msgid "Saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "Options specific to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +msgid "Form" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 +msgid "Tags to exclude as genres (regex):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 +msgid "" +"For settings that cannot be specified in this dialog, use the values saved " +"in a previous conversion (if they exist) instead of using the defaults " +"specified in the Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 +msgid "Bulk Convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +msgid "Options specific to the output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 +msgid "Comic Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +msgid "input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 +msgid "&Number of Colors:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 +msgid "Disable &normalize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +msgid "Keep &aspect ratio" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 +msgid "Disable &Sharpening" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 +msgid "Disable &Trimming" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 +msgid "&Wide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 +msgid "&Landscape" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 +msgid "&Right to left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 +msgid "Don't so&rt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 +msgid "De&speckle" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 +msgid "&Disable comic processing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 +msgid "&Output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 +msgid "Debug" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:21 +msgid "Debug the conversion process." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 +msgid "Choose debug folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:57 +msgid "Invalid debug directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 +msgid "Failed to create debug directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 +msgid "" +"Choose a folder to put the debug output into. If you specify a folder, " +"calibre will place a lot of debug output into it. This will be useful in " +"understanding the conversion process and figuring out the correct values for " +"conversion parameters like Table of Contents and Chapter Detection." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:267 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:269 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:180 +msgid "..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +msgid "" +"The debug process outputs the intermediate HTML generated at various stages " +"of the conversion process. This HTML can sometimes serve as a good starting " +"point for hand editing a conversion." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 +msgid "EPUB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 +msgid "Do not &split on page breaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:43 +msgid "Split files &larger than:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:44 +msgid " KB" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:45 +msgid "No default &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 +msgid "FB2 Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 +msgid "Do not insert a &Table of Contents at the beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 +msgid "FB2 Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 +msgid "&Inline TOC" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 +msgid "Font rescaling wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 +msgid "" +"

This wizard will help you choose an appropriate font size key for your " +"needs. Just enter the base font size of the input document and then enter an " +"input font size. The wizard will display what font size it will be mapped " +"to, by the font rescaling algorithm. You can adjust the algorithm by " +"adjusting the output base font size and font key below. When you find values " +"suitable for you, click OK.

\n" +"

By default, if the output base font size is zero and/or no font size key " +"is specified, calibre will use the values from the current Output Profile. " +"

\n" +"

See the User Manual " +"for a discussion of how font size rescaling works.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 +msgid "&Output document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109 +msgid "&Base font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 +msgid "Font size &key:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 +msgid " pt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 +msgid "Use &default values" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 +msgid "&Input document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 +msgid "&Font size: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 +msgid " will map to size: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 +msgid "0.0 pt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16 +msgid "Look & Feel" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 +msgid "Control the look and feel of the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 +msgid "&Disable font size rescaling" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +msgid "Base &font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 +msgid "Wizard to help you choose an appropriate font size key" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 +msgid "Line &height:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +msgid "Input character &encoding:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +msgid "Remove &spacing between paragraphs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +msgid "Indent size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +msgid "" +"

When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +msgid " em" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 +msgid "Insert &blank line" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +msgid "No text &justification" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +msgid "&Linearize tables" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +msgid "&Transliterate unicode characters to ASCII." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 +msgid "Extra &CSS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 +msgid "LRF Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116 +msgid "Enable &autorotation of wide images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117 +msgid "&Wordspace:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:119 +msgid "Minimum para. &indent:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 +msgid "Render &tables as images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 +msgid "Text size multiplier for text in rendered tables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 +msgid "Add &header" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 +msgid "Header &separation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 +msgid "Header &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 +msgid "&Embed fonts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 +msgid "&Serif font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 +msgid "S&ans-serif font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 +msgid "&Monospaced font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 +msgid "Metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:43 +msgid "" +"Set the metadata. The output file will contain as much of this metadata as " +"possible." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +msgid "Choose cover for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +msgid "Cannot read" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +msgid "You do not have permission to read the file: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +msgid "Error reading file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +msgid "

There was an error reading from file:
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +msgid " is not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +msgid "Book Cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 +msgid "Use cover from &source file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +msgid "Change &cover image:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +msgid "Browse for an image to use as the cover of this book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 +msgid "&Title: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +msgid "Change the title of this book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +msgid "&Author(s): " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 +msgid "Author So&rt:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 +msgid "" +"Change the author(s) of this book. Multiple authors should be separated by a " +"comma" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 +msgid "&Publisher: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +msgid "Ta&gs: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 +msgid "" +"Tags categorize the book. This is particularly useful while searching. " +"

They can be any words or phrases, separated by commas." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +msgid "&Series:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +msgid "List of known series. You can add new series." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 +msgid "Book " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +msgid "MOBI Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +msgid "&Title for Table of Contents:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +msgid "Rescale images for &Palm devices" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +msgid "Use author &sort for author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +msgid "Disable compression of the file contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +msgid "Do not add Table of Contents to book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 +msgid "Page Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:111 +msgid "&Output profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:112 +msgid "Profile description" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:113 +msgid "&Input profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:114 +msgid "Margins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 +msgid "&Left:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 +msgid "&Top:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 +msgid "&Right:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 +msgid "&Bottom:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:12 +msgid "PDB Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:43 +msgid "Treat each &line as a paragraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:44 +msgid "Assume print formatting" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:16 +msgid "PDB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 +msgid "&Format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:12 +msgid "PDF Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:39 +msgid "Line &Un-Wrapping Factor:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:40 +msgid "No &Images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:17 +msgid "PDF Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:40 +msgid "&Paper Size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:41 +msgid "&Orientation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 +msgid "RB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +msgid "Choose the format to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +msgid "Cannot build regex using the GUI builder without a book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +msgid "No formats available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 +msgid "Open book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 +msgid "~" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:46 +msgid "Regex Builder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:47 +msgid "Preview" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:48 +msgid "Regex:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 +msgid "Convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 +msgid "Options specific to the input format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 +msgid "Dialog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 +msgid "&Input format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 +msgid "Use &saved conversion settings for individual books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 +msgid "" +"Structure\n" +"Detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:19 +msgid "" +"Fine tune the detection of chapter headings and other document structure." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:34 +msgid "Detect chapters at (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:35 +msgid "Insert page breaks before (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 +msgid "Header regular expression:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 +msgid "Footer regular expression:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 +msgid "Invalid regular expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 +msgid "Invalid regular expression: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:38 +msgid "Invalid XPath" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 +msgid "The XPath expression %s is invalid." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 +msgid "Chapter &mark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 +msgid "Remove first &image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 +msgid "Insert &metadata as page at start of book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 +msgid "&Preprocess input file to possibly improve structure detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 +msgid "Remove F&ooter" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 +msgid "Remove H&eader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 +msgid "" +"Table of\n" +"Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:18 +msgid "Control the creation/conversion of the Table of Contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:29 +msgid "Level &1 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:30 +msgid "Level &2 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:31 +msgid "Level &3 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:63 +msgid "Do not add &detected chapters to the Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:64 +msgid "Number of &links to add to Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:65 +msgid "Chapter &threshold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:66 +msgid "&Force use of auto-generated Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +msgid "TOC &Filter:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:12 +msgid "TXT Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:45 +msgid "Process using markdown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 +msgid "" +"

Markdown is a simple markup language for text files, that allows for " +"advanced formatting. To learn more visit markdown." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:47 +msgid "Do not insert Table of Contents into output text when using markdown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 +msgid "TXT Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 +msgid "&Line ending style:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 +msgid "&Maximum line length:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 +msgid "Force maximum line lenght" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:50 +msgid "TextLabel" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 +msgid "Use a wizard to help construct the XPath expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68 +msgid "Match HTML &tags with tag name:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69 +msgid "*" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 +msgid "a" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:71 +msgid "br" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 +msgid "div" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 +msgid "h1" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 +msgid "h2" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 +msgid "h3" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 +msgid "h4" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 +msgid "h5" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 +msgid "h6" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 +msgid "hr" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 +msgid "span" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 +msgid "Having the &attribute:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 +msgid "With &value:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 +msgid "(A regular expression)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 +msgid "" +"

For example, to match all h2 tags that have class=\"chapter\", set tag to " +"h2, attribute to class and value to " +"chapter.

Leaving attribute blank will match any attribute and " +"leaving value blank will match any value. Setting tag to * will match any " +"tag.

To learn more advanced usage of XPath see the XPath Tutorial." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +msgid "No details available." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 +msgid "Device no longer connected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 +msgid "Get device information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 +msgid "Get list of books on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 +msgid "Send metadata to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 +msgid "Upload %d books to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 +msgid "Delete books from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 +msgid "Download books from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 +msgid "View book on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 +msgid "and delete from library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +msgid "Set default send to device action" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 +msgid "Email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 +msgid "Send to main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 +msgid "Send to storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +msgid "Send to storage card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 +msgid "Send specific format to main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 +msgid "Send specific format to storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 +msgid "Send specific format to storage card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 +msgid "selected to send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 +msgid "Choose format to send to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 +msgid "No device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 +msgid "Cannot send: No device is connected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 +msgid "No card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 +msgid "Cannot send: Device has no storage card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 +msgid "E-book:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 +msgid "Attached, you will find the e-book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 +msgid "by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 +msgid "in the %s format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 +msgid "Sending email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 +msgid "No suitable formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 +msgid "Auto convert the following books before sending via email?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 +msgid "Failed to email books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 +msgid "Failed to email the following books:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 +msgid "Sent by email:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +msgid "News:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 +msgid "Attached is the" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 +msgid "Sent news to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 +msgid "Auto convert the following books before uploading to the device?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 +msgid "Sending news to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 +msgid "Sending books to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 +msgid "" +"Could not upload the following books to the device, as no suitable formats " +"were found. Convert the book(s) to a format supported by your device first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +msgid "No space on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +msgid "" +"

Cannot upload books to device there is no more free space available " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:75 +msgid "Select available formats and their order for this device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +msgid "Use sub directories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +msgid "Save &template:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 +msgid "Path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +msgid "&Previous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 +msgid "&Next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +msgid "Generate catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 +msgid "Choose Format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:34 +msgid "Set defaults for conversion of comics (CBR/CBZ files)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:49 +msgid "Set options for converting %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:92 +msgid "&Title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:93 +msgid "&Author(s):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:95 +msgid "&Profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:170 +msgid "%(plugin_type)s %(plugins)s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:171 +msgid "plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 +msgid "" +"\n" +"Customization: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "Conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "General" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "Interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 +msgid "Add/Save" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 +msgid "" +"Email\n" +"Delivery" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "Advanced" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "" +"Content\n" +"Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +msgid "Auto send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +msgid "Email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:221 +msgid "Formats to email. The first matching format will be sent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:222 +msgid "" +"If checked, downloaded news will be automatically mailed
to this email " +"address (provided it is in one of the listed formats)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:296 +msgid "new email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +msgid "Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +msgid "Failed to install command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +msgid "Command line tools installed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +msgid "Command line tools installed in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +msgid "" +"If you move calibre.app, you have to re-install the command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +msgid "No valid plugin path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +msgid "%s is not a valid plugin path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +msgid "Choose plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +msgid "Plugin cannot be disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +msgid "The plugin: %s cannot be disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +msgid "Plugin not customizable" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +msgid "Plugin: %s does not need customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +msgid "Customize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +msgid "Cannot remove builtin plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +msgid "Error log:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +msgid "Access log:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 +msgid "Failed to start content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 +msgid "Select location for books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +msgid "Invalid size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +msgid "The size %s is invalid. must be of the form widthxheight" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +msgid "Invalid database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +msgid "Invalid database location " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +msgid "
Must be a directory." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +msgid "Invalid database location.
Cannot write to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +msgid "Checking database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +msgid "Failed to check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +msgid "Some inconsistencies found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +msgid "" +"The following books had formats listed in the database that are not actually " +"available. The entries for the formats have been removed. You should check " +"them manually. This can happen if you manipulate the files in the library " +"folder directly." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:100 +msgid "TabWidget" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:101 +msgid "" +"Here you can control how calibre will read metadata from the files you add " +"to it. calibre can either read metadata from the contents of the file, or " +"from the filename." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:102 +msgid "Read metadata only from &file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:103 +msgid "" +"Swap the firstname and lastname of the author. This affects only metadata " +"read from file names." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:104 +msgid "&Swap author firstname and lastname" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:105 +msgid "&Configure metadata from file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +msgid "&Adding books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 +msgid "" +"Here you can control how calibre will save your books when you click the " +"Save to Disk button:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 +msgid "Save &cover separately" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 +msgid "Update &metadata in saved copies" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 +msgid "Save metadata in &OPF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 +msgid "Convert non-English characters to &English equivalents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 +msgid "Format &dates as:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 +msgid "File &formats to save:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:114 +msgid "Replace space with &underscores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 +msgid "Change paths to &lowercase" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 +msgid "&Saving books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 +msgid "" +"Here you can control how calibre will save your books when you click the " +"Send to Device button. This setting can be overriden for individual devices " +"by customizing the device interface plugins in Preferences->Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 +msgid "Sending to &device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 +msgid "Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +msgid "" +"&Location of ebooks (The ebooks are stored in folders sorted by author and " +"metadata is stored in the file metadata.db)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +msgid "Browse for the new database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +msgid "Show notification when &new version is available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +msgid "Download &social metadata (tags/ratings/etc.) by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +msgid "Default network &timeout:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +msgid "" +"Set the default timeout for network fetches (i.e. anytime we go out to the " +"internet to get information)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +msgid " seconds" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Choose &language (requires restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +msgid "Normal" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +msgid "High" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +msgid "Low" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +msgid "Job &priority:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +msgid "Preferred &output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +msgid "Preferred &input format order:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +msgid "Use &Roman numerals for series number" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +msgid "Enable system &tray icon (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +msgid "Show ¬ifications in system tray" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +msgid "Show cover &browser in a separate window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +msgid "Search as you type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +msgid "Automatically send downloaded &news to ebook reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +msgid "&Delete news from library when it is automatically sent to reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +msgid "&Number of covers to show in browse mode (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +msgid "Toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +msgid "Large" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +msgid "Medium" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +msgid "Small" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +msgid "&Button size in toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +msgid "Show &text in toolbar buttons" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +msgid "Select visible &columns in library view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +msgid "Use internal &viewer for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +msgid "Add an email address to which to send books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +msgid "&Add email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +msgid "Make &default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +msgid "&Remove email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +msgid "calibre can send your books to you (or your reader) by email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +msgid "&Maximum number of waiting worker processes (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +msgid "&Check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +msgid "&Install command line tools" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +msgid "Open calibre &configuration directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +msgid "" +"calibre contains a network server that allows you to access your book " +"collection using a browser from anywhere in the world. Any changes to the " +"settings will only take effect after a server restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +msgid "Server &port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +msgid "&Username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +msgid "&Password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +msgid "" +"If you leave the password blank, anyone will be able to access your book " +"collection using the web interface." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +msgid "" +"The maximum size (widthxheight) for displayed covers. Larger covers are " +"resized. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +msgid "Max. &cover size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 +msgid "&Show password" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +msgid "Max. &OPDS items per query:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +msgid "&Start Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +msgid "St&op Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +msgid "&Test Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +msgid "Run server &automatically on startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +msgid "View &server logs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 +msgid "" +"

Remember to leave calibre running as the server only runs as long as " +"calibre is running.\n" +"

Stanza should see your calibre collection automatically. If not, try " +"adding the URL http://myhostname:8080 as a new catalog in the Stanza reader " +"on your iPhone. Here myhostname should be the fully qualified hostname or " +"the IP address of the computer calibre is running on." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +msgid "" +"Here you can customize the behavior of Calibre by controlling what plugins " +"it uses." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +msgid "Enable/&Disable plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +msgid "&Customize plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +msgid "&Remove plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +msgid "Add new plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +msgid "Plugin &file:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +msgid "&Add" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +msgid "Getting debug information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:22 +msgid "Copy to &clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:24 +msgid "Debug device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:44 +msgid "Invalid template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:45 +msgid "The template %s is invalid:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:42 +msgid "Save &template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +msgid "" +"By adjusting the template below, you can control what folders the files are " +"saved in and what filenames they are given. You can use the / character to " +"indicate sub-folders. Available metadata variables are described below. If a " +"particular book does not have some metadata, the variable will be replaced " +"by the empty string." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +msgid "Available variables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 +msgid "Downloading social metadata, please wait..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 +msgid "Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 +msgid "&Show this warning again" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:41 +msgid "ERROR" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 +msgid "Author Sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60 +msgid "ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +msgid "Finding metadata..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +msgid "Could not find metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +msgid "The metadata download seems to have stalled. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +msgid "Warning" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +msgid "Could not fetch metadata from:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +msgid "No metadata found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +msgid "" +"No metadata found, try adjusting the title and author or the ISBN key." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +msgid "Fetch metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +msgid "" +"

calibre can find metadata for your books from two locations: Google " +"Books and isbndb.com.

To use isbndb.com you must sign up for a " +"free account and enter your access key " +"below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +msgid "&Access Key:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +msgid "Fetch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +msgid "Matches" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +msgid "" +"Select the book that most closely matches your copy from the list below" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +msgid "Download &social metadata (tags/rating/etc.) for the selected book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 +msgid "Details of job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:44 +msgid "Active Jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:45 +msgid "&Stop selected job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:46 +msgid "Show job &details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 +msgid "Stop &all jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +msgid "Edit Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 +msgid "Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +msgid "A&utomatically set author sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +msgid "Author s&ort: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +msgid "" +"Specify how the author(s) of this book should be sorted. For example Charles " +"Dickens should be sorted as Dickens, Charles." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +msgid "&Rating:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +msgid "Rating of this book. 0-5 stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +msgid " stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "Add ta&gs: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +msgid "Open Tag Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +msgid "&Remove tags:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +msgid "Comma separated list of tags to remove from the books. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +msgid "Remove &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +msgid "&Swap title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +msgid "Not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +msgid "Choose formats for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 +msgid "Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +msgid "No permission" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +msgid "You do not have permission to read the following files:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 +msgid "No format selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 +msgid "Could not read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 +msgid "Could not read metadata from %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 +msgid "Could not read cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 +msgid "Could not read cover from %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 +msgid "The cover in the %s format is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 +msgid "Abort the editing of all remaining books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +msgid "This ISBN number is valid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +msgid "This ISBN number is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +msgid "Downloading cover..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +msgid "Cannot fetch cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +msgid "Could not fetch cover.
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +msgid "The download timed out." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +msgid "Could not find cover for this book. Try specifying the ISBN first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +msgid "Bad cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +msgid "The cover is not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +msgid "There were errors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +msgid "There were errors downloading social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +msgid "Cannot fetch metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +msgid "You must specify at least one of ISBN, Title, Authors or Publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +msgid "Permission denied" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +msgid "Could not open %s. Is it being used by another program?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 +msgid "Edit Meta Information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 +msgid "Swap the author and title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +msgid "Author S&ort: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 +msgid "" +"Automatically create the author sort entry based on the current author entry" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +msgid "Remove unused series (Series that have no books)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +msgid "IS&BN:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +msgid "Publishe&d:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +msgid "dd MMM yyyy" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +msgid "&Date:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +msgid "&Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +msgid "&Fetch metadata from server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +msgid "Available Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 +msgid "Add a new format for this book to the database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 +msgid "Remove the selected formats for this book from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 +msgid "Set the cover for the book from the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 +msgid "Update metadata from the metadata in the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +msgid "Reset cover to default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +msgid "Download &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 +msgid "Password needed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:53 +msgid "Aborting..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:117 +msgid "Need username and password" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:118 +msgid "You must provide a username and/or password to use this news source." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169 +msgid "Created by: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176 +msgid "Last downloaded: never" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:191 +msgid "%d days, %d hours and %d minutes ago" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193 +msgid "Last downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190 +msgid "Schedule news download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216 +msgid "Add a custom news source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:278 +msgid "Recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:192 +msgid "Download all scheduled recipes at once" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 +msgid "Download &all scheduled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 +msgid "blurb" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 +msgid "&Schedule for download:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 +msgid "Every " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 +msgid "day" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 +msgid "Monday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 +msgid "Tuesday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 +msgid "Wednesday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +msgid "Thursday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +msgid "Friday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +msgid "Saturday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 +msgid "Sunday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 +msgid "at" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 +msgid "" +"Interval at which to download this recipe. A value of zero means that the " +"recipe will be downloaded every hour." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 +msgid " days" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 +msgid "&Account" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 +msgid "For the scheduling to work, you must leave calibre running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 +msgid "&Schedule" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +msgid "Add &title as tag" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +msgid "&Extra tags:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +msgid "&Advanced" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +msgid "&Download now" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +msgid "" +"Delete downloaded news older than the specified number of days. Set to zero " +"to disable." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 +msgid "Delete downloaded news older than " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36 +msgid "contains" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:37 +msgid "The text to search for. It is interpreted as a regular expression." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:38 +msgid "" +"

Negate this match. That is, only return results that do not match " +"this query." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:39 +msgid "Negate" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:88 +msgid "Advanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:89 +msgid "Find entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:90 +msgid "&All these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:91 +msgid "This exact &phrase:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:92 +msgid "&One or more of these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:93 +msgid "But dont show entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:94 +msgid "Any of these &unwanted words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:95 +msgid "" +"See the User Manual for more help" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +msgid "Choose formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 +msgid "Are your sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 +msgid "" +"The following tags are used by one or more books. Are you certain you want " +"to delete them?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:123 +msgid "Tag Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:124 +msgid "A&vailable tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:125 +msgid "" +"Delete tag from database. This will unapply the tag from all books and then " +"remove it from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:127 +msgid "Apply tag to current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 +msgid "A&pplied tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 +msgid "Unapply (remove) tag from current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 +msgid "&Add tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:133 +msgid "" +"If the tag you want is not in the available list, you can add it here. " +"Accepts a comma separated list of tags." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:134 +msgid "Add tag to available tags and apply it to current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:50 +msgid "Test email settings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 +msgid "Send test mail from %s to:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +msgid "&Test" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:127 +msgid "No recipe selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:132 +msgid "The attached file: %s is a recipe to download %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:133 +msgid "Recipe for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:255 +msgid "Switch to Advanced mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:164 +msgid "Switch to Basic mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:174 +msgid "Feed must have a title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:175 +msgid "The feed must have a title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:179 +msgid "Feed must have a URL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 +msgid "The feed %s must have a URL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 +msgid "Already exists" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:186 +msgid "This feed has already been added to the recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:227 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:286 +msgid "Invalid input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:228 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:287 +msgid "

Could not create recipe. Error:
%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:290 +msgid "Replace recipe?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:291 +msgid "A custom recipe named %s already exists. Do you want to replace it?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +msgid "Pick recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +msgid "Pick the recipe to customize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:277 +msgid "Choose a recipe file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:248 +msgid "Add custom news source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:249 +msgid "Available user recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:250 +msgid "Add/Update &recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:251 +msgid "&Remove recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 +msgid "&Share recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +msgid "Customize &builtin recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +msgid "&Load recipe from file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +msgid "" +"\n" +"

Create a basic news " +"recipe, by adding RSS feeds to it.
For most feeds, you will have to " +"use the \"Advanced mode\" to further customize the fetch " +"process.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 +msgid "Recipe &title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 +msgid "&Oldest article:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:262 +msgid "The oldest article to download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:264 +msgid "&Max. number of articles per feed:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 +msgid "Maximum number of articles to download per feed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266 +msgid "Feeds in recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:268 +msgid "Remove feed from recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:274 +msgid "Add feed to recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:272 +msgid "&Feed title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273 +msgid "Feed &URL:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:275 +msgid "&Add feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:276 +msgid "" +"For help with writing advanced news recipes, please visit User Recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 +msgid "Recipe source code (python)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +msgid "" +"\n" +"\n" +"

Set a regular expression " +"pattern to use when trying to guess ebook metadata from filenames.

\n" +"

A reference on the syntax " +"of regular expressions is available.

\n" +"

Use the Test functionality below to test your regular " +"expression on a few sample filenames. The group names for the various " +"metadata entries are documented in tooltips.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +msgid "Regular &expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 +msgid "File &name:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +msgid "Test" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +msgid "Title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 +msgid "Regular expression (?P<title>)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 +msgid "No match" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +msgid "Authors:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 +msgid "Series:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 +msgid "Series index:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 +msgid "ISBN:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 +msgid "Job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 +msgid "Status" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 +msgid "Progress" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 +msgid "Running time" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:68 +msgid "There are %d running jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:94 +msgid "Unknown job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +msgid "There are %d waiting jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 +msgid "Cannot kill job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:212 +msgid "Cannot kill jobs that communicate with the device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:215 +msgid "Job has already run" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:243 +msgid "Unavailable" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:254 +msgid " - Jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +msgid "Size (MB)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +msgid "Date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +msgid "Rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 +msgid "None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +msgid "Book %s of %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +msgid "Not allowed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +msgid "" +"Dropping onto a device is not supported. First add the book to the calibre " +"library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +msgid "Format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +msgid "Double click to edit me

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:47 +msgid "Configure Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:48 +msgid "Use white background" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:49 +msgid "Hyphenate" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:50 +msgid "Changes will only take effect after a restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:70 +msgid " - LRF Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +msgid "No matches for the search phrase %s were found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +msgid "No matches found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:128 +msgid "LRF Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:129 +msgid "Parsing LRF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:130 +msgid "LRF Viewer toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 +msgid "Next Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 +msgid "Previous Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:182 +msgid "Back" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:183 +msgid "Forward" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:135 +msgid "Next match" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 +msgid "Open ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137 +msgid "Configure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +msgid "Use the library located at the specified path." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +msgid "Start minimized to system tray." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +msgid "Log debugging information to console" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +msgid "Do not check for updates" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +msgid "If you are sure it is not running" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +msgid "Cannot Start " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +msgid "%s is already running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +msgid "may be running in the system tray, in the" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +msgid "upper right region of the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +msgid "lower right region of the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +msgid "try rebooting your computer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +msgid "try deleting the file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:331 +msgid "calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 +msgid "Advanced search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 +msgid "Alt+S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 +msgid "&Search:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 +msgid "" +"

Search the list of books by title, author, publisher, tags, comments, " +"etc.

Words separated by spaces are ANDed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 +msgid "Reset Quick Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 +msgid "Sort by &popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +msgid "Match any" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 +msgid "Match all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 +msgid "Add books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 +msgid "A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 +msgid "Remove books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 +msgid "Del" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 +msgid "Edit meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 +msgid "E" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 +msgid "Send to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 +msgid "Save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 +msgid "S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 +msgid "Fetch news" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 +msgid "F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 +msgid "Convert E-books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 +msgid "C" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 +msgid "View" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 +msgid "V" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 +msgid "Open containing folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 +msgid "Show book details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 +msgid "Books by same author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 +msgid "Books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 +msgid "Books by this publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 +msgid "Books with the same tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 +msgid "Configure calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 +msgid "Ctrl+P" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:20 +msgid "" +"Redirect console output to a dialog window (both stdout and stderr). Useful " +"on windows where GUI apps do not have a output streams." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:59 +msgid "&Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:60 +msgid "&Quit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:85 +msgid "ERROR: Unhandled exception" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +msgid "Book has neither title nor ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +msgid "No matches found for this book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71 +msgid "Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 +msgid "Press a key..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 +msgid "Already assigned" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 +msgid "already assigned to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid " or " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 +msgid "&Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 +msgid "Customize shortcuts for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid "Keys" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 +msgid "Double click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:67 +msgid "Frame" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 +msgid "&Custom" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 +msgid "&Shortcut:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 +msgid "Click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 +msgid "Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 +msgid "&Alternate shortcut:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 +msgid "Jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:158 +msgid "Click to see list of active jobs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 +msgid "Click to browse books by their covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 +msgid "Click to turn off Cover Browsing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 +msgid "" +"

Browsing books by their covers is disabled.
Import of pictureflow " +"module failed:
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:209 +msgid "Click to browse books by tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Publishers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:182 +msgid "Convert book %d of %d (%s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:202 +msgid "Could not convert some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:203 +msgid "" +"Could not convert %d of %d books, because no suitable source format was " +"found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:120 +msgid "Queueing books for bulk conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:181 +msgid "Queueing " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:237 +msgid "Fetch news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +msgid "Convert existing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +msgid "" +"The following books have already been converted to %s format. Do you wish to " +"reconvert them?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:63 +msgid "Save single format to disk..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:142 +msgid "Search (For Advanced Search click the button to the left)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:159 +msgid "Error communicating with device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:176 +msgid "&Restore" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:178 +msgid "&Donate to support calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:183 +msgid "&Restart" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:222 +msgid "

For help see the: User Manual
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:224 +msgid "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:247 +msgid "Edit metadata individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:249 +msgid "Edit metadata in bulk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:251 +msgid "Download metadata and covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:252 +msgid "Download only metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:253 +msgid "Download only covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:254 +msgid "Download only social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:257 +msgid "Add books from a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:258 +msgid "" +"Add books from directories, including sub-directories (One book per " +"directory, assumes every ebook file is the same book in a different format)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:261 +msgid "" +"Add books from directories, including sub directories (Multiple books per " +"directory, assumes every ebook file is a different book)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:264 +msgid "Add Empty book. (Book entry with no formats)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:305 +msgid "Save to disk in a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +msgid "Save only %s format to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:315 +msgid "View specific format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:319 +msgid "Remove selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:321 +msgid "Remove files of a specific format from selected books.." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:323 +msgid "Remove all formats from selected books, except..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:325 +msgid "Remove covers from selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 +msgid "Convert individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +msgid "Bulk convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 +msgid "Run welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 +msgid "Similar books..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 +msgid "Bad database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 +msgid "Calibre Library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +msgid "Choose a location for your ebook library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 +msgid "Browse by covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 +msgid "Device: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 +msgid " detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 +msgid "Connected " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 +msgid "Device database corrupted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 +msgid "" +"\n" +"

The database of books on the reader is corrupted. Try the " +"following:\n" +"

    \n" +"
  1. Unplug the reader. Wait for it to finish regenerating " +"the database (i.e. wait till it is ready to be used). Plug it back in. Now " +"it should work with %(app)s. If not try the next step.
  2. \n" +"
  3. Quit %(app)s. Find the file media.xml in the reader's " +"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " +"file. Re-connect it and start %(app)s.
  4. \n" +"
\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 +msgid "How many empty books?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 +msgid "How many empty books should be added?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 +msgid "Uploading books to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 +msgid "EPUB Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 +msgid "LRF Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 +msgid "HTML Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 +msgid "LIT Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 +msgid "MOBI Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 +msgid "Text books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 +msgid "PDF Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 +msgid "Comics" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 +msgid "Archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 +msgid "Supported books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +msgid "Failed to read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +msgid "Failed to read metadata from the following" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +msgid "Cannot delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +msgid "No book selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +msgid "Choose formats to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +msgid "Choose formats not to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +msgid "" +"The selected books will be permanently deleted and the files removed " +"from your computer. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +msgid "Deleting books from device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +msgid "Cannot download metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +msgid "No books selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +msgid "social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +msgid "covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +msgid "metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +msgid "Downloading %s for %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +msgid "Failed to download some metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +msgid "Failed to download metadata for the following:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +msgid "Failed to download metadata:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +msgid "Cannot edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +msgid "Cannot save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +msgid "Choose destination directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +msgid "Error while saving" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +msgid "There was an error while saving." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +msgid "Could not save some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +msgid "Click the show details button to see which ones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +msgid "Fetching news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +msgid " fetched." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +msgid "Cannot convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +msgid "Starting conversion of %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +msgid "Cannot view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +msgid "Cannot open folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +msgid "Multiple Books Selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +msgid "" +"You are attempting to open %d books. Opening too many books at once can be " +"slow and have a negative effect on the responsiveness of your computer. Once " +"started the process cannot be stopped until complete. Do you wish to " +"continue?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +msgid "%s has no available formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +msgid "Cannot configure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +msgid "Cannot configure while there are running jobs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +msgid "No detailed info available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +msgid "No detailed information is available for books on the device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +msgid "Error talking to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +msgid "" +"There was a temporary error talking to the device. Please unplug and " +"reconnect the device and or reboot." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +msgid "Conversion Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +msgid "" +"

Could not convert: %s

It is a DRMed book. You must " +"first remove the DRM using third party tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +msgid "Recipe Disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +msgid "Failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +msgid "Invalid library location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +msgid "Could not access %s. Using %s as the library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +msgid "" +"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." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +msgid "There are active jobs. Are you sure you want to quit?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +msgid "" +" is communicating with the device!
\n" +" Quitting may cause corruption on the device.
\n" +" Are you sure you want to quit?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +msgid "WARNING: Active jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +msgid "" +"will keep running in the system tray. To close it, choose Quit in the " +"context menu of the system tray." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +msgid "" +"Latest version: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +msgid "Update available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +msgid "" +"%s has been updated to version %s. See the new features. Visit the download page?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +msgid "Edit bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +msgid "New title for bookmark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:52 +msgid "Export Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:54 +msgid "Saved Bookmarks (*.pickle)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +msgid "Import Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +msgid "Pickled Bookmarks (*.pickle)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 +msgid "Name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 +msgid "Bookmark Manager" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 +msgid "Actions" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 +msgid "Edit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 +msgid "Delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 +msgid "Reset" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 +msgid "Export" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 +msgid "Import" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +msgid "Configure Ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +msgid "&Font options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +msgid "Se&rif family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 +msgid "&Sans family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +msgid "&Monospace family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 +msgid "&Default font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 +msgid " px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +msgid "Monospace &font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +msgid "S&tandard font:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +msgid "Serif" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +msgid "Sans-serif" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +msgid "Monospace" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +msgid "Remember last used &window size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +msgid "Maximum &view width:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +msgid "H&yphenate (break line in the middle of large words)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +msgid "" +"The default language to use for hyphenation rules. If the book does not " +"specify a language, this will be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 +msgid "Default &language for hyphenation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 +msgid "&User stylesheet" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 +msgid "&General" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +msgid "Double click to change a keyboard shortcut" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 +msgid "&Keyboard shortcuts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 +msgid "No results found for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:33 +msgid "Options to customize the ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +msgid "Remember last used window size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 +msgid "" +"Set the user CSS stylesheet. This can be used to customize the look of all " +"books." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 +msgid "Maximum width of the viewer window, in pixels." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 +msgid "Hyphenate text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +msgid "Default language for hyphenation rules" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +msgid "Font options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +msgid "The serif font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +msgid "The sans-serif font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +msgid "The monospaced font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +msgid "The standard font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +msgid "The monospaced font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +msgid "The standard font type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +msgid "&Lookup in dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 +msgid "Scroll to the next page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:15 +msgid "Scroll to the previous page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:18 +msgid "Scroll to the next section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:21 +msgid "Scroll to the previous section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:24 +msgid "Scroll to the bottom of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:27 +msgid "Scroll to the top of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:30 +msgid "Scroll to the end of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:33 +msgid "Scroll to the start of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:36 +msgid "Scroll down" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:39 +msgid "Scroll up" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:42 +msgid "Scroll left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:45 +msgid "Scroll right" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 +msgid "Book format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 +msgid "Go to..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +msgid "Position in book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +msgid "Go to a reference. To get reference numbers, use the reference mode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +msgid "Search for text in book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +msgid "Print Preview" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +msgid "Connecting to dict.org to lookup: %s…" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +msgid "Choose ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +msgid "Ebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +msgid "Add bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +msgid "Enter title for bookmark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +msgid "No matches found for: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +msgid "Loading flow..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +msgid "Laying out %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +msgid "Manage Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +msgid "Loading ebook..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +msgid "DRM Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +msgid "

This book is protected by DRM" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +msgid "Could not open ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +msgid "Options to control the ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +msgid "" +"If specified, viewer window will try to come to the front when started." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +msgid "Print javascript alert and console messages to the console" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +msgid "" +"%prog [options] file\n" +"\n" +"View an ebook.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:178 +msgid "Ebook Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 +msgid "Close dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 +msgid "toolBar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 +msgid "Next page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 +msgid "Previous page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +msgid "Font size larger" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 +msgid "Font size smaller" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 +msgid "Find next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 +msgid "Copy to clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 +msgid "Reference Mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 +msgid "Bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 +msgid "Toggle full screen" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 +msgid "Print" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 +msgid "Print eBook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 +msgid "" +"Library\n" +"%d\n" +"books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 +msgid "" +"Reader\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 +msgid "" +"Card A\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 +msgid "" +"Card B\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 +msgid "Click to see the books available on your computer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 +msgid "Click to see the books in the main memory of your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 +msgid "Click to see the books on storage card A in your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 +msgid "Click to see the books on storage card B in your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 +msgid "Change Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 +msgid "Upper Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 +msgid "Lower Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 +msgid "Swap Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 +msgid "Title Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330 +msgid "" +"If you use the WordPlayer e-book app on your Android phone, you can access " +"your calibre book collection directly on the device. To do this you have to " +"turn on the content server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:334 +msgid "" +"Remember to leave calibre running as the server only runs as long as calibre " +"is running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:336 +msgid "" +"You have to add the URL http://myhostname:8080 as your calibre library in " +"WordPlayer. Here myhostname should be the fully qualified hostname or the IP " +"address of the computer calibre is running on." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:413 +msgid "Moving library..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:430 +msgid "Failed to move library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 +msgid "Invalid database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +msgid "" +"

An invalid library already exists at %s, delete it before trying to move " +"the existing library.
Error: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:496 +msgid "Could not move library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 +msgid "welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:42 +msgid "Welcome to calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:43 +msgid "The one stop solution to all your e-book needs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:51 +msgid "" +"Choose your book reader. This will set the conversion options to produce " +"books optimized for your device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:52 +msgid "&Manufacturers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:53 +msgid "&Devices" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 +msgid "WizardPage" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +msgid "" +"

Congratulations!

You have successfully setup calibre. Press the %s " +"button to apply your settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 +msgid "" +"

Demo videos

Videos demonstrating the various features of calibre are " +"available online." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 +msgid "" +"

User Manual

A User Manual is also available online." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 +msgid "" +"

calibre can automatically send books by email to your Kindle. To do that " +"you have to setup email delivery below. The easiest way is to setup a free " +"gmail account and click the Use gmail " +"button below. You will also have to register your gmail address in your " +"Amazon account." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:45 +msgid "&Kindle email:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:52 +msgid "Choose your &language:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:53 +msgid "" +"Choose a location for your books. When you add books to calibre, they will " +"be copied here:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 +msgid "&Change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +msgid "" +"If you have an existing calibre library, it will be copied to the new " +"location. If a calibre library already exists at the new location, calibre " +"will switch to using it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +msgid "Using: %s:%s@%s:%s and %s encryption" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +msgid "Sending..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +msgid "Mail successfully sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:114 +msgid "Finish gmail setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:115 +msgid "" +"Dont forget to enter your gmail username and password. You can sign up for a " +"free gmail account at http://gmail.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:130 +msgid "Bad configuration" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 +msgid "You must set the From email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:131 +msgid "You must set the username and password for the mail server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:108 +msgid "Send email &from:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 +msgid "" +"

This is what will be present in the From: field of emails sent by " +"calibre.
Set it to your email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:110 +msgid "" +"

A mail server is useful if the service you are sending mail to only " +"accepts email from well know mail services." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:111 +msgid "Mail &Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +msgid "calibre can optionally use a server to send mail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +msgid "&Hostname:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +msgid "The hostname of your mail server. For e.g. smtp.gmail.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +msgid "&Port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +msgid "" +"The port your mail server listens for connections on. The default is 25" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +msgid "Your username on the mail server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +msgid "Your password on the mail server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +msgid "&Show" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +msgid "&Encryption:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +msgid "" +"Use TLS encryption when connecting to the mail server. This is the most " +"common." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +msgid "&TLS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +msgid "Use SSL encryption when connecting to the mail server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +msgid "&SSL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +msgid "Use Gmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +msgid "&Test email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 +msgid "" +"

If you use the Stanza e-" +"book app on your iPhone/iTouch, you can access your calibre book collection " +"directly on the device. To do this you have to turn on the calibre content " +"server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 +msgid "Turn on the &content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:8 +msgid "Settings to control the calibre content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:12 +msgid "The port on which to listen. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:14 +msgid "The server timeout in seconds. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:16 +msgid "The max number of worker threads to use. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:18 +msgid "Set a password to restrict access. By default access is unrestricted." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:20 +msgid "Username for access. By default, it is: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:24 +msgid "The maximum size for displayed covers. Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:26 +msgid "" +"The maximum number of matches to return per OPDS query. This affects Stanza, " +"WordPlayer, etc. integration." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:121 +msgid "" +"Path to the calibre library. Default is to use the path stored in the " +"settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:200 +msgid "" +"%prog list [options]\n" +"\n" +"List the books available in the calibre database.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:208 +msgid "" +"The fields to display when listing books in the database. Should be a comma " +"separated list of fields.\n" +"Available fields: %s\n" +"Default: %%default. The special field \"all\" can be used to select all " +"fields. Only has effect in the text output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:210 +msgid "" +"The field by which to sort the results.\n" +"Available fields: %s\n" +"Default: %%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:212 +msgid "Sort results in ascending order" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:214 +msgid "" +"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 " +"to do no filtering." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:216 +msgid "" +"The maximum width of a single line in the output. Defaults to detecting " +"screen size." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 +msgid "The string used to separate fields. Default is a space." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 +msgid "" +"The prefix for all file paths. Default is the absolute path to the library " +"folder." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:221 +msgid "" +"The format in which to output the data. Available choices: %s. Defaults is " +"text." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:234 +msgid "Invalid fields. Available fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:241 +msgid "Invalid sort field. Available fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:312 +msgid "" +"The following books were not added as they already exist in the database " +"(see --duplicates option):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:335 +msgid "" +"%prog add [options] file1 file2 file3 ...\n" +"\n" +"Add the specified files as books to the database. You can also specify " +"directories, see\n" +"the directory related options below.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:344 +msgid "" +"Assume that each directory has only a single logical book and that all files " +"in it are different e-book formats of that book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:346 +msgid "Process directories recursively" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:348 +msgid "" +"Add books to database even if they already exist. Comparison is done based " +"on book titles." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:358 +msgid "You must specify at least one file to add" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:374 +msgid "" +"%prog remove ids\n" +"\n" +"Remove the books identified by ids from the database. ids should be a comma " +"separated list of id numbers (you can get id numbers by using the list " +"command). For example, 23,34,57-85\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:389 +msgid "You must specify at least one book to remove" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:408 +msgid "" +"%prog add_format [options] id ebook_file\n" +"\n" +"Add the ebook in ebook_file to the available formats for the logical book " +"identified by id. You can get id by using the list command. If the format " +"already exists, it is replaced.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:423 +msgid "You must specify an id and an ebook file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:428 +msgid "ebook file must have an extension" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:436 +msgid "" +"\n" +"%prog remove_format [options] id fmt\n" +"\n" +"Remove the format fmt from the logical book identified by id. You can get id " +"by using the list command. fmt should be a file extension like LRF or TXT or " +"EPUB. If the logical book does not have fmt available, do nothing.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:453 +msgid "You must specify an id and a format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:471 +msgid "" +"\n" +"%prog show_metadata [options] id\n" +"\n" +"Show the metadata stored in the calibre database for the book identified by " +"id.\n" +"id is an id number from the list command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:479 +msgid "Print metadata in OPF form (XML)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:488 +msgid "You must specify an id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:501 +msgid "" +"\n" +"%prog set_metadata [options] id /path/to/metadata.opf\n" +"\n" +"Set the metadata stored in the calibre database for the book identified by " +"id\n" +"from the OPF file metadata.opf. id is an id number from the list command. " +"You\n" +"can get a quick feel for the OPF format by using the --as-opf switch to the\n" +"show_metadata command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:517 +msgid "You must specify an id and a metadata file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:537 +msgid "" +"%prog export [options] ids\n" +"\n" +"Export the books specified by ids (a comma separated list) to the " +"filesystem.\n" +"The export operation saves all formats of the book, its cover and metadata " +"(in\n" +"an opf file). You can get id numbers from the list command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:545 +msgid "Export all books in database, ignoring the list of ids." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:547 +msgid "Export books to the specified directory. Default is" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:549 +msgid "Export all books into a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:556 +msgid "Specifying this switch will turn this behavior off." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:579 +msgid "You must specify some ids or the %s option" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 +msgid "Show detailed output information. Useful for debugging" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +msgid "" +"%%prog command [options] [arguments]\n" +"\n" +"%%prog is the command line interface to the calibre books database.\n" +"\n" +"command is one of:\n" +" %s\n" +"\n" +"For help on an individual command: %%prog command --help\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +msgid "

Migrating old database to ebook library in %s

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +msgid "Copying %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +msgid "Compacting database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +msgid "Checking SQL integrity..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +msgid "Checking for missing files." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +msgid "Checked id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 +msgid "The title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 +msgid "The authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 +msgid "The tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 +msgid "The series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 +msgid "The series number. To get leading zeros use {series_index:0>3s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 +msgid "The rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 +msgid "The ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +msgid "The publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +msgid "The date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 +msgid "The calibre internal id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 +msgid "Options to control saving to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 +msgid "" +"Normally, calibre will update the metadata in the saved files from what is " +"in the calibre library. Makes saving to disk slower." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 +msgid "" +"Normally, calibre will write the metadata into a separate OPF file along " +"with the actual e-book files." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 +msgid "" +"Normally, calibre will save the cover in a separate file along with the " +"actual e-book file(s)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 +msgid "" +"Comma separated list of formats to save for each book. By default all " +"available books are saved." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 +msgid "" +"The template to control the filename and directory structure of the saved " +"files. Default is \"%s\" which will save books into a per-author " +"subdirectory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 +msgid "" +"The template to control the filename and directory structure of files sent " +"to the device. Default is \"%s\" which will save books into a per-author " +"directory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 +msgid "" +"Normally, calibre will convert all non English characters into English " +"equivalents for the file names. WARNING: If you turn this off, you may " +"experience errors when saving, depending on how well the filesystem you are " +"saving to supports unicode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 +msgid "" +"The format in which to display dates. %d - day, %b - month, %Y - year. " +"Default is: %b, %Y" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 +msgid "Convert paths to lowercase." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 +msgid "Replace whitespace with underscores." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 +msgid "Requested formats not available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:378 +msgid "Password to access your calibre library. Username is " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 +msgid "" +"[options]\n" +"\n" +"Start the calibre content server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 +msgid "Path to the library folder to serve with the content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 +msgid "%sUsage%s: %s\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 +msgid "Created by " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +msgid "" +"Whenever you pass arguments to %prog that have spaces in them, enclose the " +"arguments in quotation marks." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 +msgid "Path to the database in which books are stored" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 +msgid "Pattern to guess metadata from filenames" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 +msgid "Access key for isbndb.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 +msgid "Default timeout for network operations (seconds)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 +msgid "Path to directory in which your library of books is stored" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 +msgid "The language in which to display the user interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 +msgid "The default output format for ebook conversions." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 +msgid "Ordered list of formats to prefer for input." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 +msgid "Read metadata from files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 +msgid "The priority of worker processes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 +msgid "Swap author first and last names when reading metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 +msgid "Waiting..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:51 +msgid "Stopped" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +msgid "Finished" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +msgid "Working..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:93 +msgid "Brazilian Portuguese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 +msgid "English (UK)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 +msgid "Simplified Chinese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 +msgid "Chinese (HK)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 +msgid "Traditional Chinese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 +msgid "English" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +msgid "English (Australia)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 +msgid "English (New Zealand)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 +msgid "English (Canada)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 +msgid "English (India)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +msgid "English (Thailand)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +msgid "English (Cyprus)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +msgid "English (Pakistan)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +msgid "English (Singapore)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +msgid "English (Yemen)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 +msgid "Dutch (BE)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 +msgid "URL must have the scheme sftp" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:57 +msgid "host must be of the form user@hostname" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:68 +msgid "Failed to negotiate SSH session: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71 +msgid "Failed to authenticate with server: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +msgid "Control email delivery" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:103 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:125 +msgid "Unknown feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:143 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:166 +msgid "Untitled article" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 +msgid "Download periodical content from the internet" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 +msgid "" +"Useful for recipe development. Forces max_articles_per_feed to 2 and " +"downloads at most 2 feeds." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 +msgid "Username for sites that require a login to access content." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:42 +msgid "Password for sites that require a login to access content." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:46 +msgid "" +"Do not download latest version of builtin recipes from the calibre server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 +msgid "Unknown News Source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +msgid "The \"%s\" recipe needs a username and password." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +msgid "Download finished" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +msgid "Failed to download the following articles:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +msgid "Failed to download parts of the following articles:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +msgid " from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +msgid "\tFailed links:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +msgid "Could not fetch article. Run with -vv to see the reason" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +msgid "Fetching feeds..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +msgid "Got feeds from index page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +msgid "Trying to download cover..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +msgid "Starting download [%d thread(s)]..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +msgid "Feeds downloaded to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +msgid "Could not download cover: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +msgid "Downloading cover from %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +msgid "Untitled Article" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +msgid "Article downloaded: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +msgid "Article download failed: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +msgid "Fetching feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +msgid "You" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:181 +msgid "Scheduled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:182 +msgid "Custom" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 +msgid "" +"%prog URL\n" +"\n" +"Where URL is for example http://google.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 +msgid "Base directory into which URL is saved. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 +msgid "" +"Timeout in seconds to wait for a response from the server. Default: %default " +"s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 +msgid "" +"Maximum number of levels to recurse i.e. depth of links to follow. Default " +"%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +msgid "" +"The maximum number of files to download. This only applies to files from tags. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +msgid "" +"Minimum interval in seconds between consecutive fetches. Default is %default " +"s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +msgid "" +"The character encoding for the websites you are trying to download. The " +"default is to try and guess the encoding." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +msgid "" +"Only links that match this regular expression will be followed. This option " +"can be specified multiple times, in which case as long as a link matches any " +"one regexp, it will be followed. By default all links are followed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +msgid "" +"Any link that matches this regular expression will be ignored. This option " +"can be specified multiple times, in which case as long as any regexp matches " +"a link, it will be ignored.By default, no links are ignored. If both --" +"filter-regexp and --match-regexp are specified, then --filter-regexp is " +"applied first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 +msgid "Do not download CSS stylesheets." +msgstr "" diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index 0f4361a2bf..7286a7301b 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: calibre 0.6.36\n" -"POT-Creation-Date: 2010-01-25 10:46+MST\n" -"PO-Revision-Date: 2010-01-25 10:46+MST\n" +"Project-Id-Version: calibre 0.6.40\n" +"POT-Creation-Date: 2010-02-12 15:13+MST\n" +"PO-Revision-Date: 2010-02-12 15:13+MST\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -28,7 +28,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -36,19 +36,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:224 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -63,18 +63,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:909 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:914 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:980 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -97,10 +97,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -111,23 +111,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:952 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1078 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:744 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:756 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1185 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1222 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1600 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1602 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1718 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -160,59 +160,59 @@ msgstr "" msgid "Catalog generator" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 msgid "Follow all local links in an HTML file and create a ZIP file containing all linked files. This plugin is run every time you add an HTML file to the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:50 msgid "Character encoding for the input HTML files. Common choices include: cp1252, latin1, iso-8859-1 and utf-8." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:57 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 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:88 msgid "Extract cover from comic files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:108 -#: /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:140 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:151 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:161 -#: /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:191 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:201 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:212 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:223 -#: /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:267 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:277 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:287 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:109 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:121 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:131 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:141 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:152 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:162 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:172 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:182 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:192 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:202 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:213 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:224 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:236 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:257 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:268 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:278 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:288 msgid "Read metadata from %s files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:247 msgid "Read metadata from ebooks in RAR archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:299 msgid "Read metadata from ebooks in ZIP archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:319 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:329 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:351 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:362 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:310 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:330 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:352 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:363 msgid "Set metadata in %s files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:341 msgid "Set metadata from %s files" msgstr "" @@ -452,6 +452,10 @@ msgstr "" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "" @@ -584,12 +588,12 @@ msgid "There is insufficient free space on the storage card" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1109 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1113 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1500 msgid "News" msgstr "" @@ -704,8 +708,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "" @@ -1313,79 +1317,79 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1144 msgid "Title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1145 msgid "Author(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1088 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1148 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1087 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "" @@ -1393,6 +1397,10 @@ msgstr "" msgid "EDITORIAL REVIEW" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:21 +msgid "Extract common e-book formats from archives (zip/rar) files. Also try to autodetect if they are actually cbz/cbr files." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:19 msgid "options" msgstr "" @@ -1557,7 +1565,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Cover" msgstr "" @@ -1582,74 +1590,74 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1362 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1363 msgid "Main Text" msgstr "" @@ -1920,7 +1928,9 @@ msgid "Specify the character encoding of the output document. The default is cp1 msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 -msgid "This RTF file has a feature calibre does not support. Convert it to HTML first and then try it." +msgid "" +"This RTF file has a feature calibre does not support. Convert it to HTML first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -1955,177 +1965,182 @@ msgstr "" msgid "Force splitting on the max-line-length value when no space is present. Also allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "Show the cover flow in a separate window instead of in the main calibre window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "The add books process seems to have hung. Try restarting calibre and adding the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "Books with the same title as the following already exist in the database. Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "" @@ -2140,7 +2155,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2156,7 +2171,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2165,7 +2180,7 @@ msgid "output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2175,8 +2190,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 @@ -2205,32 +2220,55 @@ msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1464 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1478 msgid "Catalog" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "" +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no Genre Section" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + #: #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" @@ -2352,12 +2390,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2458,10 +2496,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:126 msgid " pt" msgstr "" @@ -2672,7 +2710,7 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "" @@ -2686,7 +2724,7 @@ msgid "Change the author(s) of this book. Multiple authors should be separated b msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "" @@ -2697,21 +2735,21 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "Tags categorize the book. This is particularly useful while searching.

They can be any words or phrases, separated by commas." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -2722,63 +2760,75 @@ msgstr "" msgid "Book " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 msgid "&Output profile:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:116 msgid "Profile description" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 msgid "&Input profile:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:118 msgid "Margins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 msgid "&Left:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 msgid "&Top:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:123 msgid "&Right:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:125 msgid "&Bottom:" msgstr "" @@ -2833,7 +2883,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1645 msgid "Choose the format to view" msgstr "" @@ -3122,7 +3172,7 @@ msgid "

For example, to match all h2 tags that have class=\"chapter\", set tag msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -3336,8 +3386,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1083 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "" @@ -3347,7 +3397,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -3370,7 +3420,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -3488,126 +3538,126 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1249 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:660 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "The following books had formats listed in the database that are not actually available. The entries for the formats have been removed. You should check them manually. This can happen if you manipulate the files in the library folder directly." msgstr "" @@ -3687,272 +3737,276 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "&Location of ebooks (The ebooks are stored in folders sorted by author and metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 -msgid "Default network &timeout:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 -msgid "Set the default timeout for network fetches (i.e. anytime we go out to the internet to get information)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 -msgid " seconds" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 -msgid "Choose &language (requires restart):" +msgid "&Overwrite author and title by default when fetching metadata" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 -msgid "Normal" +msgid "Default network &timeout:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 -msgid "High" +msgid "Set the default timeout for network fetches (i.e. anytime we go out to the internet to get information)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 -msgid "Low" +msgid " seconds" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 -msgid "Job &priority:" +msgid "Choose &language (requires restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 -msgid "Preferred &output format:" +msgid "Normal" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 -msgid "Preferred &input format order:" +msgid "High" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +msgid "Low" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +msgid "Job &priority:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 -msgid "Use &Roman numerals for series number" +msgid "Preferred &output format:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 -msgid "Enable system &tray icon (needs restart)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 -msgid "Show ¬ifications in system tray" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 -msgid "Show cover &browser in a separate window (needs restart)" +msgid "Preferred &input format order:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 -msgid "Search as you type" +msgid "Use &Roman numerals for series number" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 -msgid "Automatically send downloaded &news to ebook reader" +msgid "Enable system &tray icon (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 -msgid "&Delete news from library when it is automatically sent to reader" +msgid "Show ¬ifications in system tray" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 -msgid "&Number of covers to show in browse mode (needs restart):" +msgid "Show cover &browser in a separate window (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 -msgid "Toolbar" +msgid "Search as you type" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 -msgid "Large" +msgid "Automatically send downloaded &news to ebook reader" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 -msgid "Medium" +msgid "&Delete news from library when it is automatically sent to reader" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 -msgid "Small" +msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 -msgid "&Button size in toolbar" +msgid "Toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 -msgid "Show &text in toolbar buttons" +msgid "Large" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -msgid "Select visible &columns in library view" +msgid "Medium" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +msgid "Small" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +msgid "&Button size in toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 -msgid "Use internal &viewer for:" +msgid "Show &text in toolbar buttons" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 -msgid "Add an email address to which to send books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 -msgid "&Add email" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 -msgid "Make &default" +msgid "Select visible &columns in library view" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 -msgid "&Remove email" +msgid "Use internal &viewer for:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 -msgid "calibre can send your books to you (or your reader) by email" +msgid "Add an email address to which to send books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 -msgid "&Maximum number of waiting worker processes (needs restart):" +msgid "&Add email" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 -msgid "&Check database integrity" +msgid "Make &default" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 -msgid "&Install command line tools" +msgid "&Remove email" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 -msgid "Open calibre &configuration directory" +msgid "calibre can send your books to you (or your reader) by email" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 -msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 -msgid "Debug &device detection" +msgid "&Check database integrity" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 -msgid "calibre contains a network server that allows you to access your book collection using a browser from anywhere in the world. Any changes to the settings will only take effect after a server restart." +msgid "&Install command line tools" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 -msgid "Server &port:" +msgid "Open calibre &configuration directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +msgid "calibre contains a network server that allows you to access your book collection using a browser from anywhere in the world. Any changes to the settings will only take effect after a server restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +msgid "Server &port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "If you leave the password blank, anyone will be able to access your book collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "The maximum size (widthxheight) for displayed covers. Larger covers are resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as calibre is running.\n" "

Stanza should see your calibre collection automatically. If not, try adding the URL http://myhostname:8080 as a new catalog in the Stanza reader on your iPhone. Here myhostname should be the fully qualified hostname or the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "Here you can customize the behavior of Calibre by controlling what plugins it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "" @@ -4017,62 +4071,66 @@ msgstr "" msgid "ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "

calibre can find metadata for your books from two locations: Google Books and isbndb.com.

To use isbndb.com you must sign up for a free account and enter your access key below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "Select the book that most closely matches your copy from the list below" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "" @@ -4093,69 +4151,73 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Specify how the author(s) of this book should be sorted. For example Charles Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4168,7 +4230,7 @@ msgid "Choose formats for " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 msgid "Books" msgstr "" @@ -4210,67 +4272,67 @@ msgstr "" msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -4511,35 +4573,55 @@ msgstr "" msgid "Negate" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:113 msgid "Advanced Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:114 msgid "Find entries that have..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:115 msgid "&All these words:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:116 msgid "This exact &phrase:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:117 msgid "&One or more of these words:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 msgid "But dont show entries that have..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 msgid "Any of these &unwanted words:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 +msgid "What kind of match to use:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 +msgid "Contains: the word or phrase matches anywhere in the metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 +msgid "Equals: the word or phrase must match an entire metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 +msgid "Regular expression: the expression must match anywhere in the metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 +msgid " " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 msgid "See the User Manual for more help" msgstr "" @@ -4903,23 +4985,23 @@ msgstr "" msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1146 msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1147 msgid "Date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -4927,23 +5009,23 @@ msgstr "" msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "Dropping onto a device is not supported. First add the book to the calibre library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1082 msgid "Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1136 msgid "Double click to edit me

" msgstr "" @@ -4972,7 +5054,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:433 msgid "No matches found" msgstr "" @@ -5019,52 +5101,52 @@ msgstr "" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5216,11 +5298,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" @@ -5347,11 +5429,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "The following books have already been converted to %s format. Do you wish to reconvert them?" msgstr "" @@ -5432,7 +5514,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1750 msgid "Save only %s format to disk" msgstr "" @@ -5456,66 +5538,66 @@ msgstr "" msgid "Remove covers from selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 msgid "Convert individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:358 msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:361 msgid "Create catalog of books in your calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:377 msgid "Run welcome wizard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:413 msgid "Similar books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:474 msgid "Bad database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:476 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 msgid "Calibre Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1906 msgid "Choose a location for your ebook library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:524 msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:704 msgid "Browse by covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:852 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:854 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:878 msgid "Connected " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 msgid "Device database corrupted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:891 msgid "" "\n" "

The database of books on the reader is corrupted. Try the following:\n" @@ -5526,302 +5608,308 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:954 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1044 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1014 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1018 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1056 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1078 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1655 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1088 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1106 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1144 msgid "The selected books will be permanently deleted and the files removed from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1171 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1203 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1293 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1318 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1495 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1218 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1220 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1220 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1222 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1320 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1348 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1357 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1378 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1395 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1401 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1411 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1415 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1429 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1443 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1523 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1692 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1654 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1676 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1677 msgid "You are attempting to open %d books. Opening too many books at once can be slow and have a negative effect on the responsiveness of your computer. Once started the process cannot be stopped until complete. Do you wish to continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1693 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1734 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1735 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1778 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1779 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1834 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1835 msgid "There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1858 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1886 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1859 msgid "

Could not convert: %s

It is a DRMed book. You must first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1872 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1887 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1915 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1916 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1966 msgid "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1994 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1998 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2050 msgid "will keep running in the system tray. To close it, choose Quit in the context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2069 msgid "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2077 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2078 msgid "%s has been updated to version %s. See the new features. Visit the download page?" msgstr "" @@ -5980,7 +6068,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Remember last used window size" msgstr "" @@ -6033,7 +6121,7 @@ msgstr "" msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "" @@ -6093,87 +6181,87 @@ msgstr "" msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:191 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:198 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:263 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:294 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:393 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:394 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:434 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:474 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:510 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:539 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:574 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:582 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:583 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:587 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:661 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:668 msgid "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:673 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:679 msgid "" "%prog [options] file\n" "\n" @@ -6566,7 +6654,7 @@ msgstr "" msgid "The maximum number of matches to return per OPDS query. This affects Stanza, WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a comma-separated list of fields.\n" "Available fields: %s.\n" @@ -6574,7 +6662,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -6582,28 +6670,28 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the specified directory. Useful if you are unsure at which stage of the conversion process a bug is occurring.\n" "Default: '%default'None\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from output. Case-insensitive.\n" "--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" @@ -6611,27 +6699,50 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required to optimize the catalog for the device. For example, 'kindle' or 'kindle_dx' creates a structured Table of Contents with Sections and Articles.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "Path to the calibre library. Default is to use the path stored in the settings." msgstr "" @@ -6840,7 +6951,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -6848,7 +6959,7 @@ msgstr "" msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -6860,27 +6971,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1744 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1773 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1790 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1883 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1920 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1942 msgid "Checked id" msgstr "" @@ -7064,7 +7175,7 @@ msgstr "" msgid "Finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -7194,75 +7305,83 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "" @@ -7281,46 +7400,46 @@ msgstr "" msgid "Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 msgid "Timeout in seconds to wait for a response from the server. Default: %default s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 msgid "Maximum number of levels to recurse i.e. depth of links to follow. Default %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 msgid "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "Minimum interval in seconds between consecutive fetches. Default is %default s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "The character encoding for the websites you are trying to download. The default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "Only links that match this regular expression will be followed. This option can be specified multiple times, in which case as long as a link matches any one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "Any link that matches this regular expression will be ignored. This option can be specified multiple times, in which case as long as any regexp matches a link, it will be ignored.By default, no links are ignored. If both --filter-regexp and --match-regexp are specified, then --filter-regexp is applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "Do not download CSS stylesheets." msgstr "" diff --git a/src/calibre/translations/cs.po b/src/calibre/translations/cs.po index d4681c1c72..baaa9dae4a 100644 --- a/src/calibre/translations/cs.po +++ b/src/calibre/translations/cs.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" "PO-Revision-Date: 2010-01-25 02:27+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:49+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1753,7 +1753,7 @@ msgstr "Publikováno" msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2645,11 +2645,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7281,14 +7281,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7297,14 +7297,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7313,21 +7313,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7578,7 +7578,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" "Zobrazit podrobné výstupní informace. Užitečné pro hledání chyb v programu" @@ -7961,75 +7961,75 @@ msgstr "" msgid "Unknown News Source" msgstr "Neznámý zdroj zpráv" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " od " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Stahování obálky z %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Nepojmenovaný článek" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Článek stažen: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -8048,7 +8048,7 @@ msgstr "Naplánováno" msgid "Custom" msgstr "uživatelský" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8058,18 +8058,18 @@ msgstr "" "\n" "Kde URL je například http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" "Základní adresář, do kterého bude URL uloženo. Standardně je to %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "Časový limit čekání na odezvu ze serveru. Standardně: %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8077,7 +8077,7 @@ msgstr "" "Maximání hloubka rekurze, t.j. počet úrovní odkazů, které se mají procházet. " "Standardně %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8085,13 +8085,13 @@ msgstr "" "Maximální počet stahovaných souborů. Tato hodnota se vztahuje na soubory v " " tagách. Standardně %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "Minimální interval stahování v sekundách. Standatně %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8099,7 +8099,7 @@ msgstr "" "Kódování znaků použité na webových stránkách, které chcete stáhnout. " "Vevýchozím nastavení se program pokusí rozeznat kódování automaticky." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8110,7 +8110,7 @@ msgstr "" "se shodují minimálně s jedním výrazem. Standardně budou následovány všechny " "odkazy." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8124,7 +8124,7 @@ msgstr "" "odkazy. V případě, že jsou použity obě mořnosti, --filter-regexp i --match-" "regexp bude --filter-regexp aplikován jako první." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Nestahovat kaskádové styly." diff --git a/src/calibre/translations/de.po b/src/calibre/translations/de.po index 36245aec38..97daee09b3 100644 --- a/src/calibre/translations/de.po +++ b/src/calibre/translations/de.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-24 12:28+0000\n" -"Last-Translator: S. Dorscht \n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-11 07:25+0000\n" +"Last-Translator: Marc Winter \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-02-12 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -31,7 +31,7 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -39,19 +39,19 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -66,18 +66,18 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -100,10 +100,10 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -114,23 +114,23 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -516,6 +516,10 @@ msgstr "Geräte-Schnittstellen" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Kommunikation mit dem IRex Digital Reader 1000." +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "Kommunikation mit dem IRex Digital Reader 800" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Kommunikation mit dem Iriver Story Reader." @@ -658,12 +662,12 @@ msgid "There is insufficient free space on the storage card" msgstr "Nicht genügend freier Speicherplatz auf der Speicherkarte" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "Nachrichten" @@ -820,8 +824,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Auf das Bild keine Verarbeitung anwenden" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Seite" @@ -1777,83 +1781,83 @@ msgstr "Nichtproportionale Schriftartfamilie einbetten" msgid "Comic" msgstr "Comic" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Titel" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Autor(en)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "Herausgeber" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Produzent" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Bemerkung" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Etiketten (Tags)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Reihe" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Sprache" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "Zeitstempel" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "Veröffentlicht" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "Rechte" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "BUCHKRITIK" @@ -2083,7 +2087,7 @@ msgstr "" "abrufen\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Umschlagbild" @@ -2112,74 +2116,74 @@ msgstr "Titel für alle in den Büchern erstellten Inhaltsverzeichnisse" msgid "Disable compression of the file contents." msgstr "Komprimierung der Datei-Inhalte ausschalten." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Alle Artikel" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Titelseite" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Inhaltsverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "Glossar" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "Danksagung" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Literaturverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "Schlussschrift" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "Copyright" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "Widmung" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "Epigraph" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "Vorwort" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "Abbildungsverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "Tabellenverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Anmerkungen" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "Vorwort" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Haupttext" @@ -2556,10 +2560,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Diese RTF Datei enthält eine Funktion, die Calibre nicht unterstützt. " -"Wandeln Sie sie in HTML um und versuchen Sie es damit nochmal." +"Diese RTF Datei beinhaltet eine Funktion, die von Calibre nicht unterstützt " +"wird. Konvertieren Sie sie zunächst in HTML und versuchen Sie es erneut.\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2632,82 +2638,82 @@ msgstr "" "Leerzeichen vorhanden ist. Gestattet auch, die maximale Zeilenlänge unter " "das Minimum zu setzen." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" "Datei auf die Speicherkarte anstatt in den Hauptspeicher des Gerätes " "(Voreinstellung) senden" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Bestätigung vor dem Löschen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Schaltflächengröße der Symbolleiste" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Zeige Schaltflächenbeschriftung in der Symbolleiste" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Aufteilung des Hauptfensters" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Benachrichtigen, wenn eine neue Version verfügbar ist" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Benutze römische Ziffern für Reihennummerierung" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Liste der Etiketten nach Beliebtheit sortieren" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" "Anzahl der Umschlagbilder, die im Cover-Ansicht Modus angezeit werden" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Voreinstellungen für Konvertierung zu LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Optionen für den LRF eBook Viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formate, die mithilfe des internen Viewers angesehen werden" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Spalten, die in der Liste der Bücher angezeigt werden sollen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Content Server automatisch beim Aufrufen von Calibre starten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Älteste in der Datenbank gespeicherte Nachrichten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Symbol im Systembereich der Kontrollleiste anzeigen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Geladene Nachrichten auf das Gerät übertragen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Bücher nach der Übertragung auf das Gerät aus der Bibliothek löschen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" @@ -2715,85 +2721,90 @@ msgstr "" "Zeige Cover-Ansicht in einem eigenen Fenster anstatt im Hauptfenster von " "Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" "Benachrichtigungen aus dem Systembereich der Kontrollleiste deaktivieren" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Voreingestellte Übertragungsart beim Verwenden des \"An Reader übertragen\" " "Buttons" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Maximale Anzahl der Arbeitsprozesse in der Warteschlange" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Soziale Metadaten (Etikettierung/Bewertung/etc.) laden" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "Autor und Titel mit neuen Metadaten überschreiben" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" "Maximale Anzahl gleichzeitiger Aufträge auf die Anzahl der CPUs beschränken" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Kopiert" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Kopieren" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "In die Zwischenablage kopieren" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Dateien wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "Suche in" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "Füge hinzu..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "Suche in allen Unterverzeichnissen..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "Verzeichnis Fehler" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "Das angegebene Verzeichnis konnte nicht bearbeitet werden." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Keine Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "Keine Bücher gefunden" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "Hinzugefügt" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "Hinzufügen schlug fehl" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2802,11 +2813,11 @@ msgstr "" "Versuchen Sie Calibre neu zu starten und fügen Sie die Bücher in kleineren " "Mengen hinzu, bis Sie das verantwortliche Buch finden." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "Duplikate gefunden!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -2814,15 +2825,15 @@ msgstr "" "Es gibt schon Bücher mit dem selben Titel wie die folgenden in der " "Datenbank. Trotzdem hinzufügen?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "Füge Duplikate hinzu..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "Speichere..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "Gespeichert" @@ -2837,7 +2848,7 @@ msgstr "CSV/XML Einstellungen" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2853,7 +2864,7 @@ msgstr "Einstellungen für" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2862,7 +2873,7 @@ msgid "output" msgstr "Ausgabe" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2872,7 +2883,7 @@ msgstr "Ausgabe" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2898,32 +2909,58 @@ msgid "Fields to include in output:" msgstr "Felder, die in der Ausgabe erscheinen sollen:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "eBook Einstellungen" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "Katalog" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "Als Genres ausgeschlossene Etiketten (regex):" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "'Dieses Buch nicht einschließen' Etikett:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "'Buch als gelesen markieren' Etikett:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "Zusätzliches Etiketten-Präfix für Anmerkungen:" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "Regex Ausdruck für Etiketten, die als Genres ausgeschlossen werden:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" +"Regex Tips:\n" +"- die Standard-Regex - \\[[\\w ]*\\] - schließt Etiketten in der Form " +"[Name], also z.B. [Amazon kostenlos] aus\n" +"- Ein Regex Ausdruck mit einem einzelnen Punkt schließt alle Etiketten aus, " +"wodurch auch kein Etiketten-Abschnitt erzeugt wird." + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "Im Abschnitt 'Titel' einschließen" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "Im Abschnitt 'Zuletzt hinzugefügt' einschließen" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "Zahlen als Text sortieren" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "Tab-Template für catalog.ui" @@ -3060,12 +3097,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3423,7 +3460,7 @@ msgid "Change the title of this book" msgstr "Titel dieses Buches ändern" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Autor(en): " @@ -3441,7 +3478,7 @@ msgstr "" "werden" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Herausgeber: " @@ -3452,7 +3489,7 @@ msgid "Ta&gs: " msgstr "&Etiketten: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3463,15 +3500,15 @@ msgstr "" "oder Sätze verwenden." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Reihen:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3482,30 +3519,42 @@ msgstr "Liste der bekannten Reihen. Sie können neue Reihen hinzufügen." msgid "Book " msgstr "Buch " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "MOBI-Ausgabe" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "Voreinstellung" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "&Titel des Inhaltsverzeichnisses:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "Bilder skalieren für &Palm Geräte" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "Verwende Autorensortierung für Autor" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "Komprimierung des Dateiinhalts ausschalten" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "Inhaltsverzeichnis nicht zum Buch hinzufügen" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "Kindle Optionen" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Seiteneinrichtung" @@ -3593,7 +3642,7 @@ msgid "RB Output" msgstr "RB-Ausgabe" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "Format zur Vorschau wählen" @@ -3909,7 +3958,7 @@ msgstr "" "ebook.com/user_manual/xpath.html\">XPath Tutorial." #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Keine weiteren Informationen verfügbar." @@ -4132,8 +4181,8 @@ msgstr "Vor&lage speichern:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Pfad" @@ -4143,7 +4192,7 @@ msgstr "Pfad" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -4166,7 +4215,7 @@ msgid "My Books" msgstr "Meine Bücher" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "Erstelle Katalog" @@ -4298,132 +4347,132 @@ msgstr "" msgid "new email address" msgstr "Neue eMail-Adresse" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Fehler" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "Die Installation der Befehlszeilen-Tools schlug fehl." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Kommandozeilen-Tools installiert" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Kommandozeilen-Tools installiert in" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Wenn Sie Calibre.app verschieben, müssen Sie die Befehlszeilen-Tools neu " "installieren." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Kein gültiger Plugin-Pfad" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s ist kein gültiger Plugin-Pfad" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Plugin wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Plugin kann nicht ausgeschaltet werden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Das Plugin: %s kann nicht ausgeschaltet werden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Plugin nicht anpassbar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Plugin: %s bedarf keines Anpassens" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Anpassen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Kann festinstalliertes Plugin nicht entfernen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " kann nicht entfernt werden, da es ein festinstalliertes Plugin ist. " "Versuchen Sie, es auszuschalten." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Fehler Log:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Zugriffs-Protokolldatei:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Content Server konnte nicht gestartet werden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Speicherort für Bücher wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Ungültige Größe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" "Die Größe %s ist ungültig. Sie muss der Form BreitexHöhe entsprechen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Ortsangabe der Datenbank ungültig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Ortsangabe der Datenbank ungültig " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Muss ein Verzeichnis sein." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Ortsangabe der Datenbank ungültig.
Speichern nicht möglich " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Überprüfe Vollständigkeit der Datenbank" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Überprüfung der Vollständigkeit der Datenbank schlug fehl" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Einige Inkonsistenzen gefunden." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4532,13 +4581,13 @@ msgstr "" msgid "Sending to &device" msgstr "An das Gerät sen&den" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Einstellungen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4547,24 +4596,29 @@ msgstr "" "sortiert gespeichert und die Metadaten werden in der Datei metadata.db " "gespeichert)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Zu einem neuen Ort der Datenbank wechseln" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Benachrichtigung anzeigen, wenn &neue Version verfügbar ist" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" "&Soziale Metadaten (Etikettierung/Bewertung/etc.) laden als Voreinstellung" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" +"Autor und Titel standardmäßig überschreiben, wenn Metadaten geholt werden" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "Voreinstellung für Zei&tüberschreitung bei Netzwerkverbindungen:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4572,157 +4626,157 @@ msgstr "" "Voreinstellung der Zeitüberschreitung für Netzwerkabrufe festsetzen (Gilt " "immer dann, wenn aus dem Internet Informationen abgerufen werden sollen)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " Sekunden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Sprache wäh&len (erfordert Neustart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Normal" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Hoch" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Niedrig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "Auftrags&priorität:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Bev&orzugtes Ausgabe-Format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Bevorzugte Reihenfolge des E&ingabe-Formats:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "&Römische Ziffern für Reihennummerierung verwenden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" "Symbol im Sys&tembereich der Kontrollleiste aktivieren (erfordert Neustart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Be&nachrichtigungen im Systembereich der Kontrollleiste anzeigen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Zeige Cover-Ansicht in einem eigenen Fenster (erfordert Neustart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Suchen während der Eingabe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Geladene &Nachrichten automatisch an das Gerät senden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" "Nachrichten nach der automatischen Übertragung auf das Gerät aus der " "Bibliothek &löschen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "A&nzahl der anzuzeigenden Umschlagbilder in der Cover-Ansicht (erfordert " "Neustart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Symbolleiste" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Groß" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Mittel" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Klein" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Größe der Schaltflächen in der Symbolleiste" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Zeige &Text in Schaltflächen der Symbolleiste" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Si&chtbare Spalten in Bibliothek-Ansicht wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Internen &Viewer verwenden für:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Eine eMail-Adresse hinzufügen, an die die Bücher gesendet werden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "eM&ail hinzufügen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Als Voreinstellung verwenden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "eMail entfe&rnen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" "Calibre kann Ihre Bücher an Sie (oder Ihr Lesegerät) per eMail versenden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" "&Maximale Anzahl der Arbeitsprozesse in der Warteschlange (erfordert " "Neustart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "Vollständigkeit der &Datenbank überprüfen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "Kommandozeilen-Tools &installieren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "&Calibre Einstellungsverzeichnis öffnen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Die maximale Anzahl gleichzeitiger Aufträge auf die Anzahl der &CPU-Kerne " "beschränken." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "Fehlersuche bei &der Geräteerkennung" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4732,25 +4786,25 @@ msgstr "" "von überall aus mit Hilfe eines Browsers auf Ihre Büchersammlung zugreifen " "können. Einstellungsänderungen erfolgen erst nach einem Neustart des Servers." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "Server &Port:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "Ben&utzername:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Passwort:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4758,7 +4812,7 @@ msgstr "" "Wenn Sie das Kennwort leer lassen, kann jeder auf Ihre Büchersammlung über " "das Webinterface zugreifen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4766,41 +4820,41 @@ msgstr "" "Maximale Größe (BreitexHöhe) der angezeigten Umschlagbilder. Größere " "Umschlagbilder werden verkleinert. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Maximale Ums&chlagbild-Größe:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "Pa&sswort anzeigen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "Maximale &ODPS Einträge pro Anfrage:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "Server &starten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "Server st&oppen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "Server &testen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Server &automatisch beim Starten hochfahren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Server Logs ansehen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4818,7 +4872,7 @@ msgstr "" "vollständige Servername oder die IP-Adresse des Rechners sein, auf dem " "Calibre läuft." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4826,27 +4880,27 @@ msgstr "" "Hier können Sie das Verhalten von Calibrie anpassen, indem sie festlegen, " "welche Plugins verwendet werden." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Plugin &ein-/ausschalten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "Plugin &anpassen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "Plugin entfe&rnen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Neues Plugin hinzufügen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "&Plugin-Datei:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Hinzufügen" @@ -4917,44 +4971,44 @@ msgstr "Sortierung nach Autor" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Finde Metadaten..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Konnte Metadaten nicht finden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" "Der Download der Metadaten scheint zum Stillstand gekommen zu sein. " "Versuchen Sie es später erneut." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Warnung" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Konnte Metadaten nicht abrufen von:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Keine Metadaten gefunden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Keine Metadaten gefunden, versuchen Sie, den Titel und den Autor oder die " "ISBN anzupassen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Metadaten abrufen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4966,31 +5020,36 @@ msgstr "" "müssen Sie einen kostenfreien Account " "anlegen und den Zugangsschlüssel unten angeben." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "Zug&angsschlüssel:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Abrufen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Treffer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" "Wählen Sie aus der unten stehenden Liste das Buch, das Ihrer Ausgabe " "entspricht" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Soziale Metadaten (Etikettierung/Bewertung/etc.) für das ausgewählte Buch " "laden" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" +"Autor und Titel mit Autor und Titel des gewählten Buches überschreiben" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Details des Auftrags" @@ -5011,24 +5070,24 @@ msgstr "Zeige Auftrag&details" msgid "Stop &all jobs" msgstr "&Alle Aufträge abbrechen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Meta-Informationen bearbeiten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Meta-Informationen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "Automatisch Sortierung nach Autor setzen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "S&ortierung nach Autor: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -5037,49 +5096,53 @@ msgstr "" "Geben Sie an, wie der Autor dieses Buches sortiert werden soll. \"Charles " "Dickens\" zum Beispiel als \"Dickens, Charles\"." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Bewertung:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Bewertung dieses Buches: 0-5 Sterne" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "Keine Änderung" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " Sterne" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Etiketten hinzufü&gen: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Etiketten-Editor öffnen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "Etiketten entfe&rnen:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" "Durch Kommata getrennte Liste der Etiketten, die von den Büchern entfernt " "werden. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "&Format entfernen:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "Titel und Autor vertau&schen" @@ -5134,69 +5197,69 @@ msgstr "Das Umschlagbild im Format %s ist ungültig" msgid "Abort the editing of all remaining books" msgstr "Editieren aller verbleibenden Bücher abbrechen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "Diese ISBN ist gültig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "Diese ISBN ist ungültig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "Lade Umschlagbild..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "Kann kein Umschlagbild abrufen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "Konnte kein Umschlagbild abrufen.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "Der Download timed out." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "Konnte kein Umschlagbild für dieses Buch finden. Geben Sie zuerst die ISBN " "an." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Falsches Umschlagbild" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "Das Umschlagbild ist kein gültiges Bild" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "Es sind Fehler aufgetreten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "Während des Ladens von sozialen Metadaten sind Fehler aufgetreten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "Konnte Metadaten nicht abrufen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "Sie müssen wenigstens ISBN, Titel, Autor oder Herausgeber angeben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "Zugriff verweigert" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" "Konnte %s nicht öffnen. Wird es von einem anderen Programm verwendet?" @@ -5926,23 +5989,23 @@ msgstr "Nicht verfügbar" msgid " - Jobs" msgstr " - Aufträge" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Größe (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Datum" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Bewertung" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5950,15 +6013,15 @@ msgstr "Bewertung" msgid "None" msgstr "Keine" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "Buch %s von %s." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "Das ist nicht gestattet" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -5966,11 +6029,11 @@ msgstr "" "Direktes Hinzufügen auf das Gerät wird nicht unterstützt. Fügen Sie das Buch " "zuerst zur Bibliothek hinzu." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "Format" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "Doppelklick ermöglicht Bearbeitung

" @@ -5999,7 +6062,7 @@ msgid "No matches for the search phrase %s were found." msgstr "Keine Treffer für die Suchworte %s gefunden." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "Keine Treffer gefunden" @@ -6046,52 +6109,52 @@ msgstr "eBook öffnen" msgid "Configure" msgstr "Konfigurieren" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Die im angegebenen Pfad sich befindende Bibliothek verwenden" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Minimiert im Systembereich der Kontrollleiste starten." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Information zur Fehlersuche auf die Konsole ausgeben" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Nicht nach Updates suchen" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Wenn Sie sicher sind, dass es nicht gestartet ist" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Start nicht möglich " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s ist schon gestartet." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "kann im Systemtray gestartet sein, im" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "oberen rechten Bereich des Bildschirms." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "unteren rechten Bereich des Bildschirms." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "Versuchen Sie Ihren Rechner neu zu starten." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "Versuche Sie die Datei zu löschen" @@ -6253,11 +6316,11 @@ msgstr "Be&enden" msgid "ERROR: Unhandled exception" msgstr "FEHLER: Unbehandelte Ausnahme" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Buch hat weder Titel noch ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Keine Treffer für dieses Buch" @@ -6392,11 +6455,11 @@ msgstr "Sammle " msgid "Fetch news from " msgstr "Nachrichten abrufen von " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "Konvertiere bestehende" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6491,7 +6554,7 @@ msgid "Save to disk in a single directory" msgstr "Auf Festplatte in ein einziges Verzeichnis speichern" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "Nur das %s Format auf Festplatte speichern" @@ -6546,7 +6609,7 @@ msgid "Calibre Library" msgstr "Calibre Bibliothek" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "Wählen Sie einen Speicherort für Ihre eBook Bibliothek." @@ -6658,33 +6721,33 @@ msgstr "Archive" msgid "Supported books" msgstr "Unterstützte Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Lesen der Metadaten schlug fehl" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Lesen der Metadaten schlug fehl bei folgenden" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "Löschen nicht möglich" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "Kein Buch ausgewählt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "Zu löschende Formate auswählen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "Nicht zu löschende Formate auswählen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6692,132 +6755,138 @@ msgstr "" "Die gewählten Bücher werden dauerhaft gelöscht und die Dateien vom " "Computer entfernt. Sicher?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Lösche Bücher vom Gerät." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Konnte Metadaten nicht laden" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "Keine Bücher ausgewählt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "soziale Metadaten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "Umschlagbilder" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "Metadaten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Lade %s für %d Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Das Laden der Metadaten schlug teilweise fehl" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Das Laden der Metadaten schlug für folgende Bücher fehl:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Laden der Metadaten schlug fehl:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Kann Metadaten nicht bearbeiten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Speichern auf Festplatte nicht möglich" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Zielverzeichnis auswählen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Fehler während des Speicherns" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Es gab einen Fehler während des Speicherns." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Konnte einige Bücher nicht speichern" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" "Klicken Sie auf die Schaltfläche Details zeigen, um zu sehen, welche es gibt." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "Keine Bücher ausgewählt, für die ein Katalog erstellt werden soll" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "Erstelle %s Katalog..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "Keine Bücher im Katalog. Bitte ausgeschlossene Etiketten prüfen." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "Katalog erstellt." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "Katalog-Verzeichnis exportieren" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" msgstr "Wählen Sie das Ziel für %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "Rufe Nachrichten ab von " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr " abgerufen." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "Konvertierung nicht möglich" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "Starte Konvertierung von %d Büchern" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "Ansehen nicht möglich" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "Konnte Verzeichnis nicht öffnen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "Mehrere Bücher ausgewählt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6829,32 +6898,32 @@ msgstr "" "Rechners haben. Einmal gestartet kann der Prozess nicht beendet werden, " "bevor er abgeschlossen ist. Möchten Sie fortfahren?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "%s hat keine verfügbaren Formate." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "Konfiguration nicht möglich" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "Konfiguration nicht möglich während Aufträge abgearbeitet werden." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "Es sind keine genaueren Informationen verfügbar" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" "Es sind keine weitere Informationen über Bücher auf dem Gerät verfügbar" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "Fehler in der Kommunikation zum Gerät" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6862,12 +6931,12 @@ msgstr "" "Es trat ein Fehler in der Kommunikation mit dem Gerät auf. Bitte entfernen " "und schließen Sie das Gerät wieder an und - oder starten Sie neu." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "Konvertierungsfehler" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6876,23 +6945,23 @@ msgstr "" "href=\"%s\">DRM geschütztes Buch. Sie müssen zuerst das DRM mit Hilfe " "anderer Programme entfernen." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "Downloadschema ausgeschalten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "Misslungen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "Ungültiger Ort der Bibliothek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "Konnte nicht auf %s zugreifen. Verwende %s als Bibliothek." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." @@ -6901,12 +6970,12 @@ msgstr "" "Falls Sie es nützlich finden, sollten Sie eine Spende zur Unterstützung " "seiner Entwicklung in Betracht ziehen." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" "Es bestehen aktive Aufträge. Sind Sie sicher, dass sie es beenden wollen?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6917,11 +6986,11 @@ msgstr "" "verursachen.
\n" " Sind Sie sicher, dass sie beenden möchten?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "WARNUNG: Aktive Aufträge" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6929,7 +6998,7 @@ msgstr "" "wird im System Tray weiter laufen. Zum Schließen wählen Sie Beenden " "im Kontextmenü des System Tray." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" @@ -6937,11 +7006,11 @@ msgstr "" "Letzte Version: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "Neue Version verfügbar" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -7111,7 +7180,7 @@ msgid "Options to customize the ebook viewer" msgstr "Einstellungen zum Anpassen des eBook Viewers" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "Zuletzt verwendete Fenstergröße merken" @@ -7168,7 +7237,7 @@ msgstr "Nichtproportionale Schriftgröße in Punkt" msgid "The standard font type" msgstr "Standardschriftart" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "Im Wörterbuch nachsch&lagen" @@ -7228,92 +7297,92 @@ msgstr "Format des Buches" msgid "Go to..." msgstr "Gehe zu..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "Stelle im Buch" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" "Zu einem Verweis gehen. Um die Verweisnummern zu erhalten, Verweismodus " "verwenden." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "Suche nach Text im Buch" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "Druckvorschau" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "Verbinde mit dict.org zum Nachschlagen von: %s…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "eBook wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "eBooks" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "Lesezeichen hinzufügen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "Titel für Lesezeichen eingeben:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "Keine Treffer gefunden für: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "Lade Ablauf..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "Lege %s an" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "Lesezeichen verwalten" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "Lade eBook..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "DRM Fehler" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "

Dieses Buch ist geschützt durch DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "Konnte eBook nicht öffnen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "Einstellungen zur Kontrolle des eBook Viewers" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Falls angegeben, dann wird das Viewer Fenster beim Start im Vordergrund " "angezeigt." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "Javascript Alarme und Konsolennachrichten auf der Konsole ausgeben" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7821,7 +7890,7 @@ msgstr "" "Maximale Anzahl an Treffern bei Ergebnissen von ODPS Anfragen. Dies betrifft " "Stanza, WordPlayer, etc. Integration." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7829,8 +7898,13 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Die Felder, die ausgegeben werden sollen, wenn die Datenbank katalogisiert " +"wird. Sollte eine Komma-getrennte Liste der Felder sein.\n" +"Verfügbare Felder: %s.\n" +"Standard: '%%default'\n" +"Betrifft: CSV und XML Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7842,14 +7916,17 @@ msgstr "" "Voreinstellung: '%default'\n" "Wird angewendet auf: CSV, XML Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Titel des erzeugten Katalogs für die Verwendung in den Metadaten.\n" +"Standard: '%default'\n" +"Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7858,14 +7935,18 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Regex Ausdruck für Etiketten, die als Genres ausgeschlossen werden.\n" +"Standard: '%default' schließt in Etiketten in eckigen Klammern aus, z.B. " +"'[]'\n" +"Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7873,22 +7954,59 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Komma-getrennte Liste der Etiketten, die von der Ausgabe auszuschließende " +"Bücher kennzeichnen. Berücksichtigt keine Groß-/Kleinschreibung.\n" +"--Ausschluß=überspringen schließt 'Buch überspringen' und ' Überspringen' " +"aus.\n" +"Standard: '%default'\n" +"Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"'Titel' Abschnitt im Katalog einschließen.\n" +"Standard: '%default'\n" +"Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"'Zuletzt hinzugefügt' Abschnitt im Katalog einschließen.\n" +"Standard: '%default'\n" +"Betrifft: ePub und MOBI Ausgabeformate" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Etiketten-Vorzeichen für Benutzernotizen, z.B. '*Dies könnte Jeff " +"gefallen'.\n" +"Standard: '%default'\n" +"Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Titel mit vorangehenden Nummern als Text sortieren, z.B.,\n" +"'2001: A Space Odyssey' wird sortiert als \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Voreinstellung: '%default'\n" +"Gilt für: ePub, MOBI Ausgabeformate" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7897,6 +8015,22 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Bestimmt das Ausgabeprofil. In einigen Fällen ist ein Ausgabeprofil " +"notwendig um den Katalog für ein Gerät zu optimieren. Beispielsweise erzeugt " +"'kindle' oder 'kindle_dx' eine strukturierte Inhaltstabelle mit Sektionen " +"und Artikeln.\n" +"Standard: '%default'\n" +"Betrifft: ePub und MOBI Ausgabeformate" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Etikett zeigt an, dass das Buch gelesen wurde.\n" +"Voreinstellung: '%default'\n" +"Gilt für: ePub, MOBI Ausgabeformate" #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" @@ -8216,6 +8350,9 @@ msgid "" "If declared, --search is ignored.\n" "Default: all" msgstr "" +"Komma-getrennte Liste der Datenbank-IDs die zu katalogisieren sind.\n" +"Wenn angegeben, --wird die Suche ignoriert.\n" +"Standard: Alle" #: /home/kovid/work/calibre/src/calibre/library/cli.py:652 msgid "" @@ -8236,7 +8373,7 @@ msgstr "Detaillierte Ausgabeinformation anzeigen. Hilfreich zur Fehlersuche." msgid "Error: You must specify a catalog output file" msgstr "Fehler: Sie müssen eine Katalog-Ausgabedatei angeben" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8256,27 +8393,27 @@ msgstr "" "\n" "Sie erhalten Hilfe zu einem bestimmten Befehl mit: %%prog command --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "

Migriere alte Datenbank zu eBook Bibliothek in %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "Kopiere %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "Komprimiere Datenbank" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "Überprüfe SQL Vollständigkeit..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "Überprüfe fehlende Dateien." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "Überprüfte ID" @@ -8521,7 +8658,7 @@ msgstr "Angehalten" msgid "Finished" msgstr "Fertig" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "Bei der Arbeit..." @@ -8660,77 +8797,85 @@ msgstr "" msgid "Unknown News Source" msgstr "Nachrichtenquelle unbekannt" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" "Das \"%s\" Downloadschema benötigt einen Benutzernamen und ein Passwort." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "Download beendet" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "Der Download der folgenden Artikel schlug fehl:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "Der Download von Teilen der folgenden Artikel schlug fehl:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr " von " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "\tFehlgeschlagene Verknüpfungen:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Konnte Artikel nicht abrufen. Mit -vv starten, um den Grund dafür zu sehen" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "Rufe Feeds ab..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "Feeds der Index-Seite erhalten" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "Umschlagbild versuchen heruterzuladen ..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "Erstelle Impressum..." + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "Download von [%d Thread(s)] starten ..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "Feeds wurden nach %s heruntergeladen" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "Umschlagbild konnte nicht heruntergeladen werden: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "Umschlagbild von %s herunterladen" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "Impressumskopie geladen" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "Artikel ohne Titel" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "Artikel heruntergeladen: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "Herunterladen der Artikel schlug fehl: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "Feed abrufen" @@ -10860,15 +11005,19 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid "Starting conversion of %d books" #~ msgstr "Starte Konvertierung von %d Büchern" -#~ msgid "Default" -#~ msgstr "Voreinstellung" - #~ msgid "Catalan" #~ msgstr "Katalanisch" #~ msgid "Portuguese" #~ msgstr "Portugiesisch" +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Diese RTF Datei enthält eine Funktion, die Calibre nicht unterstützt. " +#~ "Wandeln Sie sie in HTML um und versuchen Sie es damit nochmal." + #~ msgid "Input character &encoding" #~ msgstr "Zeichenkodi&erung der Eingabe" @@ -11104,3 +11253,15 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid "Create catalog of the books in your calibre library" #~ msgstr "Katalog der Bücher in Ihrer Calibre Bibliothek erstellen" + +#~ msgid "E-book Options" +#~ msgstr "eBook Einstellungen" + +#~ msgid "Tags to exclude as genres (regex):" +#~ msgstr "Als Genres ausgeschlossene Etiketten (regex):" + +#~ msgid "Overwrite &author/title with author/title of selected book" +#~ msgstr "&Autor/Titel mit Autor/Titel des gewählten Buches überschreiben" + +#~ msgid "Special marker tags for catalog generation" +#~ msgstr "Spezielle Markierungsetiketten zur Katalogerstellung" diff --git a/src/calibre/translations/en_GB.po b/src/calibre/translations/en_GB.po index 7ab25f665a..a18f2ecb8f 100644 --- a/src/calibre/translations/en_GB.po +++ b/src/calibre/translations/en_GB.po @@ -7,75 +7,78 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-10-26 17:36+0000\n" -"PO-Revision-Date: 2009-10-29 20:46+0000\n" -"Last-Translator: Kris Douglas \n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-09 05:41+0000\n" +"Last-Translator: lorenzov \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-10-30 08:28+0000\n" +"X-Launchpad-Export-Date: 2010-02-10 04:42+0000\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:43 msgid "Does absolutely nothing" msgstr "Does absolutely nothing" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:44 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:94 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:730 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:733 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:321 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1895 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1897 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:322 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:23 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:45 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 +#: /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/meta.py:36 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:61 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:63 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:103 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:872 +#: /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/pdf.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /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:70 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:154 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:591 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:886 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:891 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:951 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:135 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:185 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:186 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:83 @@ -94,67 +97,72 @@ msgstr "Does absolutely nothing" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:217 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:266 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:127 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:552 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:771 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:774 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:106 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:431 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:391 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1002 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 +#: /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/database2.py:651 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:663 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1062 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1099 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1433 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1435 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1544 -#: /home/kovid/work/calibre/src/calibre/library/server.py:493 -#: /home/kovid/work/calibre/src/calibre/library/server.py:565 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:703 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:715 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 +#: /home/kovid/work/calibre/src/calibre/library/server.py:645 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:43 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:49 msgid "Unknown" msgstr "Unknown" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "Base" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:148 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" msgstr "File type" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:182 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" msgstr "Metadata reader" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:213 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 msgid "Metadata writer" msgstr "Metadata writer" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:13 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "Catalogue generator" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" "Follow all local links in an HTML file and create a ZIP file containing all " "linked files. This plugin is run every time you add an HTML file to the " @@ -164,7 +172,7 @@ msgstr "" "linked files. This plugin is run every time you add an HTML file to the " "library." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:48 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -173,53 +181,61 @@ msgstr "" "latin1, iso-8859-1 and utf-8." #: /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" msgstr "Extract cover from comic files" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:77 -#: /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:108 #: /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:140 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:150 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:160 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:170 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:151 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:161 +#: /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:192 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:214 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:225 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:191 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:201 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:212 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:223 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:235 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:245 -msgid "Read metadata from %s files" -msgstr "Read metadata from %s files" - -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 -msgid "Read metadata from ebooks in RAR archives" -msgstr "Read metadata from ebooks in RAR archives" - #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256 -msgid "Read metadata from ebooks in ZIP archives" -msgstr "Read metadata from ebooks in ZIP archives" - #: /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" +msgstr "Read metadata from %s files" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 +msgid "Read metadata from ebooks in RAR archives" +msgstr "Read metadata from ebooks in RAR archives" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 +msgid "Read metadata from ebooks in ZIP archives" +msgstr "Read metadata from ebooks in ZIP archives" + #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:319 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:329 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:351 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:362 msgid "Set metadata in %s files" msgstr "Set metadata in %s files" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 msgid "Set metadata from %s files" msgstr "Set metadata from %s files" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:99 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "Conversion Input" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:122 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 msgid "" "Specify the character encoding of the input document. If set this option " "will override any encoding declared by the document itself. Particularly " @@ -231,11 +247,11 @@ msgstr "" "particularly useful for documents that do not declare any encoding or that " "have erroneous encoding declarations." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:225 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" msgstr "Conversion Output" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:239 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." @@ -256,55 +272,75 @@ msgstr "" "no information about the input document." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." -msgstr "This profile is intended for the SONY PRS line. The 500/505/700 etc." +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:235 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/600/700 etc." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:229 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 +msgid "This profile is intended for the SONY PRS 300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +msgid "This profile is intended for the SONY PRS-900." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 msgid "This profile is intended for the Microsoft Reader." msgstr "This profile is intended for Microsoft's Reader format." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:240 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 msgid "This profile is intended for the Mobipocket books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:93 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:253 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:105 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:265 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 +msgid "This profile is intended for the Hanlin V5 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 msgid "This profile is intended for the Cybook G3." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:118 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:278 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 msgid "This profile is intended for the Cybook Opus." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:130 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:289 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 msgid "This profile is intended for the Amazon Kindle." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:142 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:322 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 msgid "This profile is intended for the Irex Illiad." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:154 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:335 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:172 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 +msgid "This profile is intended for the B&N Nook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 msgid "Output profile" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:176 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 msgid "" "This profile tries to provide sane defaults and is useful if you want to " "produce a document intended to be read at a computer or on a range of " @@ -314,11 +350,15 @@ msgstr "" "you want to produce a document intended to be read on a computer, or on a " "range of different devices." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:248 +msgid "This profile is intended for the SONY PRS-300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 msgid "This profile is intended for the 5-inch JetBook." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -326,35 +366,35 @@ msgstr "" "This profile is intended for the SONY PRS line. The 500, 505, 700 e.t.c., in " "landscape mode. Mainly useful for reading comics and similar print layouts." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:306 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 msgid "This profile is intended for the Amazon Kindle DX." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 msgid "Installed plugins" msgstr "Installed plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 msgid "Mapping for filetype plugins" msgstr "Mapping for filetype plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Local plugin customization" msgstr "Local plugin customisation" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Disabled plugins" msgstr "Disabled plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:75 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 msgid "No valid plugin found in " msgstr "No valid plugin found in " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:233 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:263 msgid "Initialization of plugin %s failed with traceback:" msgstr "Initialisation of plugin %s failed with traceback:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:363 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 msgid "" " %prog options\n" "\n" @@ -366,15 +406,15 @@ msgstr "" " Customize calibre by loading external plugins.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:369 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "Add a plugin by specifying the path to the zip file containing it." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:371 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "Remove a custom plugin by name. Has no effect on builtin plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:373 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." @@ -382,15 +422,15 @@ msgstr "" "Customise plugin. Specify name of plugin and customisation string separated " "by a comma." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:375 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" msgstr "List all installed plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:377 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 msgid "Enable the named plugin" msgstr "Enable the named plugin" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:379 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 msgid "Disable the named plugin" msgstr "Disable the named plugin" @@ -398,56 +438,31 @@ msgstr "Disable the named plugin" msgid "Communicate with Android phones." msgstr "Communicate with Android devices." -#: /home/kovid/work/calibre/src/calibre/devices/bebook/driver.py:19 -msgid "Communicate with the BeBook eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 +msgid "" +"Comma separated list of directories to send e-books to on the device. The " +"first one that exists will be used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/bebook/driver.py:95 -msgid "Communicate with the BeBook Mini eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +msgid "Communicate with the Binatone Readme eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Communicate with BlackBerry Smartphones." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:17 -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" msgstr "Kovid Goyal" -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:21 -msgid "Communicate with the Cybook Gen 3 eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:22 -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:86 -#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 -#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:78 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 -msgid "John Schember" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:74 -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:76 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:76 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:78 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:130 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:99 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:101 -msgid "Transferring books to device..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:85 -msgid "Communicate with the Cybook Opus eBook reader." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "" @@ -455,11 +470,33 @@ msgstr "" msgid "Communicate with the ESlick eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +msgid "Communicate with Hanlin V3 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 +msgid "Communicate with Hanlin V5 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 +msgid "Communicate with the BOOX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 +msgid "Communicate with the Hanvon N520 eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:20 +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 +msgid "John Schember" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 msgid "Device Interface" msgstr "" @@ -467,192 +504,240 @@ msgstr "" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:22 +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 +msgid "Communicate with the Iriver Story reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 msgid "Communicate with the JetBook eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:23 -msgid "James Ralston" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:21 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 msgid "Communicate with the Kindle eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:66 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 msgid "Communicate with the Kindle 2 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:87 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 +msgid "Communicate with the Kindle DX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +msgid "Communicate with the Nokia 770 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +msgid "Communicate with the Nokia 810 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 +msgid "The Nook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 +msgid "Communicate with the Nook eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 +msgid "Communicate with the Nuut2 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 msgid "Communicate with the Sony PRS-500 eBook reader." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:93 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:96 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:99 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:110 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:49 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:52 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:55 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:78 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:105 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:108 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:119 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:45 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:81 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:90 msgid "Getting list of books on device..." msgstr "Getting list of books on device..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:26 -msgid "Communicate with the Sony PRS-300/505 eBook reader." +msgid "Communicate with the Sony PRS-300/505/500 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:27 -#: /home/kovid/work/calibre/src/calibre/devices/prs700/driver.py:18 -msgid "Kovid Goyal and John Schember" -msgstr "Kovid Goyal and John Schember" +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:58 +msgid "" +"Comma separated list of metadata fields to turn into collections on the " +"device. Possibilities include: " +msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:163 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:170 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:119 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:134 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:116 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:118 +msgid "Transferring books to device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 msgid "Removing books from device..." msgstr "Removing books from device..." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:198 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:149 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." msgstr "Sending metadata to device..." -#: /home/kovid/work/calibre/src/calibre/devices/prs700/driver.py:17 -msgid "Communicate with the Sony PRS-600/700 eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 +msgid "Communicate with the Sony PRS-600/700/900 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:285 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:357 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "Unable to detect the %s disk drive. Try rebooting." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 +msgid "Unable to detect the %s mount point. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." msgstr "Unable to detect the %s disk drive." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:518 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:530 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:538 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 msgid "Unable to mount main memory (Error code: %d)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:670 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:672 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 msgid "The reader has no storage card in this slot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:674 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:698 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" msgstr "There is insufficient free space in main memory" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:700 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:702 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 msgid "There is insufficient free space on the storage card" msgstr "There is insufficient free space on the storage card" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:713 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1006 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1010 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1333 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "News" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:11 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:16 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:32 msgid "Place files in sub directories if the device supports them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:19 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 msgid "Read metadata from files on device" msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 +msgid "Template to control how books are saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +msgid "Extra customization" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 msgid "Communicate with an eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 msgid "Get device information..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:107 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:115 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 msgid "Adding books to device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:138 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 msgid "Removing books from device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 msgid "Rendered %s" msgstr "Rendered %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:199 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 msgid "Failed %s" msgstr "Failed %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "" "Failed to process comic: \n" "\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Number of colors for grayscale image conversion. Default: %default. Values " "of less than 256 may result in blurred text on your device if you are " "creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Disable normalize (improve contrast) color range for pictures. Default: False" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Maintain picture aspect ratio. Default is to fill the screen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Disable sharpening." msgstr "Disable sharpening." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -660,11 +745,11 @@ msgstr "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 msgid "Don't split landscape images into two portrait images" msgstr "Don't split landscape images into two portrait images" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:294 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -672,23 +757,23 @@ msgstr "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 -msgid "" -"Used for right-to-left publications like manga. Causes landscape pages to be " -"split into portrait pages from right to left." -msgstr "" -"Used for right-to-left publications like manga. Causes landscape pages to be " -"split into portrait pages from right to left." - #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" +"Used for right-to-left publications like manga. Causes landscape pages to be " +"split into portrait pages from right to left." +msgstr "" +"Used for right-to-left publications like manga. Causes landscape pages to be " +"split into portrait pages from right to left." + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:301 +msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -696,19 +781,19 @@ msgstr "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "" "The format that images in the created ebook are converted to. You can " "experiment to see which format gives you optimal size and look on your " "device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:312 msgid "Apply no processing to the image" msgstr "Apply no processing to the image" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "" @@ -781,22 +866,22 @@ msgstr "" msgid "List builtin recipes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:252 msgid "Output saved to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:91 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:92 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:98 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " "conversion process a bug is occurring." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:108 msgid "" "Specify the input profile. The input profile gives the conversion system " "information on how to interpret various information in the input document. " @@ -804,7 +889,7 @@ msgid "" "are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:118 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:119 msgid "" "Specify the output profile. The output profile tells the conversion system " "how to optimize the created document for the specified device. In some " @@ -812,7 +897,7 @@ msgid "" "a device. For example EPUB on the SONY reader. Choices are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:130 msgid "" "The base font size in pts. All font sizes in the produced book will be " "rescaled based on this size. By choosing a larger size you can make the " @@ -820,7 +905,7 @@ msgid "" "chosen based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:140 msgid "" "Mapping from CSS font names to font sizes in pts. An example setting is " "12,12,14,16,18,20,22,24. These are the mappings for the sizes xx-small to xx-" @@ -829,17 +914,17 @@ msgid "" "use a mapping based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:151 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:152 msgid "Disable all rescaling of font sizes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:158 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 msgid "" "The line height in pts. Controls spacing between consecutive lines of text. " "By default no line height manipulation is performed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:166 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:167 msgid "" "Some badly designed documents use tables to control the layout of text on " "the page. When converted these documents often have text that runs off the " @@ -847,7 +932,7 @@ msgid "" "tables and present it in a linear fashion." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:177 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level one. If this is specified, it takes precedence over " @@ -857,7 +942,7 @@ msgstr "" "of Contents at level one. If this is specified, it takes precedence over " "other forms of auto-detection." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:185 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:186 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level two. Each entry is added under the previous level one " @@ -867,7 +952,7 @@ msgstr "" "of Contents at level two. Each entry is added under the previous level one " "entry." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:193 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:194 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level three. Each entry is added under the previous level two " @@ -877,7 +962,7 @@ msgstr "" "of Contents at level three. Each entry is added under the previous level two " "entry." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:202 msgid "" "Normally, if the source file already has a Table of Contents, it is used in " "preference to the auto-generated one. With this option, the auto-generated " @@ -887,11 +972,11 @@ msgstr "" "preference to the auto-generated one. With this option, the auto-generated " "one is always used." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:209 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:210 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "Don't add auto-detected chapters to the Table of Contents." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:216 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" @@ -899,20 +984,20 @@ msgstr "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:223 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 msgid "" "Maximum number of links to insert into the TOC. Set to 0 to disable. Default " "is: %default. Links are only added to the TOC if less than the threshold " "number of chapters were detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:231 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:232 msgid "" "Remove entries from the Table of Contents whose titles match the specified " "regular expression. Matching entries and all their children are removed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:243 msgid "" "An XPath expression to detect chapter titles. The default is to consider " "

or

tags that contain the words \"chapter\",\"book\",\"section\" or " @@ -922,7 +1007,7 @@ msgid "" "User Manual for further help on using this feature." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:257 msgid "" "Specify how to mark detected chapters. A value of \"pagebreak\" will insert " "page breaks before chapters. A value of \"rule\" will insert a line before " @@ -934,53 +1019,60 @@ msgstr "" "chapters. A value of \"none\" will disable chapter marking and a value of " "\"both\" will use both page breaks and lines to mark chapters." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:266 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:267 msgid "" "Either the path to a CSS stylesheet or raw CSS. This CSS will be appended to " "the style rules from the source file, so it can be used to override those " "rules." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:275 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:276 msgid "" "An XPath expression. Page breaks are inserted before the specified elements." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:282 msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:287 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:292 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:296 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:297 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:301 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:302 msgid "" "Do not force text to be justified in output. Whether text is actually " "displayed justified or not depends on whether the ebook format and reading " "device support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:309 msgid "" "Remove spacing between paragraphs. Also sets an indent on paragraphs of " "1.5em. Spacing removal will not work if the source file does not use " "paragraphs (

or

tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +msgid "" +"When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 msgid "" "Use the cover detected from the source file in preference to the specified " "cover." @@ -988,13 +1080,13 @@ msgstr "" "Use the cover detected from the source file in preference to the specified " "cover." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:321 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:329 msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (

or

tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:328 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 msgid "" "Remove the first image from the input ebook. Useful if the first image in " "the source file is a cover and you are specifying an external cover." @@ -1002,41 +1094,41 @@ msgstr "" "Remove the first image from the input ebook. Useful if the first image in " "the source file is a cover and you are specifying an external cover." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:344 msgid "" "Insert the book metadata at the start of the book. This is useful if your " "ebook reader does not support displaying/searching metadata directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:344 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 msgid "" "Attempt to detect and correct hard line breaks and other problems in the " "source file. This may make things worse, so use with care." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:360 msgid "Use a regular expression to try and remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 msgid "The regular expression to use to remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:373 msgid "Use a regular expression to try and remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:372 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 msgid "The regular expression to use to remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 msgid "" "Read metadata from the specified OPF file. Metadata read from this file will " "override any metadata in the source file." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:386 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1046,90 +1138,90 @@ msgid "" "number of people will be used (Chinese in the previous example)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:409 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:37 msgid "Set the title." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:405 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:413 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:410 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 msgid "The version of the title to be used for sorting. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:414 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 msgid "String to be used when sorting by author. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 msgid "Set the cover to the specified file." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 msgid "Set the ebook description." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:55 msgid "Set the ebook publisher." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 msgid "Set the series this ebook belongs to." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:442 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:61 msgid "Set the index of the book in this series." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:63 msgid "Set the rating. Should be a number between 1 and 5." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 msgid "Set the ISBN of the book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 msgid "Set the book producer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:71 msgid "Set the language." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:546 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 msgid "Could not find an ebook inside the archive" msgstr "Could not find an ebook inside the archive" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:604 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:620 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:716 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:740 msgid "Converting input to HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:739 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:763 msgid "Running transforms on ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:825 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:850 msgid "Creating" msgstr "" @@ -1167,9 +1259,9 @@ msgid "" "disables the generation of this cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:123 -#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113 -#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:98 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "" @@ -1186,20 +1278,20 @@ msgstr "" msgid "Add Table of Contents to beginning of the book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:243 msgid "" "Traverse links in HTML files breadth first. Normally, they are traversed " "depth first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:249 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:250 msgid "" "Maximum levels of recursion when following links in HTML files. Must be non-" "negative. 0 implies that no links in the root HTML file are followed. " "Default is %default." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:258 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:259 msgid "" "Normally this input plugin re-arranges all the input files into a standard " "folder hierarchy. Only use this option if you know what you are doing as it " @@ -1207,7 +1299,7 @@ msgid "" "pipeline." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:266 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:267 msgid "" "Average line length for line breaking if the HTML is from a previous partial " "conversion of a PDF file. Default is %default which disables this." @@ -1217,56 +1309,56 @@ msgstr "" msgid "Creating LIT file from EPUB..." msgstr "Creating LIT file from EPUB..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:321 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 msgid "\tBook Designer file detected." msgstr "\tBook Designer file detected." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:323 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 msgid "\tParsing HTML..." msgstr "\tParsing HTML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 msgid "\tBaen file detected. Re-parsing..." msgstr "\tBaen file detected. Re-parsing..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 msgid "Written preprocessed HTML to " msgstr "Written preprocessed HTML to " -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:380 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 msgid "Processing %s" msgstr "Processing %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:394 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 msgid "\tConverting to BBeB..." msgstr "\tConverting to BBeB..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:540 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:553 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:552 msgid "Could not parse file: %s" msgstr "Could not parse file: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:545 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 msgid "%s is an empty file" msgstr "%s is an empty file" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:565 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 msgid "Failed to parse link %s %s" msgstr "Failed to parse link %s %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" msgstr "Cannot add link %s to TOC" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:958 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" msgstr "Unable to process image %s. Error: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1003 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" msgstr "Unable to process interlaced PNG %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1018 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 msgid "" "Could not process image: %s\n" "%s" @@ -1274,13 +1366,13 @@ msgstr "" "Could not process image: %s\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1773 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 msgid "" "An error occurred while processing a table: %s. Ignoring table markup." msgstr "" "An error occurred while processing a table: %s. Ignoring table markup." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1775 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 msgid "" "Bad table:\n" "%s" @@ -1288,19 +1380,19 @@ msgstr "" "Bad table:\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1797 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 msgid "Table has cell that is too large" msgstr "Table has cell that is too large" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1863 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 msgid "Could not read cover image: %s" msgstr "Could not read cover image: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1866 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Cannot read from: %s" msgstr "Cannot read from: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1996 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 msgid "Failed to process opf file" msgstr "Failed to process opf file" @@ -1501,82 +1593,86 @@ msgstr "The monospace family of fonts to embed" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:388 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1068 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Title" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:393 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1069 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Author(s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "Publisher" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Producer" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Comments" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1072 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Tags" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Series" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Language" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1011 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "Timestamp" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 +msgid "EDITORIAL REVIEW" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:19 msgid "options" msgstr "" @@ -1638,30 +1734,68 @@ msgstr "" msgid "Set the BookID in LRF files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 msgid "No file specified" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:159 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 msgid "Original metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 msgid "Changed metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:188 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" msgstr "Cover saved to" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 msgid "No cover found" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +msgid "Metadata download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "ratings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "tags" +msgstr "tags" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +msgid "description/reviews" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +msgid "Download %s from %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 +msgid "Downloads metadata from Google Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:153 +msgid "Downloads metadata from isbndb.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 +msgid "" +"To use isbndb.com you must sign up for a %sfree account%s and enter your " +"access key below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189 +msgid "Downloads social metadata from amazon.com" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 msgid "" "\n" @@ -1734,8 +1868,8 @@ msgstr "" "\n" "Fetch a cover image for the book identified by ISBN from LibraryThing.com\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1314 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Cover" @@ -1762,101 +1896,77 @@ msgstr "Title for any generated in-line table of contents." msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1315 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Title Page" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1316 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /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_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Table of Contents" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1317 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1318 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "Glossary" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1319 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "Acknowledgements" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1320 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Bibliography" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "Colophon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "Copyright" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "Dedication" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "Epigraph" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "Foreword" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "List of Illustrations" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "List of Tables" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Notes" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "Preface" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Main Text" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:53 -msgid "Options to control e-book conversion." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:60 -msgid "Character encoding for input. Default is to auto detect." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:62 -msgid "Output file. Default is derived from input filename." -msgstr "Output file. Default is derived from input filename." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:64 -msgid "Produce more human-readable XML output." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:66 -msgid "Useful for debugging." -msgstr "Useful for debugging." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:71 -msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 msgid "%s format books are not supported" msgstr "%s format books are not supported" @@ -1892,11 +2002,11 @@ msgid "" "Generate an Adobe \"page-map\" file if pagination information is available." 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" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:133 msgid "Sidebar" msgstr "" @@ -1928,17 +2038,21 @@ msgid "" "cp1252. Note: This option is not honored by all formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 msgid "Do not extract images from the document" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 msgid "" "Scale used to determine the length at which a line should be unwrapped. " "Valid values are a decimal between 0 and 1. The default is 0.5, this is the " "median line length." msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 +msgid "Use the new PDF conversion engine." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/cli.py:31 msgid "" "command ...\n" @@ -2135,7 +2249,7 @@ msgstr "" msgid "The orientation of the page. Default is portrait. Choices are %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:52 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 msgid "Could not find pdftohtml, check it is in your PATH" msgstr "Could not find pdftohtml, check it is in your PATH" @@ -2144,10 +2258,11 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:183 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2168,6 +2283,10 @@ msgid "" "markdown see" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:35 +msgid "Do not insert a Table of Contents into the output text." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 msgid "" "Type of newline to use. Options are %s. Default is 'system'. Use 'old_mac' " @@ -2182,11 +2301,6 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:54 -msgid "Do not add a blank line between paragraphs." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:41 msgid "" "The maximum number of characters per line. This splits on the first space " "before the specified value. If no space is found the line will be broken at " @@ -2194,89 +2308,85 @@ msgid "" "minimum of 25 characters. Use 0 to disable line splitting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 msgid "" "Force splitting on the max-line-length value when no space is present. Also " "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:52 -msgid "Add a tab at the beginning of each paragraph." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "Send file to storage card instead of main memory by default" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Confirm before deleting" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Toolbar icon size" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Show button labels in the toolbar" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Main window geometry" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Notify when a new version is available" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Use Roman numerals for series number" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Sort tags list by popularity" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "Number of covers to show in the cover browsing mode" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Defaults for conversion to LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Options for the LRF ebook viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formats that are viewed using the internal viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Columns to be displayed in the book list" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Automatically launch content server on application startup" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Oldest news kept in database" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Show system tray icon" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Upload downloaded news to device" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Delete books from library after uploading to device" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" @@ -2284,119 +2394,125 @@ msgstr "" "Show the cover flow in a separate window instead of in the main calibre " "window" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Disable notifications from the system tray icon" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "Default action to perform when send to device button is clicked" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +msgid "Download social metadata (tags/rating/etc.)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 +msgid "Limit max simultaneous jobs to number of CPUs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "Searching in" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "No books" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "Duplicates found!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "Saved" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:60 -msgid "Bulk Convert" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:184 -msgid "Options specific to the output format." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 -msgid "Comic Input" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2407,23 +2523,31 @@ msgstr "" msgid "Options specific to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 -msgid "input" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2432,17 +2556,102 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:51 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 msgid "Form" msgstr "Form" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 +msgid "Catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 +msgid "" +"For settings that cannot be specified in this dialog, use the values saved " +"in a previous conversion (if they exist) instead of using the defaults " +"specified in the Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 +msgid "Bulk Convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +msgid "Options specific to the output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 +msgid "Comic Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +msgid "input" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" @@ -2498,7 +2707,7 @@ msgid "&Disable comic processing" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 msgid "&Output format:" msgstr "" @@ -2533,25 +2742,25 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 @@ -2559,9 +2768,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:267 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:269 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:332 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:334 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:180 msgid "..." msgstr "..." @@ -2576,17 +2788,6 @@ msgstr "" msgid "EPUB Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "output" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" msgstr "Do not &split on page breaks" @@ -2618,7 +2819,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 msgid "&Inline TOC" msgstr "" @@ -2637,10 +2838,9 @@ msgid "" "

By default, if the output base font size is zero and/or no font size key " "is specified, calibre will use the values from the current Output Profile. " "

\n" -"

See the User Manual for a discussion of how font size rescaling " -"works.

" +"

See the User Manual " +"for a discussion of how font size rescaling works.

" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 @@ -2653,15 +2853,15 @@ msgid "&Base font size:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 msgid "Font size &key:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125 @@ -2700,47 +2900,62 @@ msgstr "Look & Feel" msgid "Control the look and feel of the output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100 -msgid "Base &font size:" -msgstr "Base &font size:" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:102 -msgid "Line &height:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:104 -msgid "Remove &spacing between paragraphs" -msgstr "Remove &spacing between paragraphs" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:105 -msgid "No text &justification" -msgstr "No text &justification" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:106 -msgid "&Linearize tables" -msgstr "&Linearize tables" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:107 -msgid "&Transliterate unicode characters to ASCII." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:109 -msgid "Input character &encoding:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 msgid "&Disable font size rescaling" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:111 -msgid "Insert &blank line" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +msgid "Base &font size:" +msgstr "Base &font size:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 msgid "Wizard to help you choose an appropriate font size key" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 +msgid "Line &height:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +msgid "Input character &encoding:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +msgid "Remove &spacing between paragraphs" +msgstr "Remove &spacing between paragraphs" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +msgid "Indent size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +msgid "" +"

When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +msgid " em" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 +msgid "Insert &blank line" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +msgid "No text &justification" +msgstr "No text &justification" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +msgid "&Linearize tables" +msgstr "&Linearize tables" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +msgid "&Transliterate unicode characters to ASCII." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "Extra &CSS" msgstr "" @@ -2797,8 +3012,8 @@ msgid "&Monospaced font family:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:145 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 msgid "Metadata" msgstr "Metadata" @@ -2808,39 +3023,39 @@ msgid "" "possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 msgid "Choose cover for " msgstr "Choose cover for " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 msgid "Cannot read" msgstr "Cannot read" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 msgid "You do not have permission to read the file: " msgstr "You do not have permission to read the file: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:175 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 msgid "Error reading file" msgstr "Error reading file" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 msgid "

There was an error reading from file:
" msgstr "

There was an error reading from file:
" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 msgid " is not a valid picture" msgstr " is not a valid picture" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Book Cover" msgstr "Book Cover" @@ -2849,28 +3064,28 @@ msgid "Use cover from &source file" msgstr "Use cover from &source file" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 msgid "Change &cover image:" msgstr "Change &cover image:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 msgid "Browse for an image to use as the cover of this book." msgstr "Browse for an image to use as the cover of this book." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 msgid "&Title: " msgstr "&Title: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 msgid "Change the title of this book" msgstr "Change the title of this book" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:135 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Author(s): " @@ -2887,19 +3102,19 @@ msgstr "" "comma" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Publisher: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 msgid "Ta&gs: " msgstr "Ta&gs: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

They can be any words or phrases, separated by commas." @@ -2908,49 +3123,61 @@ msgstr "" "

They can be any words or phrases, separated by commas." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Series:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." msgstr "List of known series. You can add new series." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "Book " msgstr "Book " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Page Setup" @@ -2992,12 +3219,12 @@ msgid "PDB Input" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:43 msgid "Treat each &line as a paragraph" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:44 msgid "Assume print formatting" msgstr "" @@ -3038,7 +3265,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1371 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "Choose the format to view" @@ -3070,25 +3297,29 @@ msgstr "" msgid "Regex:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 msgid "Convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 msgid "Options specific to the input format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:105 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" msgstr "Dialog" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 msgid "&Input format:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 +msgid "Use &saved conversion settings for individual books" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -3117,12 +3348,12 @@ msgid "Footer regular expression:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 msgid "Invalid regular expression" msgstr "Invalid regular expression" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 msgid "Invalid regular expression: %s" msgstr "Invalid regular expression: %s" @@ -3206,40 +3437,40 @@ msgstr "" msgid "TXT Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:45 msgid "Process using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 msgid "" "

Markdown is a simple markup language for text files, that allows for " "advanced formatting. To learn more visit markdown." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:47 +msgid "Do not insert Table of Contents into output text when using markdown" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 msgid "&Line ending style:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:55 -msgid "Add a tab at the beginning of each paragraph" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 msgid "&Maximum line length:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 msgid "Force maximum line lenght" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 @@ -3248,7 +3479,7 @@ msgstr "" msgid "TextLabel" msgstr "TextLabel" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 msgid "Use a wizard to help construct the XPath expression" msgstr "" @@ -3323,243 +3554,286 @@ msgid "" "chapter.

Leaving attribute blank will match any attribute and " "leaving value blank will match any value. Setting tag to * will match any " "tag.

To learn more advanced usage of XPath see the XPath " -"Tutorial." +"href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:39 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 msgid "Device no longer connected." msgstr "Device no longer connected." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 msgid "Get device information" msgstr "Get device information" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 msgid "Get list of books on device" msgstr "Get list of books on device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 msgid "Send metadata to device" msgstr "Send metadata to device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 msgid "Upload %d books to device" msgstr "Upload %d books to device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:243 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 msgid "Delete books from device" msgstr "Delete books from device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 msgid "Download books from device" msgstr "Download books from device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 msgid "View book on device" msgstr "View book on device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 msgid "and delete from library" msgstr "and delete from library" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 msgid "Set default send to device action" msgstr "Set default send to device action" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:303 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:310 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 msgid "Email to" msgstr "Email to" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:325 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 msgid "Send to main memory" msgstr "Send to main memory" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:327 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:329 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 msgid "Send specific format to main memory" msgstr "Send specific format to main memory" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 msgid "Send specific format to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Send specific format to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 msgid "selected to send" msgstr "selected to send" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 msgid "Choose format to send to device" msgstr "Choose format to send to device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 msgid "No device" msgstr "No device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 msgid "Cannot send: No device is connected" msgstr "Cannot send: No device is connected" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:503 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 msgid "No card" msgstr "No card" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 msgid "Cannot send: Device has no storage card" msgstr "Cannot send: Device has no storage card" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 msgid "E-book:" msgstr "E-book:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 msgid "Attached, you will find the e-book" msgstr "Attached, you will find the e-book" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 msgid "by" msgstr "by" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 msgid "in the %s format." msgstr "in the %s format." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 msgid "Sending email to" msgstr "Sending email to" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:598 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:698 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 msgid "No suitable formats" msgstr "No suitable formats" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" "Could not email the following books as no suitable formats were found:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 msgid "Failed to email books" msgstr "Failed to email books" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:626 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 msgid "Failed to email the following books:" msgstr "Failed to email the following books:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 msgid "Sent by email:" msgstr "Sent by email:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 msgid "News:" msgstr "News:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 msgid "Attached is the" msgstr "Attached is the" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "Sent news to" msgstr "Sent news to" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:699 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:730 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." msgstr "Sending news to device." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:782 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 msgid "Sending books to device." msgstr "Sending books to device." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 msgid "" "Could not upload the following books to the device, as no suitable formats " "were found. Convert the book(s) to a format supported by your device first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:868 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 msgid "No space on device" msgstr "No space on device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" "

Cannot upload books to device there is no more free space available " -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:75 msgid "Select available formats and their order for this device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 msgid "Use sub directories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:345 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1007 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +msgid "Save &template:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Path" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:344 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:91 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" msgstr "Formats" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "&Previous" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "&Next" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 +msgid "Generate catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "Choose Format" @@ -3592,6 +3866,12 @@ msgstr "" msgid "plugins" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 +msgid "" +"\n" +"Customization: " +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "Conversion" msgstr "" @@ -3656,128 +3936,128 @@ msgstr "" msgid "new email address" msgstr "new email address" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:465 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:795 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:140 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Error" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "No valid plugin path" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s is not a valid plugin path" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Choose plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Plugin cannot be disabled" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "The plugin: %s cannot be disabled" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Plugin not customizable" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Plugin: %s does not need customization" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:573 -msgid "Customize %s" -msgstr "Customize %s" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 +msgid "Customize" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Cannot remove builtin plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " cannot be removed. It is a builtin plugin. Try disabling it instead." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Error log:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Access log:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:652 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Failed to start content server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:684 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Invalid size" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:685 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "The size %s is invalid. Must be of the form widthxheight" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:736 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Invalid database location" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:737 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Invalid database location " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Must be a directory." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Invalid database location.
Cannot write to " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:776 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:796 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:801 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -3785,14 +4065,6 @@ msgid "" "folder directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save.py:68 -msgid "Invalid template" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save.py:69 -msgid "The template %s is invalid:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:100 msgid "TabWidget" msgstr "" @@ -3809,239 +4081,259 @@ msgid "Read metadata only from &file name" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:103 -msgid "&Configure metadata from file name" +msgid "" +"Swap the firstname and lastname of the author. This affects only metadata " +"read from file names." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:104 -msgid "&Adding books" +msgid "&Swap author firstname and lastname" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:105 +msgid "&Configure metadata from file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +msgid "&Adding books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 msgid "" "Here you can control how calibre will save your books when you click the " "Save to Disk button:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 msgid "Save &cover separately" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 msgid "Update &metadata in saved copies" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 msgid "Save metadata in &OPF file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 msgid "Convert non-English characters to &English equivalents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 msgid "Format &dates as:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 msgid "File &formats to save:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 -msgid "Save &template" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 -msgid "" -"By adjusting the template below, you can control what folders the files are " -"saved in and what filenames they are given. You can use the / character to " -"indicate sub-folders. Available metadata variables are described below. If a " -"particular book does not have some metadata, the variable will be replaced " -"by the empty string." -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:114 -msgid "Available variables:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 msgid "Replace space with &underscores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 msgid "Change paths to &lowercase" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 msgid "&Saving books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173 -msgid "Preferences" -msgstr "Preferences" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 msgid "" -"&Location of ebooks (The ebooks are stored in folders sorted by author and " -"metadata is stored in the file metadata.db)" +"Here you can control how calibre will save your books when you click the " +"Send to Device button. This setting can be overriden for individual devices " +"by customizing the device interface plugins in Preferences->Plugins" msgstr "" -"&Location of ebooks (The ebooks are stored in folders sorted by author and " -"metadata is stored in the file metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492 -msgid "Browse for the new database location" -msgstr "Browse for the new database location" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494 -msgid "Show notification when &new version is available" -msgstr "Show notification when &new version is available" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495 -msgid "Default network &timeout:" -msgstr "Default network &timeout:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496 -msgid "" -"Set the default timeout for network fetches (i.e. anytime we go out to the " -"internet to get information)" -msgstr "" -"Set the default timeout for network fetches (i.e. anytime we go out to the " -"internet to get information)" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497 -msgid " seconds" -msgstr " seconds" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498 -msgid "Choose &language (requires restart):" -msgstr "Choose &language (requires restart):" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499 -msgid "Normal" -msgstr "Normal" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500 -msgid "High" -msgstr "High" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 -msgid "Low" -msgstr "Low" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 -msgid "Job &priority:" -msgstr "Job &priority:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 -msgid "Preferred &output format:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 +msgid "Sending to &device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 +msgid "Preferences" +msgstr "Preferences" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +msgid "" +"&Location of ebooks (The ebooks are stored in folders sorted by author and " +"metadata is stored in the file metadata.db)" +msgstr "" +"&Location of ebooks (The ebooks are stored in folders sorted by author and " +"metadata is stored in the file metadata.db)" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +msgid "Browse for the new database location" +msgstr "Browse for the new database location" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +msgid "Show notification when &new version is available" +msgstr "Show notification when &new version is available" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +msgid "Download &social metadata (tags/ratings/etc.) by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +msgid "Default network &timeout:" +msgstr "Default network &timeout:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +msgid "" +"Set the default timeout for network fetches (i.e. anytime we go out to the " +"internet to get information)" +msgstr "" +"Set the default timeout for network fetches (i.e. anytime we go out to the " +"internet to get information)" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +msgid " seconds" +msgstr " seconds" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +msgid "Choose &language (requires restart):" +msgstr "Choose &language (requires restart):" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +msgid "Normal" +msgstr "Normal" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +msgid "High" +msgstr "High" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +msgid "Low" +msgstr "Low" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +msgid "Job &priority:" +msgstr "Job &priority:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +msgid "Preferred &output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Use &Roman numerals for series number" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "Enable system &tray icon (needs restart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Show ¬ifications in system tray" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Show cover &browser in a separate window (needs restart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Automatically send downloaded &news to ebook reader" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "&Delete news from library when it is automatically sent to reader" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "&Number of covers to show in browse mode (needs restart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Toolbar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Large" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Medium" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Small" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Button size in toolbar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Show &text in toolbar buttons" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Select visible &columns in library view" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Use internal &viewer for:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Add an email address to which to send books" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "&Add email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Make &default" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "&Remove email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "calibre can send your books to you (or your reader) by email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4051,25 +4343,25 @@ msgstr "" "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "Server &port:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Username:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Password:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4077,7 +4369,7 @@ msgstr "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4085,41 +4377,41 @@ msgstr "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Max. &cover size:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Show password" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "&Start Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "St&op Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Test Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Run server &automatically on startup" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "View &server logs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4130,7 +4422,7 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4138,30 +4430,71 @@ msgstr "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Enable/&Disable plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "&Customize plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "&Remove plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Add new plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Plugin &file:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Add" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +msgid "Getting debug information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:22 +msgid "Copy to &clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:24 +msgid "Debug device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:44 +msgid "Invalid template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:45 +msgid "The template %s is invalid:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:42 +msgid "Save &template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +msgid "" +"By adjusting the template below, you can control what folders the files are " +"saved in and what filenames they are given. You can use the / character to " +"indicate sub-folders. Available metadata variables are described below. If a " +"particular book does not have some metadata, the variable will be replaced " +"by the empty string." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +msgid "Available variables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 +msgid "Downloading social metadata, please wait..." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" msgstr "Are you sure?" @@ -4182,41 +4515,41 @@ msgstr "Author Sort" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Finding metadata..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Could not find metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "The metadata download seems to have stalled. Try again later." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Warning" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Could not fetch metadata from:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "No metadata found" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "No metadata found, try adjusting the title and author or the ISBN key." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Fetch metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4228,24 +4561,32 @@ msgstr "" "free account and enter your access key " "below." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "&Access Key:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Fetch" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Matches" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" "Select the book that most closely matches your copy from the list below" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 +msgid "Download &social metadata (tags/rating/etc.) for the selected book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Details of job" @@ -4266,25 +4607,25 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Edit Meta information" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Meta information" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "A&utomatically set author sort" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -4292,211 +4633,240 @@ msgstr "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Rating:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Rating of this book. 0-5 stars" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " stars" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Open Tag Editor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "&Remove tags:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "Comma separated list of tags to remove from the books. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Remove &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 +msgid "&Swap title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 msgid "Books" msgstr "Books" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +msgid "No permission" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 msgid "No format selected" msgstr "No format selected" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "Could not read metadata" msgstr "Could not read metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 msgid "Could not read metadata from %s format" msgstr "Could not read metadata from %s format" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 msgid "Could not read cover" msgstr "Could not read cover" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 msgid "Could not read cover from %s format" msgstr "Could not read cover from %s format" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 msgid "The cover in the %s format is invalid" msgstr "The cover in the %s format is invalid" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 +msgid "This ISBN number is valid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 +msgid "This ISBN number is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "Downloading cover..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:500 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:505 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "Cannot fetch cover" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:501 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "Could not fetch cover.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "The download timed out." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "Could not find cover for this book. Try specifying the ISBN first." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Bad cover" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "The cover is not a valid picture" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +msgid "There were errors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 +msgid "There were errors downloading social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "Cannot fetch metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "You must specify at least one of ISBN, Title, Authors or Publisher" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 msgid "Edit Meta Information" msgstr "Edit Meta Information" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 msgid "Swap the author and title" msgstr "Swap the author and title" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 msgid "Author S&ort: " msgstr "Author S&ort: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 msgid "" "Automatically create the author sort entry based on the current author entry" msgstr "" "Automatically create the author sort entry based on the current author entry" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "Remove unused series (Series that have no books)" msgstr "Remove unused series (Series that have no books)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "IS&BN:" msgstr "IS&BN:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 msgid "Publishe&d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 msgid "dd MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 msgid "&Date:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "&Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Fetch metadata from server" msgstr "&Fetch metadata from server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 msgid "Available Formats" msgstr "Available Formats" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 msgid "Add a new format for this book to the database" msgstr "Add a new format for this book to the database" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "Remove the selected formats for this book from the database." msgstr "Remove the selected formats for this book from the database." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "Set the cover for the book from the selected format" msgstr "Set the cover for the book from the selected format" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 msgid "Reset cover to default" msgstr "Reset cover to default" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 msgid "Download &cover" msgstr "Download &cover" @@ -4707,17 +5077,19 @@ msgstr "Any of these &unwanted words:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:95 msgid "" -"See the User Manual for more help" +"See the User Manual for more help" msgstr "" -"See the User Manual for more help" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +msgid "Choose formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 msgid "Are your sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" @@ -4776,7 +5148,7 @@ msgid "Send test mail from %s to:" msgstr "Send test mail from %s to:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 msgid "&Test" msgstr "&Test" @@ -4972,7 +5344,7 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Recipe source code (python)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 msgid "" "\n" @@ -4996,142 +5368,155 @@ msgid "" "metadata entries are documented in tooltips.

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 msgid "Regular &expression" msgstr "Regular &expression" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 msgid "File &name:" msgstr "File &name:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 msgid "Test" msgstr "Test" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 msgid "Title:" msgstr "Title:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 msgid "Regular expression (?P<title>)" msgstr "Regular expression (?P<title>)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:113 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:96 msgid "No match" msgstr "No match" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 msgid "Authors:" msgstr "Authors:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 msgid "Series:" msgstr "Series:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 msgid "Regular expression (?P)" msgstr "Regular expression (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 msgid "Series index:" msgstr "Series index:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 msgid "Regular expression (?P)" msgstr "Regular expression (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 msgid "ISBN:" msgstr "ISBN:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 msgid "Regular expression (?P)" msgstr "Regular expression (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 msgid "Job" msgstr "Job" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 msgid "Status" msgstr "Status" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 msgid "Progress" msgstr "Progress" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 msgid "Running time" msgstr "Running time" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:68 +msgid "There are %d running jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:94 msgid "Unknown job" msgstr "Unknown job" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +msgid "There are %d waiting jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 msgid "Cannot kill job" msgstr "Cannot kill job" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:212 msgid "Cannot kill jobs that communicate with the device" msgstr "Cannot kill jobs that communicate with the device" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:215 msgid "Job has already run" msgstr "Job has already run" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:243 msgid "Unavailable" msgstr "Unavailable" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:254 msgid " - Jobs" msgstr " - Jobs" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1070 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Size (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:161 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1071 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Date" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Rating" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:337 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:343 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "None" msgstr "None" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "Book %s of %s." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:834 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "Not allowed" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:835 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -5139,11 +5524,11 @@ msgstr "" "Dropping onto a device is not supported. First add the book to the calibre " "library." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1006 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "Format" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1060 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "Double click to edit me

" @@ -5163,16 +5548,16 @@ msgstr "Hyphenate" msgid "Changes will only take effect after a restart." msgstr "Changes will only take effect after a restart." -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:70 msgid " - LRF Viewer" msgstr " - LRF Viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 msgid "No matches for the search phrase %s were found." msgstr "No matches for the search phrase %s were found." -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:421 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "No matches found" @@ -5197,12 +5582,12 @@ msgid "Previous Page" msgstr "Previous Page" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:182 msgid "Back" msgstr "Back" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:183 msgid "Forward" msgstr "Forward" @@ -5211,7 +5596,7 @@ msgid "Next match" msgstr "Next match" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 msgid "Open ebook" msgstr "Open ebook" @@ -5219,635 +5604,186 @@ msgstr "Open ebook" msgid "Configure" msgstr "Configure" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:57 -msgid "Save single format to disk..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:124 -msgid "Search (For Advanced Search click the button to the left)" -msgstr "Search (For Advanced Search click the button to the left)" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:141 -msgid "Error communicating with device" -msgstr "Error communicating with device" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:155 -msgid "&Restore" -msgstr "&Restore" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:157 -msgid "&Donate to support calibre" -msgstr "&Donate to support calibre" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:162 -msgid "&Restart" -msgstr "&Restart" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:201 -msgid "" -"

For help visit %s.kovidgoyal.net
" -msgstr "" -"

For help visit %s.kovidgoyal.net
" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:204 -msgid "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" -msgstr "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:227 -msgid "Edit metadata individually" -msgstr "Edit metadata individually" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:229 -msgid "Edit metadata in bulk" -msgstr "Edit metadata in bulk" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:231 -msgid "Download metadata and covers" -msgstr "Download metadata and covers" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:232 -msgid "Download only metadata" -msgstr "Download only metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:233 -msgid "Download only covers" -msgstr "Download only covers" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:236 -msgid "Add books from a single directory" -msgstr "Add books from a single directory" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:237 -msgid "" -"Add books from directories, including sub-directories (One book per " -"directory, assumes every ebook file is the same book in a different format)" -msgstr "" -"Add books from directories, including sub-directories (One book per " -"directory, assumes every ebook file is the same book in a different format)" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:240 -msgid "" -"Add books from directories, including sub directories (Multiple books per " -"directory, assumes every ebook file is a different book)" -msgstr "" -"Add books from directories, including sub directories (Multiple books per " -"directory, assumes every ebook file is a different book)" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:243 -msgid "Add Empty book. (Book entry with no formats)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 -msgid "Save to disk" -msgstr "Save to disk" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:281 -msgid "Save to disk in a single directory" -msgstr "Save to disk in a single directory" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:282 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1473 -msgid "Save only %s format to disk" -msgstr "Save only %s format to disk" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 -msgid "View" -msgstr "View" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:291 -msgid "View specific format" -msgstr "View specific format" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:317 -msgid "Convert individually" -msgstr "Convert individually" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:318 -msgid "Bulk convert" -msgstr "Bulk convert" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:333 -msgid "Run welcome wizard" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:367 -msgid "Similar books..." -msgstr "Similar books..." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:427 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:428 -msgid "Bad database location" -msgstr "Bad database location" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:430 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:511 -msgid "Calibre Library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1616 -msgid "Choose a location for your ebook library." -msgstr "Choose a location for your ebook library." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:632 -msgid "Browse by covers" -msgstr "Browse by covers" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:739 -msgid "Device: " -msgstr "Device: " - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:741 -msgid " detected." -msgstr " detected." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:763 -msgid "Connected " -msgstr "Connected " - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775 -msgid "Device database corrupted" -msgstr "Device database corrupted" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:776 -msgid "" -"\n" -"

The database of books on the reader is corrupted. Try the " -"following:\n" -"

    \n" -"
  1. Unplug the reader. Wait for it to finish regenerating " -"the database (i.e. wait till it is ready to be used). Plug it back in. Now " -"it should work with %(app)s. If not try the next step.
  2. \n" -"
  3. Quit %(app)s. Find the file media.xml in the reader's " -"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " -"file. Re-connect it and start %(app)s.
  4. \n" -"
\n" -" " -msgstr "" -"\n" -"

The database of books on the reader is corrupted. Try the " -"following:\n" -"

    \n" -"
  1. Unplug the reader. Wait for it to finish regenerating " -"the database (i.e. wait till it is ready to be used). Plug it back in. Now " -"it should work with %(app)s. If not try the next step.
  2. \n" -"
  3. Quit %(app)s. Find the file media.xml in the reader's " -"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " -"file. Re-connect it and start %(app)s.
  4. \n" -"
\n" -" " - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:877 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:920 -msgid "Uploading books to device." -msgstr "Uploading books to device." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:886 -msgid "EPUB Books" -msgstr "EPUB Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 -msgid "LRF Books" -msgstr "LRF Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:888 -msgid "HTML Books" -msgstr "HTML Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:889 -msgid "LIT Books" -msgstr "LIT Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:890 -msgid "MOBI Books" -msgstr "MOBI Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:891 -msgid "Text books" -msgstr "Text books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:892 -msgid "PDF Books" -msgstr "PDF Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:893 -msgid "Comics" -msgstr "Comics" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:894 -msgid "Archives" -msgstr "Archives" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:929 -msgid "Failed to read metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 -msgid "Failed to read metadata from the following" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:949 -msgid "" -"The selected books will be permanently deleted and the files removed " -"from your computer. Are you sure?" -msgstr "" -"The selected books will be permanently deleted and the files removed " -"from your computer. Are you sure?" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:976 -msgid "Deleting books from device." -msgstr "Deleting books from device." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1007 -msgid "Cannot download metadata" -msgstr "Cannot download metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1008 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1056 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1089 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1114 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1226 -msgid "No books selected" -msgstr "No books selected" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 -msgid "covers" -msgstr "covers" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 -msgid "metadata" -msgstr "metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1019 -msgid "Downloading %s for %d book(s)" -msgstr "Downloading %s for %d book(s)" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1040 -msgid "Failed to download some metadata" -msgstr "Failed to download some metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 -msgid "Failed to download metadata for the following:" -msgstr "Failed to download metadata for the following:" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1044 -msgid "Failed to download metadata:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1088 -msgid "Cannot edit metadata" -msgstr "Cannot edit metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1113 -msgid "Cannot save to disk" -msgstr "Cannot save to disk" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1116 -msgid "Choose destination directory" -msgstr "Choose destination directory" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1143 -msgid "Error while saving" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1144 -msgid "There was an error while saving." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1151 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 -msgid "Could not save some books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1153 -msgid "Click the show details button to see which ones." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1172 -msgid "Fetching news from " -msgstr "Fetching news from " - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1185 -msgid " fetched." -msgstr " fetched." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1225 -msgid "Cannot convert" -msgstr "Cannot convert" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1254 -msgid "Starting conversion of %d book(s)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1365 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1384 -msgid "No book selected" -msgstr "No book selected" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1365 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1415 -msgid "Cannot view" -msgstr "Cannot view" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1383 -msgid "Cannot open folder" -msgstr "Cannot open folder" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1400 -msgid "Multiple Books Selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1401 -msgid "" -"You are attempting to open %d books. Opening too many books at once can be " -"slow and have a negative effect on the responsiveness of your computer. Once " -"started the process cannot be stopped until complete. Do you wish to " -"continue?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1416 -msgid "%s has no available formats." -msgstr "%s has no available formats." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1457 -msgid "Cannot configure" -msgstr "Cannot configure" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1458 -msgid "Cannot configure while there are running jobs." -msgstr "Cannot configure while there are running jobs." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501 -msgid "No detailed info available" -msgstr "No detailed info available" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1502 -msgid "No detailed information is available for books on the device." -msgstr "No detailed information is available for books on the device." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1554 -msgid "Error talking to device" -msgstr "Error talking to device" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1555 -msgid "" -"There was a temporary error talking to the device. Please unplug and " -"reconnect the device and or reboot." -msgstr "" -"There was a temporary error talking to the device. Please unplug and " -"reconnect the device and or reboot." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1578 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1596 -msgid "Conversion Error" -msgstr "Conversion Error" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1579 -msgid "" -"

Could not convert: %s

It is a DRMed book. You must " -"first remove the DRM using third party tools." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1597 -msgid "Failed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1625 -msgid "Invalid library location" -msgstr "Invalid library location" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1626 -msgid "Could not access %s. Using %s as the library." -msgstr "Could not access %s. Using %s as the library." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1674 -msgid "" -"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." -msgstr "" -"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." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1698 -msgid "There are active jobs. Are you sure you want to quit?" -msgstr "There are active jobs. Are you sure you want to quit?" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1701 -msgid "" -" is communicating with the device!
\n" -" Quitting may cause corruption on the device.
\n" -" Are you sure you want to quit?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1705 -msgid "WARNING: Active jobs" -msgstr "WARNING: Active jobs" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1756 -msgid "" -"will keep running in the system tray. To close it, choose Quit in the " -"context menu of the system tray." -msgstr "" -"will keep running in the system tray. To close it, choose Quit in the " -"context menu of the system tray." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1775 -msgid "" -"Latest version: %s" -msgstr "" -"Latest version: %s" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1783 -msgid "Update available" -msgstr "Update available" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1784 -msgid "" -"%s has been updated to version %s. See the new features. " -"Visit the download page?" -msgstr "" -"%s has been updated to version %s. See the new features. " -"Visit the download page?" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1802 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Use the library located at the specified path." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1804 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Start minimized to system tray." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1806 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Log debugging information to console" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1808 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1856 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1858 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Cannot Start " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1859 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1862 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1864 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1866 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1869 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1871 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1883 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:331 msgid "calibre" msgstr "calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 msgid "Advanced search" msgstr "Advanced search" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 msgid "Alt+S" msgstr "Alt+S" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 msgid "&Search:" msgstr "&Search:" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 msgid "" "

Search the list of books by title, author, publisher, tags, comments, " "etc.

Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 msgid "Reset Quick Search" msgstr "Reset Quick Search" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 -msgid "Match any" -msgstr "Match any" - -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 -msgid "Match all" -msgstr "Match all" - -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 msgid "Sort by &popularity" msgstr "Sort by &popularity" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +msgid "Match any" +msgstr "Match any" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 +msgid "Match all" +msgstr "Match all" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 msgid "Add books" msgstr "Add books" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 msgid "A" msgstr "A" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 msgid "Remove books" msgstr "Remove books" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 msgid "Del" msgstr "Del" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 msgid "Edit meta information" msgstr "Edit meta information" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 msgid "E" msgstr "E" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 msgid "Send to device" msgstr "Send to device" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 +msgid "Save to disk" +msgstr "Save to disk" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 msgid "S" msgstr "S" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 msgid "Fetch news" msgstr "Fetch news" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 msgid "F" msgstr "F" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 msgid "Convert E-books" msgstr "Convert E-books" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 msgid "C" msgstr "C" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 +msgid "View" +msgstr "View" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 msgid "V" msgstr "V" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 msgid "Open containing folder" msgstr "Open containing folder" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 msgid "Show book details" msgstr "Show book details" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 msgid "Books by same author" msgstr "Books by same author" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 msgid "Books in this series" msgstr "Books in this series" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 msgid "Books by this publisher" msgstr "Books by this publisher" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 msgid "Books with the same tags" msgstr "Books with the same tags" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 msgid "Configure calibre" msgstr "Configure calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 msgid "Ctrl+P" msgstr "Ctrl+P" @@ -5871,11 +5807,11 @@ msgstr "&Quit" msgid "ERROR: Unhandled exception" msgstr "ERROR: Unhandled exception" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Book has neither title nor ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "No matches found for this book" @@ -5883,6 +5819,66 @@ msgstr "No matches found for this book" msgid "Search" msgstr "Search" +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 +msgid "Press a key..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 +msgid "Already assigned" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 +msgid "already assigned to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid " or " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 +msgid "&Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 +msgid "Customize shortcuts for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid "Keys" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 +msgid "Double click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:67 +msgid "Frame" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 +msgid "&Custom" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 +msgid "&Shortcut:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 +msgid "Click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 +msgid "Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 +msgid "&Alternate shortcut:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 msgid "Jobs:" msgstr "Jobs:" @@ -5891,15 +5887,15 @@ msgstr "Jobs:" msgid "Click to see list of active jobs." msgstr "Click to see list of active jobs." -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 msgid "Click to browse books by their covers" msgstr "Click to browse books by their covers" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 msgid "Click to turn off Cover Browsing" msgstr "Click to turn off Cover Browsing" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 msgid "" "

Browsing books by their covers is disabled.
Import of pictureflow " "module failed:
" @@ -5907,15 +5903,15 @@ msgstr "" "

Browsing books by their covers is disabled.
Import of pictureflow " "module failed:
" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:209 msgid "Click to browse books by tags" msgstr "Click to browse books by tags" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Authors" msgstr "Authors" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Publishers" msgstr "Publishers" @@ -5936,7 +5932,7 @@ msgid "" "found." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:120 msgid "Queueing books for bulk conversion" msgstr "" @@ -5948,16 +5944,545 @@ msgstr "" msgid "Fetch news from " msgstr "Fetch news from " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:63 +msgid "Save single format to disk..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:142 +msgid "Search (For Advanced Search click the button to the left)" +msgstr "Search (For Advanced Search click the button to the left)" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:159 +msgid "Error communicating with device" +msgstr "Error communicating with device" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:176 +msgid "&Restore" +msgstr "&Restore" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:178 +msgid "&Donate to support calibre" +msgstr "&Donate to support calibre" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:183 +msgid "&Restart" +msgstr "&Restart" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:222 +msgid "

For help see the: User Manual
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:224 +msgid "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" +msgstr "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:247 +msgid "Edit metadata individually" +msgstr "Edit metadata individually" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:249 +msgid "Edit metadata in bulk" +msgstr "Edit metadata in bulk" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:251 +msgid "Download metadata and covers" +msgstr "Download metadata and covers" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:252 +msgid "Download only metadata" +msgstr "Download only metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:253 +msgid "Download only covers" +msgstr "Download only covers" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:254 +msgid "Download only social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:257 +msgid "Add books from a single directory" +msgstr "Add books from a single directory" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:258 +msgid "" +"Add books from directories, including sub-directories (One book per " +"directory, assumes every ebook file is the same book in a different format)" +msgstr "" +"Add books from directories, including sub-directories (One book per " +"directory, assumes every ebook file is the same book in a different format)" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:261 +msgid "" +"Add books from directories, including sub directories (Multiple books per " +"directory, assumes every ebook file is a different book)" +msgstr "" +"Add books from directories, including sub directories (Multiple books per " +"directory, assumes every ebook file is a different book)" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:264 +msgid "Add Empty book. (Book entry with no formats)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:305 +msgid "Save to disk in a single directory" +msgstr "Save to disk in a single directory" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 +msgid "Save only %s format to disk" +msgstr "Save only %s format to disk" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:315 +msgid "View specific format" +msgstr "View specific format" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:319 +msgid "Remove selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:321 +msgid "Remove files of a specific format from selected books.." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:323 +msgid "Remove all formats from selected books, except..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:325 +msgid "Remove covers from selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 +msgid "Convert individually" +msgstr "Convert individually" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +msgid "Bulk convert" +msgstr "Bulk convert" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 +msgid "Run welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 +msgid "Similar books..." +msgstr "Similar books..." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 +msgid "Bad database location" +msgstr "Bad database location" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 +msgid "Calibre Library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 +msgid "Choose a location for your ebook library." +msgstr "Choose a location for your ebook library." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 +msgid "Browse by covers" +msgstr "Browse by covers" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 +msgid "Device: " +msgstr "Device: " + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 +msgid " detected." +msgstr " detected." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 +msgid "Connected " +msgstr "Connected " + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 +msgid "Device database corrupted" +msgstr "Device database corrupted" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 +msgid "" +"\n" +"

The database of books on the reader is corrupted. Try the " +"following:\n" +"

    \n" +"
  1. Unplug the reader. Wait for it to finish regenerating " +"the database (i.e. wait till it is ready to be used). Plug it back in. Now " +"it should work with %(app)s. If not try the next step.
  2. \n" +"
  3. Quit %(app)s. Find the file media.xml in the reader's " +"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " +"file. Re-connect it and start %(app)s.
  4. \n" +"
\n" +" " +msgstr "" +"\n" +"

The database of books on the reader is corrupted. Try the " +"following:\n" +"

    \n" +"
  1. Unplug the reader. Wait for it to finish regenerating " +"the database (i.e. wait till it is ready to be used). Plug it back in. Now " +"it should work with %(app)s. If not try the next step.
  2. \n" +"
  3. Quit %(app)s. Find the file media.xml in the reader's " +"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " +"file. Re-connect it and start %(app)s.
  4. \n" +"
\n" +" " + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 +msgid "How many empty books?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 +msgid "How many empty books should be added?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 +msgid "Uploading books to device." +msgstr "Uploading books to device." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 +msgid "EPUB Books" +msgstr "EPUB Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 +msgid "LRF Books" +msgstr "LRF Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 +msgid "HTML Books" +msgstr "HTML Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 +msgid "LIT Books" +msgstr "LIT Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 +msgid "MOBI Books" +msgstr "MOBI Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 +msgid "Text books" +msgstr "Text books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 +msgid "PDF Books" +msgstr "PDF Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 +msgid "Comics" +msgstr "Comics" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 +msgid "Archives" +msgstr "Archives" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 +msgid "Supported books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 +msgid "Failed to read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 +msgid "Failed to read metadata from the following" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 +msgid "Cannot delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 +msgid "No book selected" +msgstr "No book selected" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 +msgid "Choose formats to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 +msgid "Choose formats not to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 +msgid "" +"The selected books will be permanently deleted and the files removed " +"from your computer. Are you sure?" +msgstr "" +"The selected books will be permanently deleted and the files removed " +"from your computer. Are you sure?" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 +msgid "Deleting books from device." +msgstr "Deleting books from device." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 +msgid "Cannot download metadata" +msgstr "Cannot download metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 +msgid "No books selected" +msgstr "No books selected" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +msgid "social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +msgid "covers" +msgstr "covers" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +msgid "metadata" +msgstr "metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 +msgid "Downloading %s for %d book(s)" +msgstr "Downloading %s for %d book(s)" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 +msgid "Failed to download some metadata" +msgstr "Failed to download some metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 +msgid "Failed to download metadata for the following:" +msgstr "Failed to download metadata for the following:" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 +msgid "Failed to download metadata:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 +msgid "Cannot edit metadata" +msgstr "Cannot edit metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 +msgid "Cannot save to disk" +msgstr "Cannot save to disk" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 +msgid "Choose destination directory" +msgstr "Choose destination directory" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 +msgid "Error while saving" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 +msgid "There was an error while saving." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 +msgid "Could not save some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 +msgid "Click the show details button to see which ones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 +msgid "Fetching news from " +msgstr "Fetching news from " + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 +msgid " fetched." +msgstr " fetched." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 +msgid "Cannot convert" +msgstr "Cannot convert" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 +msgid "Starting conversion of %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 +msgid "Cannot view" +msgstr "Cannot view" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 +msgid "Cannot open folder" +msgstr "Cannot open folder" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 +msgid "Multiple Books Selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 +msgid "" +"You are attempting to open %d books. Opening too many books at once can be " +"slow and have a negative effect on the responsiveness of your computer. Once " +"started the process cannot be stopped until complete. Do you wish to " +"continue?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 +msgid "%s has no available formats." +msgstr "%s has no available formats." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 +msgid "Cannot configure" +msgstr "Cannot configure" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 +msgid "Cannot configure while there are running jobs." +msgstr "Cannot configure while there are running jobs." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 +msgid "No detailed info available" +msgstr "No detailed info available" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 +msgid "No detailed information is available for books on the device." +msgstr "No detailed information is available for books on the device." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 +msgid "Error talking to device" +msgstr "Error talking to device" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 +msgid "" +"There was a temporary error talking to the device. Please unplug and " +"reconnect the device and or reboot." +msgstr "" +"There was a temporary error talking to the device. Please unplug and " +"reconnect the device and or reboot." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 +msgid "Conversion Error" +msgstr "Conversion Error" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 +msgid "" +"

Could not convert: %s

It is a DRMed book. You must " +"first remove the DRM using third party tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 +msgid "Recipe Disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 +msgid "Failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 +msgid "Invalid library location" +msgstr "Invalid library location" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 +msgid "Could not access %s. Using %s as the library." +msgstr "Could not access %s. Using %s as the library." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 +msgid "" +"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." +msgstr "" +"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." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +msgid "There are active jobs. Are you sure you want to quit?" +msgstr "There are active jobs. Are you sure you want to quit?" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 +msgid "" +" is communicating with the device!
\n" +" Quitting may cause corruption on the device.
\n" +" Are you sure you want to quit?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 +msgid "WARNING: Active jobs" +msgstr "WARNING: Active jobs" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 +msgid "" +"will keep running in the system tray. To close it, choose Quit in the " +"context menu of the system tray." +msgstr "" +"will keep running in the system tray. To close it, choose Quit in the " +"context menu of the system tray." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 +msgid "" +"Latest version: %s" +msgstr "" +"Latest version: %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 +msgid "Update available" +msgstr "Update available" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 +msgid "" +"%s has been updated to version %s. See the new features. Visit the download page?" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 msgid "Edit bookmark" msgstr "" @@ -6014,93 +6539,113 @@ msgstr "" msgid "Import" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" msgstr "Configure Ebook viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 msgid "&Font options" msgstr "&Font options" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 msgid "Se&rif family:" msgstr "Se&rif family:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 msgid "&Sans family:" msgstr "&Sans family:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 msgid "&Monospace family:" msgstr "&Monospace family:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 msgid "&Default font size:" msgstr "&Default font size:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 msgid " px" msgstr " px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 msgid "Monospace &font size:" msgstr "Monospace &font size:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 msgid "S&tandard font:" msgstr "S&tandard font:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 msgid "Serif" msgstr "Serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 msgid "Sans-serif" msgstr "Sans-serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace" msgstr "Monospace" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 msgid "Remember last used &window size" msgstr "Remember last used &window size" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 msgid "Maximum &view width:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 msgid "H&yphenate (break line in the middle of large words)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 msgid "" "The default language to use for hyphenation rules. If the book does not " "specify a language, this will be used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 msgid "Default &language for hyphenation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" msgstr "&User stylesheet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 +msgid "&General" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +msgid "Double click to change a keyboard shortcut" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 +msgid "&Keyboard shortcuts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 +msgid "No results found for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:33 msgid "Options to customize the ebook viewer" msgstr "Options to customize the ebook viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "Remember last used window size" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -6108,133 +6653,193 @@ msgstr "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Hyphenate text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Default language for hyphenation rules" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 msgid "Font options" msgstr "Font options" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 msgid "The serif font family" msgstr "The serif font family" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 msgid "The sans-serif font family" msgstr "The sans-serif font family" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 msgid "The monospaced font family" msgstr "The monospaced font family" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The standard font size in px" msgstr "The standard font size in px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 msgid "The monospaced font size in px" msgstr "The monospaced font size in px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The standard font type" msgstr "The standard font type" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 +msgid "&Lookup in dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 +msgid "Scroll to the next page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:15 +msgid "Scroll to the previous page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:18 +msgid "Scroll to the next section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:21 +msgid "Scroll to the previous section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:24 +msgid "Scroll to the bottom of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:27 +msgid "Scroll to the top of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:30 +msgid "Scroll to the end of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:33 +msgid "Scroll to the start of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:36 +msgid "Scroll down" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:39 +msgid "Scroll up" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:42 +msgid "Scroll left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:45 +msgid "Scroll right" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 msgid "Book format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Go to..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "Position in book" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "Go to a reference. To get reference numbers, use the reference mode." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "Search for text in book" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:286 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 +msgid "Connecting to dict.org to lookup: %s…" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "Choose ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "Ebooks" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "Add bookmark" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "Enter title for bookmark:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "No matches found for: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "Loading flow..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:489 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "Laying out %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "Loading ebook..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "DRM Error" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "

This book is protected by DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "Could not open ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:640 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "Options to control the ebook viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:647 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "If specified, viewer window will try to come to the front when started." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:652 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -6244,59 +6849,71 @@ msgstr "" "\n" "View an ebook.\n" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:178 msgid "Ebook Viewer" msgstr "Ebook Viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 +msgid "Close dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 msgid "toolBar" msgstr "toolBar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 msgid "Next page" msgstr "Next page" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 msgid "Previous page" msgstr "Previous page" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 msgid "Font size larger" msgstr "Font size larger" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 msgid "Font size smaller" msgstr "Font size smaller" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 msgid "Find next" msgstr "Find next" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 msgid "Copy to clipboard" msgstr "Copy to clipboard" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 msgid "Reference Mode" msgstr "Reference Mode" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 msgid "Bookmark" msgstr "Bookmark" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 msgid "Toggle full screen" msgstr "Toggle full screen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 msgid "Print" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 msgid "Print eBook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 msgid "" "Library\n" "%d\n" @@ -6306,7 +6923,7 @@ msgstr "" "%d\n" "books" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 msgid "" "Reader\n" "%s\n" @@ -6316,100 +6933,100 @@ msgstr "" "%s\n" "available" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 msgid "" "Card A\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 msgid "" "Card B\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 msgid "Click to see the books available on your computer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 msgid "Click to see the books in the main memory of your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 msgid "Click to see the books on storage card A in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 msgid "Click to see the books on storage card B in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 msgid "Change Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 msgid "Swap Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 msgid "Title Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330 msgid "" "If you use the WordPlayer e-book app on your Android phone, you can access " "your calibre book collection directly on the device. To do this you have to " "turn on the content server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:334 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:295 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:336 msgid "" "You have to add the URL http://myhostname:8080 as your calibre library in " "WordPlayer. Here myhostname should be the fully qualified hostname or the IP " "address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:413 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:388 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:430 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 msgid "Invalid database" msgstr "Invalid database" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 msgid "" "

An invalid library already exists at %s, delete it before trying to move " "the existing library.
Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:455 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:496 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 msgid "welcome wizard" msgstr "" @@ -6460,14 +7077,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 msgid "" "

Demo videos

Videos demonstrating the various features of calibre are " -"available online." +"available online." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 msgid "" -"

User Manual

A User Manual is also available online." +"

User Manual

A User Manual is also available online." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 @@ -6676,7 +7292,103 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:117 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 +msgid "" +"Include 'Titles' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " "settings." @@ -6684,7 +7396,7 @@ msgstr "" "Path to the calibre library. Default is to use the path stored in the " "settings." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:196 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:200 msgid "" "%prog list [options]\n" "\n" @@ -6694,65 +7406,65 @@ msgstr "" "\n" "List the books available in the calibre database.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:204 -msgid "" -"The fields to display when listing books in the database. Should be a comma " -"separated list of fields.\n" -"Available fields: %s\n" -"Default: %%default. The special field \"all\" can be used to select all " -"fields. Only has effect in the text output format." -msgstr "" -"The fields to display when listing books in the database. Should be a comma " -"separated list of fields.\n" -"Available fields: %s\n" -"Default: %%default. The special field \"all\" can be used to select all " -"fields. Only has effect in the text output format." - -#: /home/kovid/work/calibre/src/calibre/library/cli.py:206 -msgid "" -"The field by which to sort the results.\n" -"Available fields: %s\n" -"Default: %%default" -msgstr "" -"The field by which to sort the results.\n" -"Available fields: %s\n" -"Default: %%default" - #: /home/kovid/work/calibre/src/calibre/library/cli.py:208 -msgid "Sort results in ascending order" -msgstr "Sort results in ascending order" +msgid "" +"The fields to display when listing books in the database. Should be a comma " +"separated list of fields.\n" +"Available fields: %s\n" +"Default: %%default. The special field \"all\" can be used to select all " +"fields. Only has effect in the text output format." +msgstr "" +"The fields to display when listing books in the database. Should be a comma " +"separated list of fields.\n" +"Available fields: %s\n" +"Default: %%default. The special field \"all\" can be used to select all " +"fields. Only has effect in the text output format." #: /home/kovid/work/calibre/src/calibre/library/cli.py:210 msgid "" -"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 " -"to do no filtering." +"The field by which to sort the results.\n" +"Available fields: %s\n" +"Default: %%default" msgstr "" -"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 " -"to do no filtering." +"The field by which to sort the results.\n" +"Available fields: %s\n" +"Default: %%default" #: /home/kovid/work/calibre/src/calibre/library/cli.py:212 -msgid "" -"The maximum width of a single line in the output. Defaults to detecting " -"screen size." -msgstr "" -"The maximum width of a single line in the output. Defaults to detecting " -"screen size." - -#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 -msgid "The string used to separate fields. Default is a space." -msgstr "The string used to separate fields. Default is a space." +msgid "Sort results in ascending order" +msgstr "Sort results in ascending order" #: /home/kovid/work/calibre/src/calibre/library/cli.py:214 msgid "" +"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 " +"to do no filtering." +msgstr "" +"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 " +"to do no filtering." + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:216 +msgid "" +"The maximum width of a single line in the output. Defaults to detecting " +"screen size." +msgstr "" +"The maximum width of a single line in the output. Defaults to detecting " +"screen size." + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 +msgid "The string used to separate fields. Default is a space." +msgstr "The string used to separate fields. Default is a space." + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 +msgid "" "The prefix for all file paths. Default is the absolute path to the library " "folder." msgstr "" "The prefix for all file paths. Default is the absolute path to the library " "folder." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:221 msgid "" "The format in which to output the data. Available choices: %s. Defaults is " "text." @@ -6760,15 +7472,15 @@ msgstr "" "The format in which to output the data. Available choices: %s. Defaults is " "text." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:230 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:234 msgid "Invalid fields. Available fields:" msgstr "Invalid fields. Available fields:" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:237 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:241 msgid "Invalid sort field. Available fields:" msgstr "Invalid sort field. Available fields:" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:308 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:312 msgid "" "The following books were not added as they already exist in the database " "(see --duplicates option):" @@ -6776,7 +7488,7 @@ msgstr "" "The following books were not added as they already exist in the database " "(see --duplicates option):" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:331 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:335 msgid "" "%prog add [options] file1 file2 file3 ...\n" "\n" @@ -6790,31 +7502,31 @@ msgstr "" "directories, see\n" "the directory related options below.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:340 -msgid "" -"Assume that each directory has only a single logical book and that all files " -"in it are different e-book formats of that book" -msgstr "" -"Assume that each directory has only a single logical book and that all files " -"in it are different e-book formats of that book" - -#: /home/kovid/work/calibre/src/calibre/library/cli.py:342 -msgid "Process directories recursively" -msgstr "Process directories recursively" - #: /home/kovid/work/calibre/src/calibre/library/cli.py:344 msgid "" +"Assume that each directory has only a single logical book and that all files " +"in it are different e-book formats of that book" +msgstr "" +"Assume that each directory has only a single logical book and that all files " +"in it are different e-book formats of that book" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:346 +msgid "Process directories recursively" +msgstr "Process directories recursively" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:348 +msgid "" "Add books to database even if they already exist. Comparison is done based " "on book titles." msgstr "" "Add books to database even if they already exist. Comparison is done based " "on book titles." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:354 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:358 msgid "You must specify at least one file to add" msgstr "You must specify at least one file to add" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:370 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:374 msgid "" "%prog remove ids\n" "\n" @@ -6828,11 +7540,11 @@ msgstr "" "separated list of id numbers (you can get id numbers by using the list " "command). For example, 23,34,57-85\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:385 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:389 msgid "You must specify at least one book to remove" msgstr "You must specify at least one book to remove" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:404 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:408 msgid "" "%prog add_format [options] id ebook_file\n" "\n" @@ -6846,15 +7558,15 @@ msgstr "" "identified by id. You can get id by using the list command. If the format " "already exists, it is replaced.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:419 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:423 msgid "You must specify an id and an ebook file" msgstr "You must specify an id and an ebook file" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:424 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:428 msgid "ebook file must have an extension" msgstr "ebook file must have an extension" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:432 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:436 msgid "" "\n" "%prog remove_format [options] id fmt\n" @@ -6870,11 +7582,11 @@ msgstr "" "by using the list command. fmt should be a file extension like LRF or TXT or " "EPUB. If the logical book does not have fmt available, do nothing.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:449 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:453 msgid "You must specify an id and a format" msgstr "You must specify an id and a format" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:467 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:471 msgid "" "\n" "%prog show_metadata [options] id\n" @@ -6890,15 +7602,15 @@ msgstr "" "id.\n" "id is an id number from the list command.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:475 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:479 msgid "Print metadata in OPF form (XML)" msgstr "Print metadata in OPF form (XML)" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:484 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:488 msgid "You must specify an id" msgstr "You must specify an id" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:497 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:501 msgid "" "\n" "%prog set_metadata [options] id /path/to/metadata.opf\n" @@ -6920,11 +7632,11 @@ msgstr "" "can get a quick feel for the OPF format by using the --as-opf switch to the\n" "show_metadata command.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:513 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:517 msgid "You must specify an id and a metadata file" msgstr "You must specify an id and a metadata file" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:533 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:537 msgid "" "%prog export [options] ids\n" "\n" @@ -6942,27 +7654,61 @@ msgstr "" "(in\n" "an opf file). You can get id numbers from the list command.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:541 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:545 msgid "Export all books in database, ignoring the list of ids." msgstr "Export all books in database, ignoring the list of ids." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:543 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:547 msgid "Export books to the specified directory. Default is" msgstr "Export books to the specified directory. Default is" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:545 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:549 msgid "Export all books into a single directory" msgstr "Export all books into a single directory" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:552 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:556 msgid "Specifying this switch will turn this behavior off." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:575 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:579 msgid "You must specify some ids or the %s option" msgstr "You must specify some ids or the %s option" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:587 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +msgid "Show detailed output information. Useful for debugging" +msgstr "Show detailed output information. Useful for debugging" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -6982,107 +7728,109 @@ msgstr "" "\n" "For help on an individual command: %%prog command --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1570 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "

Migrating old database to ebook library in %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1599 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "Copying %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1616 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "Compacting database" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1709 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1746 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1770 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:22 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 msgid "The title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:23 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 msgid "The authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 -msgid "The author sort string" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 -msgid "The tags" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 -msgid "The series" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:27 -msgid "The series number" +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 -msgid "The rating" +msgid "The tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 -msgid "The ISBN" +msgid "The series" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 -msgid "The publisher" +msgid "The series number. To get leading zeros use {series_index:0>3s}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 -msgid "The date" +msgid "The rating" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 -msgid "The published date" +msgid "The ISBN" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +msgid "The publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +msgid "The date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The calibre internal id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:43 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "Options to control saving to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:49 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 msgid "" "Normally, calibre will update the metadata in the saved files from what is " "in the calibre library. Makes saving to disk slower." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 msgid "" "Normally, calibre will write the metadata into a separate OPF file along " "with the actual e-book files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 msgid "" "Normally, calibre will save the cover in a separate file along with the " "actual e-book file(s)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 msgid "" "Comma separated list of formats to save for each book. By default all " "available books are saved." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 msgid "" "The template to control the filename and directory structure of the saved " "files. Default is \"%s\" which will save books into a per-author " @@ -7090,7 +7838,15 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:66 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 +msgid "" +"The template to control the filename and directory structure of files sent " +"to the device. Default is \"%s\" which will save books into a per-author " +"directory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -7098,29 +7854,29 @@ msgid "" "saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:72 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 msgid "" "The format in which to display dates. %d - day, %b - month, %Y - year. " "Default is: %b, %Y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:75 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Convert paths to lowercase." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:77 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:230 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:222 +#: /home/kovid/work/calibre/src/calibre/library/server.py:378 msgid "Password to access your calibre library. Username is " msgstr "Password to access your calibre library. Username is " -#: /home/kovid/work/calibre/src/calibre/library/server.py:645 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" @@ -7130,60 +7886,68 @@ msgstr "" "\n" "Start the calibre content server." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:47 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 +msgid "Path to the library folder to serve with the content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 msgid "%sUsage%s: %s\n" msgstr "%sUsage%s: %s\n" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:91 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 msgid "Created by " msgstr "Created by " -#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 msgid "" "Whenever you pass arguments to %prog that have spaces in them, enclose the " "arguments in quotation marks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:559 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 msgid "Path to the database in which books are stored" msgstr "Path to the database in which books are stored" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:561 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 msgid "Pattern to guess metadata from filenames" msgstr "Pattern to guess metadata from filenames" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:563 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 msgid "Access key for isbndb.com" msgstr "Access key for isbndb.com" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:565 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 msgid "Default timeout for network operations (seconds)" msgstr "Default timeout for network operations (seconds)" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:567 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 msgid "Path to directory in which your library of books is stored" msgstr "Path to directory in which your library of books is stored" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:569 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 msgid "The language in which to display the user interface" msgstr "The language in which to display the user interface" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:571 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 msgid "The default output format for ebook conversions." msgstr "The default output format for ebook conversions." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:575 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:577 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 msgid "Read metadata from files" msgstr "Read metadata from files" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:579 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 msgid "The priority of worker processes" msgstr "The priority of worker processes" +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 +msgid "Swap author first and last names when reading metadata" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." msgstr "" @@ -7196,44 +7960,80 @@ msgstr "" msgid "Finished" msgstr "Finished" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:93 msgid "Brazilian Portuguese" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 msgid "English (UK)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 msgid "Simplified Chinese" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 msgid "Chinese (HK)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 msgid "Traditional Chinese" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 msgid "English" msgstr "English" +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +msgid "English (Australia)" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 -msgid "English (AU)" +msgid "English (New Zealand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 -msgid "English (CA)" +msgid "English (Canada)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 -msgid "English (IND)" +msgid "English (India)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +msgid "English (Thailand)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +msgid "English (Cyprus)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +msgid "English (Pakistan)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +msgid "English (Singapore)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +msgid "English (Yemen)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 +msgid "Dutch (BE)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 @@ -7256,21 +8056,21 @@ msgstr "Failed to authenticate with server: %s" msgid "Control email delivery" msgstr "Control email delivery" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:101 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:123 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:103 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:125 msgid "Unknown feed" msgstr "Unknown feed" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:141 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:143 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:166 msgid "Untitled article" msgstr "Untitled article" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:17 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 msgid "Download periodical content from the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:32 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 msgid "" "Useful for recipe development. Forces max_articles_per_feed to 2 and " "downloads at most 2 feeds." @@ -7278,106 +8078,119 @@ msgstr "" "Useful for recipe development. Forces max_articles_per_feed to 2 and " "downloads at most 2 feeds." -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:35 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 msgid "Username for sites that require a login to access content." msgstr "Username for sites that require a login to access content." -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:38 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:42 msgid "Password for sites that require a login to access content." msgstr "Password for sites that require a login to access content." +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:46 +msgid "" +"Do not download latest version of builtin recipes from the calibre server" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 msgid "Unknown News Source" msgstr "Unknown News Source" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:507 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:590 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "Download finished" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:592 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "Failed to download the following articles:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:598 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "Failed to download parts of the following articles:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:600 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr " from " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:602 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "\tFailed links:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:683 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:704 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "Fetching feeds..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:708 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "Got feeds from index page" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:714 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "Trying to download cover..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:768 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "Starting download [%d thread(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:784 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "Feeds downloaded to %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:794 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "Could not download cover: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:801 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "Downloading cover from %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:927 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "Untitled Article" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:998 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "Article downloaded: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1009 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "Article download failed: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1026 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "Fetching feed" -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:43 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 msgid "You" msgstr "You" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:172 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:181 msgid "Scheduled" msgstr "Scheduled" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:173 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:182 msgid "Custom" msgstr "Custom" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 msgid "" "%prog URL\n" "\n" @@ -7387,11 +8200,11 @@ msgstr "" "\n" "Where URL is for example http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 msgid "Base directory into which URL is saved. Default is %default" msgstr "Base directory into which URL is saved. Default is %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -7399,7 +8212,7 @@ msgstr "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -7407,7 +8220,7 @@ msgstr "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -7415,7 +8228,7 @@ msgstr "" "The maximum number of files to download. This only applies to files from tags. Default is %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -7423,7 +8236,7 @@ msgstr "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -7431,7 +8244,7 @@ msgstr "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -7441,7 +8254,7 @@ msgstr "" "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:478 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7455,13 +8268,12 @@ msgstr "" "filter-regexp and --match-regexp are specified, then --filter-regexp is " "applied first." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:480 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "Do not download CSS stylesheets." msgstr "Do not download CSS stylesheets." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 -msgid "Show detailed output information. Useful for debugging" -msgstr "Show detailed output information. Useful for debugging" +#~ msgid "Useful for debugging." +#~ msgstr "Useful for debugging." #~ msgid "Number of colors for grayscale image conversion. Default: %default" #~ msgstr "Number of colors for grayscale image conversion. Default: %default" @@ -7475,6 +8287,23 @@ msgstr "Show detailed output information. Useful for debugging" #~ msgid "Remove a directory from the frequently used directories list" #~ msgstr "Remove a directory from the frequently used directories list" +#~ msgid "" +#~ "See the User Manual for more help" +#~ msgstr "" +#~ "See the User Manual for more help" + +#~ msgid "" +#~ "

For help visit %s.kovidgoyal.net
" +#~ msgstr "" +#~ "

For help visit %s.kovidgoyal.net
" + +#~ msgid "Output file. Default is derived from input filename." +#~ msgstr "Output file. Default is derived from input filename." + #~ msgid "%d recipes" #~ msgstr "%d recipes" @@ -7494,6 +8323,18 @@ msgstr "Show detailed output information. Useful for debugging" #~ "

Could not convert: %s

It is a DRMed book. You must " #~ "first remove the DRM using 3rd party tools." +#~ msgid "" +#~ "%s has been updated to version %s. See the new features. " +#~ "Visit the download page?" +#~ msgstr "" +#~ "%s has been updated to version %s. See the new features. " +#~ "Visit the download page?" + +#~ msgid "Customize %s" +#~ msgstr "Customize %s" + #~ msgid "You must set a username and password for %s" #~ msgstr "You must set a username and password for %s" @@ -7535,3 +8376,9 @@ msgstr "Show detailed output information. Useful for debugging" #~ msgid "Hungarian" #~ msgstr "Hungarian" + +#~ msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." +#~ msgstr "This profile is intended for the SONY PRS line. The 500/505/700 etc." + +#~ msgid "Kovid Goyal and John Schember" +#~ msgstr "Kovid Goyal and John Schember" diff --git a/src/calibre/translations/es.po b/src/calibre/translations/es.po index f6824e5648..230ea68f65 100644 --- a/src/calibre/translations/es.po +++ b/src/calibre/translations/es.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-23 00:18+0000\n" -"PO-Revision-Date: 2010-01-22 18:24+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-31 21:38+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Spanish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-23 04:43+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -33,7 +33,7 @@ msgstr "No hacer nada en absoluto" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:414 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -130,12 +130,12 @@ msgstr "No hacer nada en absoluto" #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1547 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1549 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1665 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 @@ -163,7 +163,7 @@ msgstr "Escritor de metadados" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 msgid "Catalog generator" -msgstr "" +msgstr "Generador de catálogo" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" @@ -463,11 +463,11 @@ msgstr "" msgid "Communicate with the Binatone Readme eBook reader." msgstr "Comunicar con el lector de libros electrónicos Binatone Readme." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Comunicar con el teléfono Blackberry" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -475,7 +475,7 @@ msgstr "Kovid Goyal" #: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." -msgstr "" +msgstr "Comunicarse con el Cybook Gen 3 / Opus libro electrónico." #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." @@ -586,6 +586,8 @@ msgid "" "Comma separated list of metadata fields to turn into collections on the " "device. Possibilities include: " msgstr "" +"Lista (separada por comas) de campos de metadatos para convertir en " +"colecciones en el dispositivo. Las posibilidades son: " #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 @@ -663,7 +665,7 @@ msgstr "No hay suficiente espacio libre en la tarjeta de almacenamiento" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1447 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" msgstr "Noticias" @@ -819,8 +821,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Dejar imágenes sin procesar" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 msgid "Page" msgstr "Página" @@ -1184,9 +1186,9 @@ msgid "" "paragraph indent, to ensure that paragraphs can be easily distinguished. " "This option controls the width of that indent." msgstr "" -"Cuando calibre remueve el espacio del párrafo, pone automáticamente una " -"identación para el párrafo, para asegurarse de que los párrafos puedan ser " -"distingidos facilmente. Esta opción controla la anchura de esta identación." +"Cuando calibre elimina el espacio entre párrafos, añade automáticamente una " +"sangría en la primera línea para que los párrafos puedan distinguirse " +"fácilmente. Esta opción controla la anchura de dicha sangría." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 msgid "" @@ -1827,7 +1829,7 @@ msgstr "Publicado" msgid "Rights" msgstr "Derechos" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "REVISIÓN EDITORIAL" @@ -2792,7 +2794,7 @@ msgstr "Guardado" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" -msgstr "" +msgstr "Opciones CSV/XML" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 @@ -2859,31 +2861,38 @@ msgstr "Formulario" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 msgid "Fields to include in output:" -msgstr "" +msgstr "Campos para incluir en la salida:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "" +msgid "E-book options" +msgstr "Opciones de libro digital" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "Catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 msgid "Tags to exclude as genres (regex):" -msgstr "" +msgstr "Etiquetas para excluir de los géneros (regex):" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 msgid "'Don't include this book' tag:" -msgstr "" +msgstr "Etiqueta para 'no incluir este libro':" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 msgid "'Mark this book as read' tag:" -msgstr "" +msgstr "Etiqueta para 'marcar este libro como leído':" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 msgid "Additional note tag prefix:" -msgstr "" +msgstr "Prefijo adicional para notas:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" -msgstr "" +msgstr "Plantilla para catalog.ui" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" @@ -3213,7 +3222,7 @@ msgstr "Eliminar es&paciado entre párrafos" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Indent size:" -msgstr "tamaño de la identación:" +msgstr "Tamaño de la sangría:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 msgid "" @@ -3858,7 +3867,7 @@ msgstr "" "ebook.com/user_manual/xpath.html\">Tutorial de XPathl.

" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 msgid "No details available." msgstr "No hay detalles disponibles." @@ -4039,7 +4048,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 msgid "Sending catalogs to device." -msgstr "" +msgstr "Enviando catálogos al dispositivo." #: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." @@ -4105,7 +4114,7 @@ msgstr "Formatos" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 msgid "Fit &cover to view" -msgstr "" +msgstr "&Ajustar la portada a la ventana" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" @@ -4126,24 +4135,26 @@ msgstr "Genera el catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 msgid "Catalog &format:" -msgstr "&Formato de catálogo:" +msgstr "&Formato del catálogo:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 msgid "" "Catalog &title (existing catalog with the same title will be replaced):" msgstr "" +"&Título del catálogo (si existe un catálogo con el mismo título será " +"reemplazado):" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 msgid "&Send catalog to device automatically" -msgstr "" +msgstr "&Enviar el catálogo automáticamente al dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 msgid "Catalog options" -msgstr "" +msgstr "Opciones de catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 msgid "Generate catalog for {0} books" -msgstr "" +msgstr "Generar catálogo para {0} libros" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" @@ -4484,7 +4495,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 msgid "Sending to &device" -msgstr "Envíando a &dispositivo" +msgstr "Enviara &dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 @@ -4717,8 +4728,8 @@ msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -"El tamaño máximo (anchuraxaltura) con el que se mostrarán las portadas. Las " -"portadas mayores se redimensionarán. " +"El tamaño máximo (anchura × altura) con el que se mostrarán las portadas. " +"Las portadas mayores se redimensionarán. " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 msgid "Max. &cover size:" @@ -6244,7 +6255,7 @@ msgstr "Personalizar atajos para" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid "Keys" -msgstr "" +msgstr "Teclas" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" @@ -6476,7 +6487,7 @@ msgstr "Convertir en bloque" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 msgid "Create catalog of books in your calibre library" -msgstr "" +msgstr "Crear catálogo de los libros en la biblioteca de calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" @@ -6503,7 +6514,7 @@ msgstr "Elija otra ubicación para la biblioteca de libros electrónicos." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 msgid "Calibre Quick Start Guide" -msgstr "" +msgstr "Guía de inicio rápido de calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" @@ -6719,23 +6730,23 @@ msgstr "Pulse el botón \"Mostrar detalles\" para ver cuáles." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 msgid "No books selected to generate catalog for" -msgstr "" +msgstr "No se han seleccionado libros para generar el catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 msgid "Generating %s catalog..." -msgstr "" +msgstr "Generando catálogo %s..." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 msgid "Catalog generated." -msgstr "" +msgstr "Catálogo generado." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 msgid "Export Catalog Directory" -msgstr "" +msgstr "Directorio para exportar catálogos" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 msgid "Select destination for %s.%s" -msgstr "" +msgstr "Seleccionar destino para %s.%s" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 msgid "Fetching news from " @@ -7030,6 +7041,8 @@ msgstr "&Idioma por defecto para división de palabras:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 msgid "&Resize images larger than the viewer window (needs restart)" msgstr "" +"Redimensionar las imágenes ma&yores que la ventana del visor (requiere " +"reinicio)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" @@ -7076,6 +7089,8 @@ msgstr "Anchura máxima de la ventana del visor, en píxeles." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" +"Redimensionar las imágenes mayores que la ventana del visor para que quepan " +"en ella" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Hyphenate text" @@ -7193,7 +7208,7 @@ msgstr "Previsualización de impresión" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 msgid "Connecting to dict.org to lookup: %s…" -msgstr "" +msgstr "Conectando con dict.org para buscar: %s..." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 msgid "Choose ebook" @@ -7274,7 +7289,7 @@ msgstr "Visor de libros electrónicos" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 msgid "Close dictionary" -msgstr "" +msgstr "Cerrar diccionario" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 msgid "toolBar" @@ -7326,11 +7341,11 @@ msgstr "Imprimir libro electrónico" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 msgid "Copy Image" -msgstr "" +msgstr "Copiar imagen" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 msgid "Paste Image" -msgstr "" +msgstr "Pegar imagen" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 msgid "" @@ -7773,6 +7788,11 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Los campos que se muestran cuando se crean catálogos de los libros en la " +"base de datos. Debe ser una lista de campos separados por comas. Los campos " +"disponibles son: %s\n" +"Valor por defecto: '%%default'\n" +"Aplicable a: formatos de salida CSV, XML" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 msgid "" @@ -7781,6 +7801,11 @@ msgid "" "Default: '%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Campo de salida por el que se ordenará.\n" +"Los campos disponibles son: author_sort, id, rating, size, timestamp, " +"title.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida CSV, XML" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" @@ -7788,15 +7813,37 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Título del catálogo generado, se usará como título en los metadatos.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Guarda la salida de las distintas fases del proceso de conversión en el " +"directorio especificado. Es útil si no está seguro de en qué etapa del " +"proceso ocurre un fallo.\n" +"Valor por defecto: '%default'None\n" +"Aplicable a: formatos de salida ePub, MOBI" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Expresión regular que describe las etiquetas que no se considerarán como " +"géneros.\n" +"Valor por defecto: '%default' excluye las etiquetas entre corchetes, por " +"ejemplo '[]'\n" +"Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:249 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7804,22 +7851,34 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Lista de palabras en las etiquetas, separadas por comas, que deben excluirse " +"de la salida. No se distinguen mayúsculas y minúsculas. --exclude-" +"tags=omitir concuerda con 'Omitir este libro' y 'tambien omitir este'.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Etiqueta que indica que el libro ya ha sido leído.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Prefijo para las etiquetas de notas de usuario, por ejemplo '*a Juan le " +"gustaría leer esto'.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:267 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7828,6 +7887,11 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Especifica el perfil de salida. En algunos casos, se requiere un perfil de " +"salida para optimizar el catálogo para un dispositivo. Por ejemplo, 'kindle' " +"o 'kindle_dx' crea un Índice estructurado con secciones y artículos.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida ePub y MOBI" #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" @@ -8131,6 +8195,14 @@ msgid "" "ouput.\n" " " msgstr "" +"\n" +" %prog catalog /ruta/al/destino.(csv|epub|mobi|xml ...) [opciones]\n" +"\n" +" Exportar un catálogo en el formato especificado por la extensión de " +"/ruta/al/destino.\n" +" Las opciones controlan cómo se muestran las entradas en el catálogo " +"generado.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:648 msgid "" @@ -8138,6 +8210,10 @@ msgid "" "If declared, --search is ignored.\n" "Default: all" msgstr "" +"Lista de ID de la base de dato, separadas por comas, para incluir en el " +"catálogo.\n" +"Si se declara, no se usará --search.\n" +"Valor por defecto: todas" #: /home/kovid/work/calibre/src/calibre/library/cli.py:652 msgid "" @@ -8145,15 +8221,18 @@ msgid "" "please see the search-related documentation in the User Manual.\n" "Default: no filtering" msgstr "" +"Filtrar los resultados según la búsqueda. Para el formato de la búsqueda, " +"véase la documentación relativa a búsquedas en el Manual de usuario.\n" +"Valor por defecto: sin filtrado" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "Mostrar información de salida detallada. Útil para la depuración" #: /home/kovid/work/calibre/src/calibre/library/cli.py:671 msgid "Error: You must specify a catalog output file" -msgstr "" +msgstr "Error: Debe especificar un fichero de salida para el catálogo" #: /home/kovid/work/calibre/src/calibre/library/cli.py:689 msgid "" @@ -8176,34 +8255,29 @@ msgstr "" "\n" "Para ver la ayuda de cada orden ejecute: %%prog orden --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1429 -msgid "Catalog" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1691 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 msgid "

Migrating old database to ebook library in %s

" msgstr "" "

Migrando la base de datos antigua a la biblioteca de libros electrónicos " "en %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1720 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 msgid "Copying %s" msgstr "Copiando %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1737 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 msgid "Compacting database" msgstr "Compactando la base de datos" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1830 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 msgid "Checking SQL integrity..." msgstr "Comprobando la integridad de SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1867 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 msgid "Checking for missing files." msgstr "Comprobando ficheros inexistentes." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1889 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 msgid "Checked id" msgstr "ID comprobado" @@ -8220,6 +8294,8 @@ msgid "" "The author sort string. To use only the first letter of the name use " "{author_sort[0]}" msgstr "" +"La cadena para ordenar autores. Para usar sólo la primera letra del nombre, " +"use {author_sort[0]}" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 msgid "The tags" @@ -8232,6 +8308,8 @@ msgstr "La serie" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 msgid "The series number. To get leading zeros use {series_index:0>3s}" msgstr "" +"El número de la serie. Para introducir ceros a la izquireda, use " +"{series_index:0>3s}" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 msgid "The rating" @@ -8346,7 +8424,7 @@ msgstr "Convertir las rutas a minúsculas." msgid "Replace whitespace with underscores." msgstr "Sustituir espacios en blanco con guiones bajos." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:255 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "Los formatos solicitados no están disponibles" @@ -8355,7 +8433,7 @@ msgid "Password to access your calibre library. Username is " msgstr "" "Contraseña para acceder a la biblioteca de calibre. El nombre de usuario es " -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" @@ -8365,7 +8443,7 @@ msgstr "" "\n" "Iniciar el servidor de contenidos de calibre." -#: /home/kovid/work/calibre/src/calibre/library/server.py:858 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "" "Ruta a la carpeta de biblioteca a servir con el servidor de contenido" @@ -8443,7 +8521,7 @@ msgstr "Detenido" msgid "Finished" msgstr "Terminado" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 msgid "Working..." msgstr "Trabajando..." @@ -8477,7 +8555,7 @@ msgstr "Inglés (Australia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 msgid "English (New Zealand)" -msgstr "" +msgstr "Inglés (Nueva Zelanda)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 msgid "English (Canada)" @@ -8505,7 +8583,7 @@ msgstr "Inglés (Singapur)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Yemen)" -msgstr "" +msgstr "Inglés (Yemen)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "German (AT)" @@ -8583,76 +8661,76 @@ msgstr "" msgid "Unknown News Source" msgstr "Fuente de noticias desconocida" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "La receta \"%s\" necesita usuario y contraseña." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Descarga finalizada" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Fallo al descargar los siguientes artículos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Fallo al descargar partes de los siguientes artículos" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " de " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "\tEnlaces fallidos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "No se pudo obtener el artículo. Ejecute calibre con -vv para ver el motivo" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "Obteniendo canales de noticias..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "Se obtivieron canales de noticias de la página principal" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Intentando descargar la portada..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "Iniciando la descarga [%d proceso(s)]" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "Canales de noticias descargados en %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "No se pudo descargar la portada: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Descargando la portada desde %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Artículo sin título" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Artículo descargado: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "Falló la descarga del artículo: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "Obteniendo canal de noticias" @@ -8671,7 +8749,7 @@ msgstr "Planificado" msgid "Custom" msgstr "Personalizado" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8681,12 +8759,12 @@ msgstr "" "\n" "Donde URL es por ejemplo http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" "Directorio base en el cual se almacena la URL. Por defecto es %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -8694,7 +8772,7 @@ msgstr "" "Tiempo máximo de espera de respuesta del servidor (en segundos). Valor por " "defecto: %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8702,7 +8780,7 @@ msgstr "" "Máximo número de niveles de recursión, es decir, profundidad de los enlaces " "a seguir. Valor por defecto: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8710,7 +8788,7 @@ msgstr "" "El número máximo de ficheros a descargar. Esto se aplica solamente a " "ficheros procedentes de etiquetas . Por defecto es %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8718,7 +8796,7 @@ msgstr "" "Intervalo minimo en segundos entre adquisiciones de datos consecutivas. " "Valor defecto: %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8726,7 +8804,7 @@ msgstr "" "Codificación para los sitios web que está intentando descargar. Por defecto " "se intentará averiguar la codificación." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8737,7 +8815,7 @@ msgstr "" "de las expresiones regulares, se seguirá el enlace. Por defecto todos los " "enlaces se siguen." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8751,7 +8829,7 @@ msgstr "" "enlace se descarta. Si ambas opciones --filter-regexp y --match-regexp se " "especifican, entonces --filter-regexp se aplica primero." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "No descargar estilos CSS." diff --git a/src/calibre/translations/fr.po b/src/calibre/translations/fr.po index 42444db069..f3f34b6deb 100644 --- a/src/calibre/translations/fr.po +++ b/src/calibre/translations/fr.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.22\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:45+0000\n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-09 05:43+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-02-10 04:41+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -30,7 +30,7 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,19 +38,19 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +65,18 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +99,10 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,23 +113,23 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -513,6 +513,10 @@ msgstr "Interface de l'appareil" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Communique avec le lecteur d'ebook IRex Digital Reader 1000." +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Communique avec le lecteur Iriver Story." @@ -655,12 +659,12 @@ msgid "There is insufficient free space on the storage card" msgstr "Espace insuffisant sur la carte mémoire" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "Informations" @@ -818,8 +822,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "N'applique aucun traitement sur l'image" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Page" @@ -1773,83 +1777,83 @@ msgstr "La famille de police monospace à inclure" msgid "Comic" msgstr "Bande dessinées" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Titre" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Auteur(s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "Éditeur" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Producteur" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Commentaires" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Etiquettes" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Séries" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Langue" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "Horodatage" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "Publié" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "Droits" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "LIGNE EDITORIALE" @@ -2078,7 +2082,7 @@ msgstr "" "LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Couverture" @@ -2109,74 +2113,74 @@ msgstr "Titre pour les tables des matières générées." msgid "Disable compression of the file contents." msgstr "Désactiver la compression du contenu du fichier." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Tous les articles" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Page de titre" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Tables des matières" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "Glossaire" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "Remerciements" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Bibliographie" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "Marque de l'imprimeur" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "Copyright" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "Dédicace" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "Epigraphe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "Avant-propos" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "Liste d'illustrations" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "Liste de Tables" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Notes" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "Préface" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Texte principal" @@ -2546,10 +2550,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Ce fichier RTF a une fonctionnalité non supportée par calibre. Le convertir " -"en HTML d'abord et puis essayer le." +"Ce fichier RTF comporte une fonctionnalité qui n'est pas supportée par " +"Calibre. Convertissez-le en HTML puis réessayez.\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2621,85 +2627,85 @@ msgstr "" "n'espace n'est présent. Autorise aussi la valeur maximale de la longueur de " "ligne à être en dessous du minimum" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" "Par défaut, envoyer le fichier dans la carte mémoire à la place de la " "mémoire principale" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Confirmer avant la suppression" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Taille de la barre d'icone" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Affiche les libellés dans la barre d'outils" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Géométrie de l'écran principal" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Avertir lorsqu'une nouvelle version est disponible" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Utiliser les chiffres romains pour les numéros de séries" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Trier la liste des étiquettes par popularité" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" "Nombre de couvertures à afficher dans le mode de navigation par couverture" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Valeurs par défaut pour la conversion vers LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Options pour l'afficheur d'ebook LFR" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formats qui sont affichés par l'afficheur interne" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Colonnes affichées dans la liste de livres" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" "Démarrer automatiquement le serveur de contenu au démarrage de l'application" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Anciennes informations conservées dans la base" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Afficher l'icône dans la zone de notification" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Envoyer les News téléchargées vers l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" "Supprimer les livres de la librairie après les avoir téléchargés dans " "l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" @@ -2707,83 +2713,88 @@ msgstr "" "Afficher la navigation par couverture dans une fenêtre séparée au lieu de la " "fenêtre principale de calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Désactiver les alertes dans la zone de notification" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Action par défaut à réaliser quand le bouton 'envoyer au lecteur' est cliqué" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Nombre maximum de processus de travail en attente" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Télécharger les métadonnés sociales (étiquettes/classement/etc...)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "Remplacer l'auteur et le titreavec de nouvelles metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" "Limiter le nombre maximum de travaux simultanés au nombre de processeurs." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Copié" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Copier" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Copier dans le Presse-papiers" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Choisir les fichiers" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "Recherche dans" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "Ajout..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "Cherche dans tous les sous-répertoires..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "Chemin de l'erreur" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "Le chemin spécifié ne peut pas être traité." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Aucun livre" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "Aucun livre trouvé" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "Ajouté" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "L'ajout a échoué" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2792,11 +2803,11 @@ msgstr "" "redémarrer calibre et ajouter les livres avec un incrément plus petit, " "jusqu'à ce que vous trouviez le problème." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "Des doublons ont été détectés !" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -2804,15 +2815,15 @@ msgstr "" "Des livres avec des titres identiques à ceux qui suivent existent déjà la " "base. Voulez-vous quand-même les ajouter ?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "Ajoute les dupliqués..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "Sauvegarde..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "Sauvegardé" @@ -2827,7 +2838,7 @@ msgstr "Options CSV/XML" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2843,7 +2854,7 @@ msgstr "Options spécifiques à" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2852,7 +2863,7 @@ msgid "output" msgstr "sortie" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2862,7 +2873,7 @@ msgstr "sortie" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2888,32 +2899,53 @@ msgid "Fields to include in output:" msgstr "Champs à inclure en sortie:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "Options E-book" +msgid "E-book options" +msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "Catalogue" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "Etiquettes pour exclure les genres (regex):" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "Etiquette 'Ne pas inclure ce livre':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "Etiquette 'Marquer ce livre comme lu':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "Trier les chiffres comme du texte" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -3050,12 +3082,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3408,7 +3440,7 @@ msgid "Change the title of this book" msgstr "Modifie le titre du livre" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Auteurs : " @@ -3426,7 +3458,7 @@ msgstr "" "virgules." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Editeur : " @@ -3437,7 +3469,7 @@ msgid "Ta&gs: " msgstr "Ta&gs : " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3447,15 +3479,15 @@ msgstr "" "
Cela peut être n'importe quels mots, séparés par des virgules." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Séries :" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3466,30 +3498,42 @@ msgstr "Liste de séries connues. Vous pouvez ajouter de nouvelles séries." msgid "Book " msgstr "Livre " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "Sortie MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "Par défaut" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "&Titre de la Table des Matières:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "Redimensionner les images pour des appareils Palm" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "Utiliser le &tri par auteur pour auteur" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "Désactiver la compression du contenu du fichier" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "Ne pas ajouter la Table des Matières au livre" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Mise en page" @@ -3577,7 +3621,7 @@ msgid "RB Output" msgstr "Sortie RB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "Choisir le format à afficher" @@ -3885,7 +3929,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Pas de détail disponible." @@ -4112,8 +4156,8 @@ msgstr "Sauvegarder le modèle:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Chemin" @@ -4123,7 +4167,7 @@ msgstr "Chemin" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -4131,7 +4175,7 @@ msgstr "Formats" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 msgid "Fit &cover to view" -msgstr "" +msgstr "Couverture à afficher" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" @@ -4146,7 +4190,7 @@ msgid "My Books" msgstr "Mes Livres" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "Générer le catalogue" @@ -4278,131 +4322,131 @@ msgstr "" msgid "new email address" msgstr "Nouvelle adresse email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Erreur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "L'installation des outils en ligne de commande a échouée." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Outils en ligne de commande installés." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Outils en ligne de commande installés dans" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Si vous déplacez calibre.app, vous devez réinstaller les outils en ligne de " "commande." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Pas de répertoire valide pour les plugins" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s n'est pas un répertoire valide pour les plugins" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Choisir le plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Le plugin ne peut pas être désactivé" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Le plugin %s ne peut pas être désactivé" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Le plugin ne peut pas être personnalisé" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Le plugin %s ne peut pas être personnalisé" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Personnaliser" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Impossible de supprimer les plugins natifs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " ne peut pas être retiré. C'est un plugin natif. Essayer plutôt de le " "désactiver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Journal d'erreur:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Journal des accès:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "A échoué lors du démarrage du serveur de contenu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Sélectionner l'emplacement pour les livres" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Taille invalide" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "La taille %s est invalide. Doit être au format largeurxhauteur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Chemin de la database invalide" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Chemin de la database invalide " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Doit être un répertoire." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Chemin de la database invalide.
Erreur en écriture " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Vérifier l'intégrité de la base de données" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "La vérification de l'intégrité de la base de données a échouée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Des incohérences ont été trouvées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4502,18 +4546,22 @@ msgid "" "Send to Device button. This setting can be overriden for individual devices " "by customizing the device interface plugins in Preferences->Plugins" msgstr "" +"Ici vous pouvez contrôler la façon dont Calibre sauvegardera vos ebooks " +"quand vous cliquez sur le bouton \"Envoyer au lecteur\". Ces paramètres " +"peuvent être outrepassés par votre lecteur en personnalisant l'interface de " +"gestion des pluggins des lecteurs dans Préférences->Plugins" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 msgid "Sending to &device" msgstr "Envoi vers l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Préférences" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4521,25 +4569,29 @@ msgstr "" "&Localisation des ebooks (Les ebooks sont stockés dans les répertoires triés " "par auteur et les métadonnées sont stockées dans le fichier metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Choisir un nouvel emplacement pour la base de données" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Envoyer une notification quand une nouvelle version est disponible." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" "Télécharger les métadonnées &sociales (étiquettes/classement/etc...) par " "défaut" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "&Timeout par défaut pour les connexions réseau :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4547,159 +4599,159 @@ msgstr "" "Indiquer le timeout par défaut pour les recherches réseau (c-à-d le temps " "utilisé pour aller rechercher l'information par internet)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " secondes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Choisir la &langue (nécessite un redémarrage):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Normale" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Haute" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Basse" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "&Priorité du travail:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Format de &sortie préféré:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Ordre préféré pour le format d'entrée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Utiliser les chiffres &romains pour les numéros de séries" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" "Ac&tiver l'affichage dans la zone de notification (redémarrage nécessaire)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Afficher les alertes dans la zone de ¬ification" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" "Afficher la navigation par couverture dans une fenêtre séparée (redémarrage " "nécessaire)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Rechercher lors de la saisie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Envoyer automatiquement les i&nformations vers le lecteur d'ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" "Supprimer les News de la librairie lorsque l'envoi est automatique vers " "l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "&Nombre de couvertures à afficher dans le mode navigation (nécessite un " "redémarrage):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Barre d'outils" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Large" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Moyen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Petit" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "Taille des boutons dans la barre d'outils" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Afficher le &texte pour les boutons de la barre d'outils" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Sélectionner les &colonnes visibles dans la vue librairie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Utiliser l'afficheur interne pour:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Ajouter une adresse email où les livres seront envoyés" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "&Ajouter un email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Par &défaut" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "&Supprimer un email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" "calibre peut envoyer vos livres vers vous (ou votre lecteur) par email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" "Nombre &maximum de processus de travail en attente (nécessite un " "redémarrage):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "Vérifier l'intégrité de la base de données" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "&Installer les outils en ligne de commande" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "Ouvrir le répertoire de &configuration de calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Limiter le nombre max de travaux simultanés au nombre de cœurs de " "processeurs disponibles" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "Déboguer la &détection de l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4710,25 +4762,25 @@ msgstr "" "monde. Toutes modifications des paramètres ne prendra effet qu'après un " "redémarrage du serveur." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "&Port du serveur:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "Nom d'&utilisateur:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "Mot de &passe :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4736,7 +4788,7 @@ msgstr "" "Si vous laisser le mot de passe à vide, tout le monde pourra accéder à votre " "collection de livres en utilisant une interface web." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4744,41 +4796,41 @@ msgstr "" "Taille maximale (largeurxhauteur) pour l'affichage des couvertures. Les " "couvertures plus larges sont redimensionnées. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Taille max. de la couverture:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Montrer le mot de passe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "Nombre d'articles OPDS max. par requête:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "Démarrer le &Serveur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "Arrêter le serveur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Tester le serveur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Lancer &automatiquement le serveur au démarrage" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Afficher les logs du &serveur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4795,7 +4847,7 @@ msgstr "" "Stanza de votre iPhone. Ici nomhote doit être le nom d'hôte complet ou " "l'adresse IP de l'ordinateur sur lequel calibre est démarré." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4803,27 +4855,27 @@ msgstr "" "Ici vous pouvez personnaliser le comportement de Calibre en choisissant les " "plugins que vous souhaitez utiliser." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Activer/Désactiver le plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "Personnaliser le plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "Supprimer le plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Ajouter un nouveau plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "&Fichier plugin:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Ajouter" @@ -4894,44 +4946,44 @@ msgstr "Triage Auteur" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Cherche les métadonnées..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Impossible de trouver les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" "Le téléchargement des métadonnées semble s'être arrêté. Essayer de nouveau " "plus tard." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Avertissement" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Impossible de récupérer les métadonnées de:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Aucune métadonnée trouvée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Aucune métadonnée trouvée, essayer en modifiant le titre et l'auteur ou la " "clé ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Récupérer des métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4944,31 +4996,35 @@ msgstr "" "href=\"http://www.isbndb.com\">compte gratuit et entrer votre clef " "d'accès ci-dessous." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "Clef d'&accès" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Récupérer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Résultats correspondants" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" "Sélectionnez le livre qui correspond le mieux au votre dans la liste ci-" "dessous." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Télécharger les métadonnées &sociales (étiquettes/classement/etc...) pour le " "livre sélectionné" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Détail du travail" @@ -4989,24 +5045,24 @@ msgstr "Afficher les &détails du travail" msgid "Stop &all jobs" msgstr "Arrêter tous les travaux" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Editer les informations de Métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Informations métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "Effectuer un tri a&utomatique par auteur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "Tri par auteur: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -5015,48 +5071,52 @@ msgstr "" "Définit comment l'auteur de ce livre doit être classé. Par exemple, Charles " "Dickens peut être classé comme Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Note :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Note de ce livre. de 0 à 5 étoiles" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "Aucune modification" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " étoiles" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Ajouter des étiquettes: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Ouvre l'éditeur de mots-clefs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "&Supprime des étiquettes :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" "Liste d'étiquettes séparées par des virgules à supprimer des livres. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Supprimer le &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "Intervertir le titre et l'auteur" @@ -5111,71 +5171,71 @@ msgstr "La couverture du format %s est invalide" msgid "Abort the editing of all remaining books" msgstr "Abandonner l'édition des livres restants" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "Le numéro ISBN est valide" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "Le numéro ISBN est invalide" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "Télécharge la couverture..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "Erreur à la récupération de l'image de couverture" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "Erreur à la récupération de l'image de couverture.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "Timeout lors du téléchargement." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "Impossible de trouver la couverture de ce livre. Essayez déjà de spécifier " "le numéro ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Mauvaise couverture" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "La couverture n'est pas une image valide" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "Il y a eu des erreurs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "" "Il y a eu des erreurs lors du téléchargement des métadonnées sociales" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "Impossible de récupérer les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" "Vous devez spécifier au moins un ISBN, un titre, des auteurs ou un éditeur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "Permission refusée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" "Impossible d'ouvrir %s. Est-il en cours d'utilisation par un autre programme " @@ -5908,23 +5968,23 @@ msgstr "Indisponible" msgid " - Jobs" msgstr " - Travaux" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Taille (Mo)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Date" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Note" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5932,15 +5992,15 @@ msgstr "Note" msgid "None" msgstr "Aucun" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "Livre %s of %s." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "Interdit" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -5948,11 +6008,11 @@ msgstr "" "Déplacer vers un appareil n'est pas supporté. Ajouter d'abord le livre dans " "la librairie calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "Format" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "Double clic pour m' éditer

" @@ -5981,7 +6041,7 @@ msgid "No matches for the search phrase %s were found." msgstr "Aucun résultat pour la recherche %s." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "Aucun résultat" @@ -6028,52 +6088,52 @@ msgstr "Ouvrir le livre" msgid "Configure" msgstr "Configurer" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Utiliser la librairie présente dans le répertoire spécifié." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Démarrer en mode minimisé dans la zone de notification." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Loggue les informations de débogage dans la console" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Ne pas vérifier les mises à jour" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Si vous êtes sûr qu'il n'est pas démarré" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Impossible de lancer " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s est déjà démarré." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "peut être démarré dans la zone de notification, dans la" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "région en haut et à droite de l'écran." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "région en bas et à droite de l'écran." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "Essayer de redémarrer l'ordinateur." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "Essayer de supprimer le fichier" @@ -6235,11 +6295,11 @@ msgstr "&Quitter" msgid "ERROR: Unhandled exception" msgstr "ERREUR: Exception non traitée" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Le livre n'a ni titre ni ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Aucune correspondance pour ce livre" @@ -6305,7 +6365,7 @@ msgstr "Effacer" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 msgid "&Alternate shortcut:" -msgstr "" +msgstr "Changer les raccourcis" #: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 msgid "Jobs:" @@ -6374,11 +6434,11 @@ msgstr "Mise en file d'attente " msgid "Fetch news from " msgstr "Récupérer des News de " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "Conversion existante" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6473,7 +6533,7 @@ msgid "Save to disk in a single directory" 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:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "Sauvegarder seulement le format %s vers le disque" @@ -6529,7 +6589,7 @@ msgid "Calibre Library" msgstr "Librairie calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "Choisir un emplacement pour votre librairie d'ebook" @@ -6639,33 +6699,33 @@ msgstr "Archives" msgid "Supported books" msgstr "Livres supportés" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Impossible de lire les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Impossible de lire les métadonnées à partir de" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "Impossible de supprimer" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "Aucun livre sélectionné" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "Choisir les formats à supprimer" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "Choisir les formats à ne pas supprimer" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6673,131 +6733,137 @@ msgstr "" "Les livres sélectionnés vont être supprimés définitivement et les " "fichiers seront supprimés de votre ordinateur. Etes-vous sûr ?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Suppression des livres dans l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Impossible de télécharger les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "Aucun livre sélectionné" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "Métadonnées sociales" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "couvertures" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Télécharge les livres %s sur %d" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Le téléchargement d'une partie des métadonnées a échoué" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Le téléchargement des métadonnées a échoué pour :" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Le téléchargement des métadonnées a échoué:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Impossible d'éditer les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Impossible de sauvegarder sur le disque" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Choisir le répertoire de destination" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Erreur pendant la sauvegarde" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Il y a eu une erreur lors de la sauvegarde." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Impossible de sauvegarder certains livres" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "Cliquer le bouton afficher les détails pour voir lesquels." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "Aucun livre sélectionné pour générer le catalogue pour" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "Génère le catalogue %s..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "Catalogue généré." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "Répertoire d'export du catalogue" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" msgstr "Sélectionner la destination pour %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "Récupération des News de " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr " récupéré." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "Conversion impossible" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "Démarrer la conversion de %d livre(s)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "Impossible de visualiser" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "Impossible d'ouvrir le répertoire" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "Plusieurs livres sélectionnés" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6809,32 +6875,32 @@ msgstr "" "réponses de l'ordinateur. Une fois démarré le processus ne peut pas être " "arrêté avant la fin. Voulez-vous continuer ?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "%s n'a pas de format disponible." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "Configuration impossible" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "Impossible de configurer pendant que des travaux sont en cours." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "Pas d'information détaillée disponible" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" "Pas d'information détaillée disponible pour les livres dans l'appareil." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "Erreur pendant la communication avec le lecteur électronique" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6843,12 +6909,12 @@ msgstr "" "lecteur électronique. Veuillez déconnecter et reconnecter le lecteur " "électronique et redémarrer." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "Erreur lors de la conversion" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6857,23 +6923,23 @@ msgstr "" "href=\"%s\">DRM. Vous devez d'abord enlever les DRM avec des outils " "tiers." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "Échoué" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "Emplacement de la librairie invalide" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "Impossible d'accéder à %s. Utilise %s comme librairie." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." @@ -6882,11 +6948,11 @@ msgstr "" "Si vous le trouvez utile, pensez à donner afin de supporter son " "développement." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Il y a des travaux actifs. Voulez-vous vraiment finir ?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6897,11 +6963,11 @@ msgstr "" "l'appareil.
\n" " Êtes-vous sûr de vouloir quitter ?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "ATTENTION: Travaux actifs" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6909,7 +6975,7 @@ msgstr "" "continuera à tourner dans la zone de notification. Pour le fermer, choisir " "Quitter dans le menu contextuel de la zone de notification." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" @@ -6917,11 +6983,11 @@ msgstr "" "Dernière version: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "Mise à jour disponible" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -7063,6 +7129,8 @@ msgstr "&Langue par défaut pour la césure:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 msgid "&Resize images larger than the viewer window (needs restart)" msgstr "" +"&Redimensionner les images plus grandes que la fenêtre du visualisateur " +"(nécessite un redémarrage)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" @@ -7089,7 +7157,7 @@ msgid "Options to customize the ebook viewer" msgstr "Options pour personnalier l'afficheur d'ebook" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "Se souvenir de la dernière taille de fenêtre utilisée" @@ -7146,7 +7214,7 @@ msgstr "La taille de police monospace en px" msgid "The standard font type" msgstr "Le type de police standard" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "Rechercher dans le dictionnaire" @@ -7206,93 +7274,93 @@ msgstr "Format du livre" msgid "Go to..." msgstr "Aller vers..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "Position dans le livre" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" "Aller vers une référence. Pour indiquer des numéros de référence, utiliser " "le mode référence." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "Rechercher du texte dans le livre" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "Aperçu avant impression" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "Connexion à dict.org pour rechercher: %s…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "Choisir un ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "Ebooks" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "Ajouter un signet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "Entrer un titre pour le signet:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "Pas de correspondance trouvée pour: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "Chargement du flux..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "Aménagement de %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "Gérer les signets" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "Charge l'ebook..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "Erreur de DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "

Ce livre est protégé par DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "Impossible d'ouvrir l'ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "Options pour contrôler l'afficheur d'ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Si spécifié, la fenêtre de l'afficheur essaiera de s'afficher au premier " "plan au lancement." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" "Afficher les alertes javascript et les messages console dans la console" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7796,7 +7864,7 @@ msgstr "" "Le nombre maximum de correspondances retournées par une requête OPDS. Ceci " "affecte l'intégration dans Stanza, Wordplayer,etc..." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7804,23 +7872,35 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Champ à afficher lors du parcours du catalogue de livres. Liste de champs à " +"séparer par des virgules\n" +"Champs disponible: %s.\n" +"Défaut: '%%default'\n" +"S'applique au formats : CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" "Default: '%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Champ de sortie à trier.\n" +"Champs disponible: auteur, nom, note, taille, date, titre.\n" +"Défaut: '%default'\n" +"S'applique au formats : CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Titre du catalogue généré utilisé comme titre dans les métadonnées.\n" +"Par défaut : '%default'\n" +"Applicable pour les formats de sortie ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7828,15 +7908,23 @@ msgid "" "Default: '%default'None\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Sauvegarde les différentes étapes de conversions dans un répertoire " +"spécifique. Permet d'identifier les étapes du processus de conversion " +"sources d'erreurs.\n" +"Défaut: '%default'None\n" +"S'applique au formats: ePub et MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Expression régulière décrivant les étiquettes à exclure comme genres.\n" +"Par défaut: '%default' exclue les étiquettes entre crochets, ex. '[]'\n" +"Applicable pour les formats de sortie ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7845,21 +7933,41 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Étiquette pour note utilisateur, par exemple, '*Jeff devrait apprécier cette " +"lecture'.\n" +"Défaut: '%default'\n" +"S'applique au formats: ePub et MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7869,6 +7977,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -8199,7 +8314,7 @@ msgstr "Affiche des informations détaillées. Utile pour le débogage" msgid "Error: You must specify a catalog output file" msgstr "Erreur: Vous devez spécifier un fichier de sortie pour le catalogue" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8220,27 +8335,27 @@ msgstr "" "\n" "Pour une aide sur commande précise: %%prog commande --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "

Migre l'ancienne base vers la librairie dans %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "Copie %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "Compacte la base" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "Vérifie l'intégrité SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "Vérifie si des fichiers sont manquants." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "Id vérifié" @@ -8410,6 +8525,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "" +"Chemin vers le répertoire de la librairie à utiliser avec le serveur de " +"contenu" #: /home/kovid/work/calibre/src/calibre/utils/config.py:48 msgid "%sUsage%s: %s\n" @@ -8485,7 +8602,7 @@ msgstr "Arrêté" msgid "Finished" msgstr "Terminé" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "Traitement en cours..." @@ -8547,7 +8664,7 @@ msgstr "Anglais (Singapour)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Yemen)" -msgstr "" +msgstr "Anglais (Yemen)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "German (AT)" @@ -8624,79 +8741,87 @@ msgstr "" msgid "Unknown News Source" msgstr "Source de News inconnue" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" "La recette \"%s\" a besoin d'un nom d'utilisateur et d'un mot de passe." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "Téléchargement effectué" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "Impossible de télécharger les articles suivants;" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "" "Impossible de télécharger certaines parties pour les articles suivants:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr " de " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "\tLiens qui ont échoués:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Impossible de récupérer l'article. Le lancer avec -w pour en connaitre la " "raison" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "Récupération des flux..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "Obtient les flux à partir de la page d'index" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "Essaie de télécharger la couverture..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "Commence le téléchargement [processus %d]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "Flux téléchargés de %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "Impossible de télécharger la couverture: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "Télécharge la couverture de %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "Article sans titre" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "Article téléchargé : %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "Impossible de télécharger l'article: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "Récupération du flux" @@ -10780,8 +10905,12 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "Character encoding for input. Default is to auto detect." #~ msgstr "Encodage de caractère de l'entrée. Par défaut : auto-détection" -#~ msgid "Default" -#~ msgstr "Par défaut" +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Ce fichier RTF a une fonctionnalité non supportée par calibre. Le convertir " +#~ "en HTML d'abord et puis essayer le." #~ msgid "" #~ "

Demo videos

Videos demonstrating the various features of calibre are " @@ -10952,3 +11081,28 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "English (CY)" #~ msgstr "Anglais (CY)" + +#~ msgid "E-book Options" +#~ msgstr "Options E-book" + +#~ msgid "Tags to exclude as genres (regex):" +#~ msgstr "Etiquettes pour exclure les genres (regex):" + +#~ msgid "Overwrite &author/title with author/title of selected book" +#~ msgstr "Remplacer &auteur/titre par auteur/titre de l'ebook sélectionné" + +#~ msgid "Overwrite & author/title by default when fetching metadata" +#~ msgstr "Remplacer & auteur/titre par défaut en récupérant les métadonnées" + +#~ msgid "" +#~ "Regex tips:\n" +#~ "- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', " +#~ "e.g., '[Amazon Freebie]'\n" +#~ "- A regex of '.' ignores all tags, generating no genre categories in the " +#~ "catalog" +#~ msgstr "" +#~ "Expressions régulières:\n" +#~ "- L'expression régulière '\\[[\\w]*\\]' ignore tout les tags de la forme " +#~ "'[tag]', par exemple '[Amazon Freebie]'\n" +#~ "- L'expression '.' ignore tout les tags; ne générant ainsi aucun genre de " +#~ "catégories dans le catalogue" diff --git a/src/calibre/translations/gl.po b/src/calibre/translations/gl.po index b8aed01848..99e38b24a0 100644 --- a/src/calibre/translations/gl.po +++ b/src/calibre/translations/gl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:31+0000\n" -"Last-Translator: Fidelinho \n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-10 05:18+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-02-11 05:01+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,7 +30,7 @@ msgstr "Non fai nada" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,19 +38,19 @@ msgstr "Non fai nada" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +65,18 @@ msgstr "Non fai nada" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +99,10 @@ msgstr "Non fai nada" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,23 +113,23 @@ msgstr "Non fai nada" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -144,11 +144,11 @@ msgstr "Descoñecido" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 msgid "Base" -msgstr "Patrón" +msgstr "Base" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" -msgstr "Tipo de arquivo" +msgstr "Tipo de ficheiro" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" @@ -169,8 +169,8 @@ msgid "" "library." msgstr "" "Segue todas as ligazóns locais nun ficheiro HTML e crea un ficheiro ZIP con " -"todos os ficheiros ligados. Este complemento execútase cada vez que se " -"engade un ficheiro HTML á biblioteca." +"todos os ficheiros ligados. Este engadido execútase cada vez que se engade " +"un ficheiro HTML á biblioteca." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 msgid "" @@ -233,7 +233,7 @@ msgstr "Define os metadatos desde os ficheiros %s" #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" -msgstr "Orixe da conversión" +msgstr "Entrada da conversión" #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 msgid "" @@ -242,10 +242,10 @@ msgid "" "useful for documents that do not declare an encoding or that have erroneous " "encoding declarations." msgstr "" -"Especificar a codificación de caracteres do documento orixe. Se se establece " -"esta opción superporase a calquera codificación declarada no propio " -"documento. En particular é útil para documentos sen codificación declarada " -"ou con erros na declaración de codificación." +"Especificar a codificación de caracteres do documento de entrada. Se se " +"establece esta opción sobreporase a calquera codificación declarada no " +"propio documento. En particular é útil para documentos sen codificación " +"declarada ou con erros na declaración de codificación." #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" @@ -337,7 +337,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 msgid "Output profile" -msgstr "" +msgstr "Perfil de saída" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 msgid "" @@ -366,23 +366,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 msgid "Installed plugins" -msgstr "" +msgstr "Complementos instalados" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 msgid "Mapping for filetype plugins" -msgstr "" +msgstr "Rastrexando os complementos por tipo de ficheiro" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Local plugin customization" -msgstr "" +msgstr "Personalización de complemento local" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Disabled plugins" -msgstr "" +msgstr "Complementos desactivados" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 msgid "No valid plugin found in " -msgstr "" +msgstr "Non se acharon complementos válidos en " #: /home/kovid/work/calibre/src/calibre/customize/ui.py:263 msgid "Initialization of plugin %s failed with traceback:" @@ -412,15 +412,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" -msgstr "" +msgstr "Listar todos os complementos instalados" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 msgid "Enable the named plugin" -msgstr "" +msgstr "Activar o complemento sinalado" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 msgid "Disable the named plugin" -msgstr "" +msgstr "Desactivar o complemento sinalado" #: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 msgid "Communicate with Android phones." @@ -482,16 +482,20 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 msgid "John Schember" -msgstr "" +msgstr "Nome Apelidos" #: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 msgid "Device Interface" -msgstr "" +msgstr "Interface do Dispositivo" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "" @@ -565,19 +569,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:116 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:118 msgid "Transferring books to device..." -msgstr "" +msgstr "A transferir os libros ao dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 msgid "Removing books from device..." -msgstr "" +msgstr "A eliminar os libros do dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." -msgstr "" +msgstr "A enviar metadatos ao dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 msgid "Communicate with the Sony PRS-600/700/900 eBook reader." @@ -593,7 +597,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." -msgstr "" +msgstr "Non se puido detectar a unidade de disco %s." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." @@ -616,7 +620,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." -msgstr "" +msgstr "A bahía %s seleccionada non está soportada." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" @@ -628,22 +632,22 @@ msgid "There is insufficient free space on the storage card" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" -msgstr "" +msgstr "Noticias" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" -msgstr "" +msgstr "Configurar o Dispositivo" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" -msgstr "" +msgstr "Configuración para os controladores de dispositivo" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" @@ -665,7 +669,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 msgid "Extra customization" -msgstr "" +msgstr "Personalización adicional" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 msgid "Communicate with an eBook reader." @@ -673,7 +677,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 msgid "Get device information..." -msgstr "" +msgstr "Obter información do dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 @@ -687,11 +691,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 msgid "Rendered %s" -msgstr "" +msgstr "Renderizado %s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 msgid "Failed %s" -msgstr "" +msgstr "Errou %s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "" @@ -699,6 +703,9 @@ msgid "" "\n" "%s" msgstr "" +"Erro ao procesar o cómic:\n" +"\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" @@ -718,7 +725,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Disable sharpening." -msgstr "" +msgstr "Desactivar a definición." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "" @@ -763,12 +770,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:312 msgid "Apply no processing to the image" -msgstr "" +msgstr "Non se aplica proceso ningún á imaxe" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" -msgstr "" +msgstr "Páxina" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:19 msgid "" @@ -798,7 +805,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97 msgid "INPUT OPTIONS" -msgstr "" +msgstr "OPCIÓNS DE ENTRADA" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98 msgid "Options to control the processing of the input %s file" @@ -806,7 +813,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104 msgid "OUTPUT OPTIONS" -msgstr "" +msgstr "OPCIÓNS DE SAÍDA" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105 msgid "Options to control the processing of the output %s" @@ -837,11 +844,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 msgid "List builtin recipes" -msgstr "" +msgstr "Listar os agregadores predefinidos" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:252 msgid "Output saved to" -msgstr "" +msgstr "Saída gardada en" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:92 msgid "Level of verbosity. Specify multiple times for greater verbosity." @@ -1092,7 +1099,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:409 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:37 msgid "Set the title." -msgstr "" +msgstr "Definir o título." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:413 msgid "Set the authors. Multiple authors should be separated by ampersands." @@ -1109,17 +1116,17 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 msgid "Set the cover to the specified file." -msgstr "" +msgstr "Definir a capa do ficheiro especificado." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 msgid "Set the ebook description." -msgstr "" +msgstr "Definir a descrición do libro." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:55 msgid "Set the ebook publisher." -msgstr "" +msgstr "Definir o/a editor/a do libro." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 @@ -1139,7 +1146,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 msgid "Set the ISBN of the book." -msgstr "" +msgstr "Definir o ISBN do libro." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 @@ -1149,12 +1156,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 msgid "Set the book producer." -msgstr "" +msgstr "Definir o produtor do libro." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:71 msgid "Set the language." -msgstr "" +msgstr "Definir o idioma." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 msgid "Could not find an ebook inside the archive" @@ -1166,7 +1173,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:740 msgid "Converting input to HTML..." -msgstr "" +msgstr "A converter a entrada a HTML..." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:763 msgid "Running transforms on ebook..." @@ -1174,7 +1181,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:850 msgid "Creating" -msgstr "" +msgstr "A crear" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:57 msgid "" @@ -1210,7 +1217,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" -msgstr "" +msgstr "Índice de Contidos:" #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:32 msgid "Do not insert a Table of Contents at the beginning of the book." @@ -1261,7 +1268,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 msgid "\tParsing HTML..." -msgstr "" +msgstr "\tTratando o HTML..." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 msgid "\tBaen file detected. Re-parsing..." @@ -1269,46 +1276,48 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 msgid "Written preprocessed HTML to " -msgstr "" +msgstr "A escribir o HTML preprocesado en " #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 msgid "Processing %s" -msgstr "" +msgstr "A procesar %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 msgid "\tConverting to BBeB..." -msgstr "" +msgstr "\tA converter para BBeB..." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:539 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:552 msgid "Could not parse file: %s" -msgstr "" +msgstr "Non se puido tratar o ficheiro: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 msgid "%s is an empty file" -msgstr "" +msgstr "%s é un ficheiro baleiro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 msgid "Failed to parse link %s %s" -msgstr "" +msgstr "Erro ao tratar a ligazón %s %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" -msgstr "" +msgstr "Non se puido engadir a ligazón %s a TOC" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" -msgstr "" +msgstr "Non se puido procesar a imaxe %s. Erro: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" -msgstr "" +msgstr "Non se puido procesar o PNG entrelazado %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 msgid "" "Could not process image: %s\n" "%s" msgstr "" +"Non se puido procesar a imaxe: %s\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 msgid "" @@ -1320,6 +1329,8 @@ msgid "" "Bad table:\n" "%s" msgstr "" +"Táboa incorrecta:\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 msgid "Table has cell that is too large" @@ -1327,15 +1338,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 msgid "Could not read cover image: %s" -msgstr "" +msgstr "Non se puido ler a imaxe da capa: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Cannot read from: %s" -msgstr "" +msgstr "Non se puido ler en: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 msgid "Failed to process opf file" -msgstr "" +msgstr "Erro ao procesar o ficheiro opf" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:136 msgid "" @@ -1345,7 +1356,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:137 msgid "Output LRS file" -msgstr "" +msgstr "Ficheiro LRS de saída" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 msgid "Do not save embedded image and font files to disk" @@ -1353,19 +1364,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 msgid "Parsing LRF..." -msgstr "" +msgstr "A tratar o LRF..." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:161 msgid "Creating XML..." -msgstr "" +msgstr "A crear o XML..." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 msgid "LRS written to " -msgstr "" +msgstr "LRS gardado en " #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:267 msgid "Could not read from thumbnail file:" -msgstr "" +msgstr "Non se puido ler o ficheiro da miniatura:" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:287 msgid "" @@ -1375,12 +1386,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:288 msgid "Path to output file" -msgstr "" +msgstr "Traxectoria do ficheiro de saída" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:113 msgid "Verbose processing" -msgstr "" +msgstr "Procesado por petición" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:292 msgid "Convert LRS to LRS, useful for debugging." @@ -1401,7 +1412,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 msgid "Set the book title" -msgstr "" +msgstr "Definir o título do libro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 msgid "Set sort key for the title" @@ -1409,7 +1420,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 msgid "Set the author" -msgstr "" +msgstr "Definir o/a autor/a" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 msgid "Set sort key for the author" @@ -1430,23 +1441,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 msgid "Extract thumbnail from LRF file" -msgstr "" +msgstr "Extraer a miniatura do ficheiro LRF" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 msgid "Set the publisher" -msgstr "" +msgstr "Definir o/a editor/a" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 msgid "Set the book classification" -msgstr "" +msgstr "Definir a clasificación do libro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 msgid "Set the book creator" -msgstr "" +msgstr "Definir o/a creador do libro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 msgid "Set the book producer" -msgstr "" +msgstr "Definir o/a produtor/a do libro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 msgid "" @@ -1456,7 +1467,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 msgid "Set book ID" -msgstr "" +msgstr "Definir o ID do libro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 msgid "Enable autorotation of images that are wider than the screen width." @@ -1512,91 +1523,91 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:152 msgid "Comic" -msgstr "" +msgstr "Cómic" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" -msgstr "" +msgstr "Título" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" -msgstr "" +msgstr "Autores/as" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" -msgstr "" +msgstr "Comentarios" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" -msgstr "" +msgstr "Etiquetas" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 -msgid "Language" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 -msgid "Timestamp" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 -msgid "Published" -msgstr "" +msgid "Language" +msgstr "Idioma" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 -msgid "Rights" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 +msgid "Timestamp" +msgstr "Marca temporal" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 +msgid "Published" +msgstr "Publicado" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 +msgid "Rights" +msgstr "Dereitos" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" -msgstr "" +msgstr "SUMARIO DA EDITORIAL" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:19 msgid "options" -msgstr "" +msgstr "opcións" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:20 msgid "" @@ -1632,7 +1643,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:57 msgid "Set the book category." -msgstr "" +msgstr "Definir a categoría do libro." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 msgid "Get the cover from the ebook and save it at as the specified file." @@ -1657,31 +1668,31 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 msgid "No file specified" -msgstr "" +msgstr "Non se especificou ficheiro ningún" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 msgid "Original metadata" -msgstr "" +msgstr "Metadatos orixinais" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 msgid "Changed metadata" -msgstr "" +msgstr "Metadatos modificados" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" -msgstr "" +msgstr "OPF creado en" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" -msgstr "" +msgstr "Capa gardada en" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 msgid "No cover found" -msgstr "" +msgstr "Non se achou capa ningunha" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 msgid "Metadata download" -msgstr "" +msgstr "Descarga de metadatos" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 msgid "ratings" @@ -1689,15 +1700,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 msgid "tags" -msgstr "" +msgstr "etiquetas" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 msgid "description/reviews" -msgstr "" +msgstr "descrición/críticas" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 msgid "Download %s from %s" -msgstr "" +msgstr "Descargar %s desde %s" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 msgid "Downloads metadata from Google Books" @@ -1759,7 +1770,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:61 msgid " not found." -msgstr "" +msgstr " non se achou." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:64 msgid "LibraryThing.com server error. Try again later." @@ -1774,9 +1785,9 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" -msgstr "" +msgstr "Capa" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 msgid "Modify images to meet Palm device size limitations." @@ -1799,82 +1810,82 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 msgid "Disable compression of the file contents." -msgstr "" +msgstr "Desactivar a compresión dos contidos do ficheiro." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" -msgstr "" +msgstr "Todos os artigos" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" -msgstr "" +msgstr "Páxina de título" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" -msgstr "" +msgstr "Índice de Contidos" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" -msgstr "" +msgstr "Índice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" -msgstr "" +msgstr "Dereitos de copia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" -msgstr "" +msgstr "Lista de Ilustracións" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" -msgstr "" +msgstr "Lista de Táboas" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" -msgstr "" +msgstr "Notas" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" -msgstr "" +msgstr "Texto Principal" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 msgid "%s format books are not supported" -msgstr "" +msgstr "O formato de libros %s non está soportado" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 msgid "HTML TOC generation options." @@ -1882,7 +1893,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 msgid "Book Jacket" -msgstr "" +msgstr "Envoltorio do Libro" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 msgid "" @@ -1891,7 +1902,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" -msgstr "" +msgstr "Sen nome" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 msgid "OPF/NCX/etc. generation options." @@ -1912,7 +1923,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:133 msgid "Sidebar" -msgstr "" +msgstr "Barra lateral" #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 @@ -2011,7 +2022,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 msgid "Crop Options:" -msgstr "" +msgstr "Opcións de Recorte:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 @@ -2032,7 +2043,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 msgid "Decrypt Options:" -msgstr "" +msgstr "Opcións de Descifrado:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 msgid "" @@ -2043,7 +2054,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 msgid "Encrypt Options:" -msgstr "" +msgstr "Opcións de Cifrado:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 msgid "" @@ -2054,27 +2065,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 msgid "Author" -msgstr "" +msgstr "Autor" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:47 msgid "Subject" -msgstr "" +msgstr "Asunto" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:48 msgid "Creator" -msgstr "" +msgstr "Creador" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:50 msgid "Pages" -msgstr "" +msgstr "Páxinas" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:51 msgid "File Size" -msgstr "" +msgstr "Tamaño do Ficheiro:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 msgid "PDF Version" -msgstr "" +msgstr "Versión de PDF" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:25 msgid "" @@ -2087,7 +2098,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 msgid "Merge Options:" -msgstr "" +msgstr "Opcións de Combinación:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:25 msgid "" @@ -2098,7 +2109,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 msgid "Reverse Options:" -msgstr "" +msgstr "Opcións de Reverso:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:24 msgid "" @@ -2109,7 +2120,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 msgid "Rotate Options:" -msgstr "" +msgstr "Opcións de Rotación:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:25 msgid "" @@ -2128,7 +2139,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Split Options:" -msgstr "" +msgstr "Opcións de División:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:31 msgid "" @@ -2164,7 +2175,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2216,185 +2228,190 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" -msgstr "" +msgstr "Confirmar antes de borrar" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" -msgstr "" +msgstr "Tamaño da icona da barra de ferramentas" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" -msgstr "" +msgstr "Xeometría da xanela principal" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" -msgstr "" +msgstr "Notificar se hai versións novas dispoñíbeis" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" -msgstr "" +msgstr "Amosar a icona na área de notificación do sistema" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" -msgstr "" +msgstr "Copiado" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" -msgstr "" +msgstr "Copiar" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" -msgstr "" +msgstr "Copiar no Portapapeis" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" -msgstr "" +msgstr "Escoller os Ficheiros" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" -msgstr "" +msgstr "A Buscar" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." -msgstr "" +msgstr "A engadir..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" -msgstr "" +msgstr "Erro na traxectoria" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." -msgstr "" +msgstr "Non se puido procesar o directorio especificado." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" -msgstr "" +msgstr "Sen libros" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" -msgstr "" +msgstr "Non se acharon libros" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" -msgstr "" +msgstr "Engadido" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" -msgstr "" +msgstr "Erro ao engadir" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" -msgstr "" +msgstr "Acháronse duplicados!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." -msgstr "" +msgstr "A engadir os duplicados..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." -msgstr "" +msgstr "A gardar..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" -msgstr "" +msgstr "Gardado" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" @@ -2407,7 +2424,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2416,23 +2433,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 msgid "Options specific to" -msgstr "" +msgstr "Opcións específicas para" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 msgid "output" -msgstr "" +msgstr "saída" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2442,7 +2459,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2461,39 +2478,60 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 msgid "Form" -msgstr "" +msgstr "Formulario" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -2507,16 +2545,16 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 msgid "Bulk Convert" -msgstr "" +msgstr "Conversión por Petición" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." -msgstr "" +msgstr "Opcións específicas do formato de saida." #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 msgid "Comic Input" -msgstr "" +msgstr "Entrada de Cómic" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 @@ -2524,27 +2562,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 msgid "input" -msgstr "" +msgstr "entrada" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" -msgstr "" +msgstr "&Número de Cores:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" -msgstr "" +msgstr "Desactivar &normalizar" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" -msgstr "" +msgstr "Manter a &proporción" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" -msgstr "" +msgstr "Desactivar a &Definición" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 @@ -2554,22 +2592,22 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" -msgstr "" +msgstr "&Vertical" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" -msgstr "" +msgstr "&Horizontal" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" -msgstr "" +msgstr "&Dereita a esquerda" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" -msgstr "" +msgstr "Non o&rdenar" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 @@ -2578,33 +2616,33 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" -msgstr "" +msgstr "&Desactivar o procesamento de cómic" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 msgid "&Output format:" -msgstr "" +msgstr "Formato de &Saída:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" -msgstr "" +msgstr "Depurar" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:21 msgid "Debug the conversion process." -msgstr "" +msgstr "Depurar o proceso de conversión." #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:38 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 msgid "Choose debug folder" -msgstr "" +msgstr "Escoller o cartafol de depuración" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:57 msgid "Invalid debug directory" -msgstr "" +msgstr "Directorio de depuración non válido" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 msgid "Failed to create debug directory" -msgstr "" +msgstr "Erro ao crear o directorio de depuración" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 msgid "" @@ -2621,12 +2659,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2660,7 +2698,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 msgid "EPUB Output" -msgstr "" +msgstr "Saída EPUB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" @@ -2672,15 +2710,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:44 msgid " KB" -msgstr "" +msgstr " KB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:45 msgid "No default &cover" -msgstr "" +msgstr "Sen &capa predeterminada" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 msgid "FB2 Input" -msgstr "" +msgstr "Entrada FB2" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 msgid "Do not insert a &Table of Contents at the beginning of the book." @@ -2688,18 +2726,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 msgid "FB2 Output" -msgstr "" +msgstr "Saída FB2" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 msgid "&Inline TOC" -msgstr "" +msgstr "TOC &en liña" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 msgid "Font rescaling wizard" -msgstr "" +msgstr "Asistente de reescalamento do tipo de letra" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 msgid "" @@ -2719,17 +2757,17 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 msgid "&Output document" -msgstr "" +msgstr "Documento de &saída" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109 msgid "&Base font size:" -msgstr "" +msgstr "Tamaño do tipo de letra &base:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105 #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 msgid "Font size &key:" -msgstr "" +msgstr "&Clave do tipo de letra:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 @@ -2748,19 +2786,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 msgid "Use &default values" -msgstr "" +msgstr "Usar os valores &predeterminados" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 msgid "&Input document" -msgstr "" +msgstr "Documento de &entrada" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 msgid "&Font size: " -msgstr "" +msgstr "&Tamaño do tipo de letra: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 msgid " will map to size: " -msgstr "" +msgstr " escalarase ao tamaño: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 msgid "0.0 pt" @@ -2776,11 +2814,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 msgid "&Disable font size rescaling" -msgstr "" +msgstr "&Desactivar o reescalamento do tamaño de tipo de letra" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 msgid "Base &font size:" -msgstr "" +msgstr "&Tamaño do tipo de letra base" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 msgid "Wizard to help you choose an appropriate font size key" @@ -2788,19 +2826,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 msgid "Line &height:" -msgstr "" +msgstr "&Altura de liña:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 msgid "Input character &encoding:" -msgstr "" +msgstr "&Codificación do carácter de entrada:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 msgid "Remove &spacing between paragraphs" -msgstr "" +msgstr "Elliminar o &espazo entre parágrafos" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Indent size:" -msgstr "" +msgstr "Tamaño da sangría:a" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 msgid "" @@ -2815,15 +2853,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 msgid "Insert &blank line" -msgstr "" +msgstr "Inserir liña en &branco" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 msgid "No text &justification" -msgstr "" +msgstr "Texto sen &xustificación" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "&Linearize tables" -msgstr "" +msgstr "&Aliñar as táboas" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 msgid "&Transliterate unicode characters to ASCII." @@ -2831,15 +2869,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "Extra &CSS" -msgstr "" +msgstr "&CSS adicional" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 msgid "LRF Output" -msgstr "" +msgstr "Saída LRF" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116 msgid "Enable &autorotation of wide images" -msgstr "" +msgstr "Activar a rotación &automática de imaxes grandes" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117 msgid "&Wordspace:" @@ -2847,11 +2885,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:119 msgid "Minimum para. &indent:" -msgstr "" +msgstr "Sangría &mínima:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 msgid "Render &tables as images" -msgstr "" +msgstr "Renderizar &táboas como imaxes" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 msgid "Text size multiplier for text in rendered tables:" @@ -2859,31 +2897,31 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 msgid "Add &header" -msgstr "" +msgstr "Engadir &Encabezado" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 msgid "Header &separation:" -msgstr "" +msgstr "&Separación do encabezado" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 msgid "Header &format:" -msgstr "" +msgstr "&Formato do encabezado" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 msgid "&Embed fonts" -msgstr "" +msgstr "&Aniñar os tipos de letra" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 msgid "&Serif font family:" -msgstr "" +msgstr "Familia de tipos de letra con &serifa:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 msgid "S&ans-serif font family:" -msgstr "" +msgstr "Familia de tipos de letra s&en serifa:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 msgid "&Monospaced font family:" -msgstr "" +msgstr "Familia de tipos de letra de &largo uniforme" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 @@ -2900,23 +2938,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 msgid "Choose cover for " -msgstr "" +msgstr "Escoller a capa para " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 msgid "Cannot read" -msgstr "" +msgstr "Non se puido ler" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 msgid "You do not have permission to read the file: " -msgstr "" +msgstr "Non ten permiso para ler o ficheiro " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 msgid "Error reading file" -msgstr "" +msgstr "Erro ao ler o ficheiro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 @@ -2926,12 +2964,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 msgid " is not a valid picture" -msgstr "" +msgstr " non é unha imaxe válida" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Book Cover" -msgstr "" +msgstr "Capa do Libro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 msgid "Use cover from &source file" @@ -2940,7 +2978,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 msgid "Change &cover image:" -msgstr "" +msgstr "Mudar a imaxe da &capa" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 @@ -2950,7 +2988,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 msgid "&Title: " -msgstr "" +msgstr "&Título " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 @@ -2958,14 +2996,14 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " -msgstr "" +msgstr "&Autores/as: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 msgid "Author So&rt:" -msgstr "" +msgstr "&Ordenación por autor/a" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 msgid "" @@ -2974,7 +3012,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "" @@ -2982,10 +3020,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 msgid "Ta&gs: " -msgstr "" +msgstr "&Etiquetas " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -2993,15 +3031,15 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3010,71 +3048,83 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "Book " -msgstr "" +msgstr "Libro " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" +msgstr "Saída MOBI" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" -msgstr "" +msgstr "&Título do Índice de Contidos:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" -msgstr "" +msgstr "Usar a &ordenación por autores/as" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" +msgstr "Desactivar a compresión dos contidos do ficheiro" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 +msgid "Do not add Table of Contents to book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 -msgid "Do not add Table of Contents to book" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" -msgstr "" +msgstr "Configuración da Páxina" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:111 msgid "&Output profile:" -msgstr "" +msgstr "Perfil de &Saída:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:112 msgid "Profile description" -msgstr "" +msgstr "Descrición do perfil" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:113 msgid "&Input profile:" -msgstr "" +msgstr "Perfil de &Entrada:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:114 msgid "Margins" -msgstr "" +msgstr "Marxes" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 msgid "&Left:" -msgstr "" +msgstr "&Esquerdo:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 msgid "&Top:" -msgstr "" +msgstr "&Superior:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 msgid "&Right:" -msgstr "" +msgstr "&Dereita:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 msgid "&Bottom:" -msgstr "" +msgstr "&Inferior:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:12 msgid "PDB Input" -msgstr "" +msgstr "Entrada PDB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:43 @@ -3084,19 +3134,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:44 msgid "Assume print formatting" -msgstr "" +msgstr "Asumir o formatado de impresión" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:16 msgid "PDB Output" -msgstr "" +msgstr "Saída PDB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 msgid "&Format:" -msgstr "" +msgstr "&Formato:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:12 msgid "PDF Input" -msgstr "" +msgstr "Entrada PDF" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:39 msgid "Line &Un-Wrapping Factor:" @@ -3104,28 +3154,28 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:40 msgid "No &Images" -msgstr "" +msgstr "Sen &Imaxes" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:17 msgid "PDF Output" -msgstr "" +msgstr "Saída PDF" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:40 msgid "&Paper Size:" -msgstr "" +msgstr "Tamaño de &Papel" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:41 msgid "&Orientation:" -msgstr "" +msgstr "&Orientación" #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 msgid "RB Output" -msgstr "" +msgstr "Saída RB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" -msgstr "" +msgstr "Escoller o formato de visualización" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 msgid "Cannot build regex using the GUI builder without a book." @@ -3133,11 +3183,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 msgid "No formats available" -msgstr "" +msgstr "Non hai formatos dispoñíbeis" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 msgid "Open book" -msgstr "" +msgstr "Abrir o libro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 msgid "~" @@ -3149,7 +3199,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:47 msgid "Preview" -msgstr "" +msgstr "Previsualizar" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:48 msgid "Regex:" @@ -3157,22 +3207,22 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 msgid "Convert" -msgstr "" +msgstr "Converter" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 msgid "Options specific to the input format." -msgstr "" +msgstr "Opcións específicas do formato de entrada." #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" -msgstr "" +msgstr "Diálogo" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 msgid "&Input format:" -msgstr "" +msgstr "Formato de &entrada:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 msgid "Use &saved conversion settings for individual books" @@ -3183,6 +3233,8 @@ msgid "" "Structure\n" "Detection" msgstr "" +"Detección da\n" +"Estrutura" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:19 msgid "" @@ -3199,35 +3251,35 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 msgid "Header regular expression:" -msgstr "" +msgstr "Expresión regular do encabezado:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 msgid "Footer regular expression:" -msgstr "" +msgstr "Expresión regular do pé de páxina:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 msgid "Invalid regular expression" -msgstr "" +msgstr "Expresión regular non válida" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 msgid "Invalid regular expression: %s" -msgstr "" +msgstr "Expresión regular non válida: %s" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:62 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:38 msgid "Invalid XPath" -msgstr "" +msgstr "XPath non válida" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 msgid "The XPath expression %s is invalid." -msgstr "" +msgstr "A expresión da XPath %s non é válida." #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 msgid "Chapter &mark:" -msgstr "" +msgstr "´&Marca de capítulo" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 msgid "Remove first &image" @@ -3347,7 +3399,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69 msgid "*" -msgstr "" +msgstr "*" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 msgid "a" @@ -3416,7 +3468,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -3631,8 +3683,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "" @@ -3642,7 +3694,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -3665,7 +3717,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -3734,11 +3786,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "General" -msgstr "" +msgstr "Xeral" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "Interface" -msgstr "" +msgstr "Interface" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 msgid "Add/Save" @@ -3752,7 +3804,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 msgid "Advanced" -msgstr "" +msgstr "Avanzado" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 msgid "" @@ -3762,7 +3814,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 msgid "Plugins" -msgstr "" +msgstr "Complementos" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 msgid "Auto send" @@ -3770,7 +3822,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 msgid "Email" -msgstr "" +msgstr "Correo electrónico" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:221 msgid "Formats to email. The first matching format will be sent." @@ -3786,127 +3838,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" -msgstr "" +msgstr "Erro" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4000,252 +4052,256 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" -msgstr "" +msgstr "Preferencias" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" -msgstr "" +msgstr "Normal" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" -msgstr "" +msgstr "Alto" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" -msgstr "" +msgstr "Baixo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" -msgstr "" +msgstr "Grande" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" -msgstr "" +msgstr "Medio" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" -msgstr "" +msgstr "Pequeno" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4256,33 +4312,33 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "" @@ -4337,7 +4393,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:41 msgid "ERROR" -msgstr "" +msgstr "ERRO" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 msgid "Author Sort" @@ -4347,40 +4403,40 @@ msgstr "" msgid "ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4388,30 +4444,34 @@ msgid "" "below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" -msgstr "" +msgstr "Detalles do traballo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:44 msgid "Active Jobs" @@ -4429,71 +4489,75 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4512,7 +4576,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 msgid "No permission" -msgstr "" +msgstr "Permiso denegado" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "You do not have permission to read the following files:" @@ -4548,67 +4612,67 @@ msgstr "" msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -4758,31 +4822,31 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 msgid "Monday" -msgstr "" +msgstr "Luns" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 msgid "Tuesday" -msgstr "" +msgstr "Martes" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 msgid "Wednesday" -msgstr "" +msgstr "Mércores" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 msgid "Thursday" -msgstr "" +msgstr "Xoves" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 msgid "Friday" -msgstr "" +msgstr "Venres" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 msgid "Saturday" -msgstr "" +msgstr "Sábado" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 msgid "Sunday" -msgstr "" +msgstr "Domingo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 msgid "at" @@ -5171,7 +5235,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 msgid "Test" -msgstr "" +msgstr "Proba" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 msgid "Title:" @@ -5228,15 +5292,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 msgid "Job" -msgstr "" +msgstr "Traballo" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 msgid "Status" -msgstr "" +msgstr "Estado" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 msgid "Progress" -msgstr "" +msgstr "Progreso" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 msgid "Running time" @@ -5277,49 +5341,49 @@ msgstr "" msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" -msgstr "" +msgstr "Data" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" -msgstr "" +msgstr "Puntuación" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "None" -msgstr "" +msgstr "Ningún" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" -msgstr "" +msgstr "Non permitido" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" -msgstr "" +msgstr "Formato" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "" @@ -5348,7 +5412,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "" @@ -5375,7 +5439,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:182 msgid "Back" -msgstr "" +msgstr "Voltar" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:183 @@ -5393,54 +5457,54 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137 msgid "Configure" -msgstr "" +msgstr "Configurar" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5498,7 +5562,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 msgid "Del" -msgstr "" +msgstr "Supr" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 msgid "Edit meta information" @@ -5540,7 +5604,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 msgid "View" -msgstr "" +msgstr "Ver" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 msgid "V" @@ -5596,17 +5660,17 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71 msgid "Search" -msgstr "" +msgstr "Buscar" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." @@ -5662,7 +5726,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 msgid "Clear" -msgstr "" +msgstr "Limpar" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 msgid "&Alternate shortcut:" @@ -5696,7 +5760,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Authors" -msgstr "" +msgstr "Autores" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Publishers" @@ -5731,11 +5795,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5822,7 +5886,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "" @@ -5877,7 +5941,7 @@ msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "" @@ -5899,7 +5963,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 msgid "Connected " -msgstr "" +msgstr "Conectado " #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 msgid "Device database corrupted" @@ -5968,169 +6032,175 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 msgid "Archives" -msgstr "" +msgstr "Arquivos" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6138,101 +6208,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6264,7 +6334,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 msgid "Name" -msgstr "" +msgstr "Nome" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 msgid "Bookmark Manager" @@ -6272,27 +6342,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 msgid "Actions" -msgstr "" +msgstr "Accións" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 msgid "Edit" -msgstr "" +msgstr "Editar" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 msgid "Delete" -msgstr "" +msgstr "Borrar" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 msgid "Reset" -msgstr "" +msgstr "Restaurar" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 msgid "Export" -msgstr "" +msgstr "Exportar" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 msgid "Import" -msgstr "" +msgstr "Importar" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" @@ -6395,7 +6465,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "" @@ -6424,7 +6494,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 msgid "Font options" -msgstr "" +msgstr "Opcións de tipo de letra" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 msgid "The serif font family" @@ -6450,7 +6520,7 @@ msgstr "" msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "" @@ -6488,19 +6558,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:36 msgid "Scroll down" -msgstr "" +msgstr "Desprazar cara a abaixo" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:39 msgid "Scroll up" -msgstr "" +msgstr "Desprazar cara a arriba" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:42 msgid "Scroll left" -msgstr "" +msgstr "Desprazar cara á esquerda" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:45 msgid "Scroll right" -msgstr "" +msgstr "Desprazar cara á dereita" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 msgid "Book format" @@ -6510,88 +6580,88 @@ msgstr "" msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -6612,11 +6682,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 msgid "Next page" -msgstr "" +msgstr "Páxina seguinte" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 msgid "Previous page" -msgstr "" +msgstr "Páxina anterior" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 msgid "Font size larger" @@ -6648,7 +6718,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 msgid "Print" -msgstr "" +msgstr "Imprimir" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 msgid "Print eBook" @@ -6888,7 +6958,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:130 msgid "Bad configuration" -msgstr "" +msgstr "Configuración errada" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 msgid "You must set the From email address" @@ -6900,7 +6970,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:108 msgid "Send email &from:" -msgstr "" +msgstr "Enviar correos &desde:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 msgid "" @@ -6916,7 +6986,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:111 msgid "Mail &Server" -msgstr "" +msgstr "&Servidor de Correo" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 msgid "calibre can optionally use a server to send mail" @@ -6924,7 +6994,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 msgid "&Hostname:" -msgstr "" +msgstr "Nome do &host:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" @@ -6932,7 +7002,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 msgid "&Port:" -msgstr "" +msgstr "&Porto:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 msgid "" @@ -6941,19 +7011,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 msgid "Your username on the mail server" -msgstr "" +msgstr "O seu nome de usuario/a no servidor de correo" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 msgid "Your password on the mail server" -msgstr "" +msgstr "O seu contrasinal no servidor de correo" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 msgid "&Show" -msgstr "" +msgstr "&Amosar" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 msgid "&Encryption:" -msgstr "" +msgstr "&Cifrado:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "" @@ -6963,7 +7033,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "&TLS" -msgstr "" +msgstr "&TLS" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "Use SSL encryption when connecting to the mail server." @@ -6971,15 +7041,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "&SSL" -msgstr "" +msgstr "&SSL" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Use Gmail" -msgstr "" +msgstr "Usar Gmail" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "&Test email" -msgstr "" +msgstr "&Probar o correo" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 msgid "" @@ -6991,7 +7061,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 msgid "Turn on the &content server" -msgstr "" +msgstr "Prender o servidor de &contidos" #: /home/kovid/work/calibre/src/calibre/library/__init__.py:8 msgid "Settings to control the calibre content server" @@ -7027,7 +7097,7 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7036,7 +7106,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7044,14 +7114,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7060,14 +7130,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7076,21 +7146,37 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7100,6 +7186,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7164,7 +7257,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:234 msgid "Invalid fields. Available fields:" -msgstr "" +msgstr "Campos non válidos. Campos dispoñíbeis:" #: /home/kovid/work/calibre/src/calibre/library/cli.py:241 msgid "Invalid sort field. Available fields:" @@ -7193,7 +7286,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:346 msgid "Process directories recursively" -msgstr "" +msgstr "Procesar os directorios recursivamente" #: /home/kovid/work/calibre/src/calibre/library/cli.py:348 msgid "" @@ -7233,7 +7326,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:428 msgid "ebook file must have an extension" -msgstr "" +msgstr "O ficheiro de libro electrónico debe ter unha extensión" #: /home/kovid/work/calibre/src/calibre/library/cli.py:436 msgid "" @@ -7265,7 +7358,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:488 msgid "You must specify an id" -msgstr "" +msgstr "Debe especificar un id" #: /home/kovid/work/calibre/src/calibre/library/cli.py:501 msgid "" @@ -7349,7 +7442,7 @@ msgstr "" msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7361,37 +7454,37 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" -msgstr "" +msgstr "A copiar %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" -msgstr "" +msgstr "A compactar a base de datos" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." -msgstr "" +msgstr "A comprobar a integridade SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." -msgstr "" +msgstr "A comprobar os ficheiros perdidos." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" -msgstr "" +msgstr "id comprobada" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 msgid "The title" -msgstr "" +msgstr "O título" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 msgid "The authors" -msgstr "" +msgstr "Os/as autores/as" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 msgid "" @@ -7401,7 +7494,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 msgid "The tags" -msgstr "" +msgstr "As etiquetas" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 msgid "The series" @@ -7413,7 +7506,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 msgid "The rating" -msgstr "" +msgstr "A nota" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 msgid "The ISBN" @@ -7425,15 +7518,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 msgid "The date" -msgstr "" +msgstr "A data" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 msgid "The published date" -msgstr "" +msgstr "Data de publicación" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The calibre internal id" -msgstr "" +msgstr "O id interno de Calibre" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "Options to control saving to disk" @@ -7495,15 +7588,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Convert paths to lowercase." -msgstr "" +msgstr "Converter as traxectorias a minúsculas." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Replace whitespace with underscores." -msgstr "" +msgstr "Substituír os espazos por suliñados." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" -msgstr "" +msgstr "Os formatos requiridos non están dispoñíbeis" #: /home/kovid/work/calibre/src/calibre/library/server.py:378 msgid "Password to access your calibre library. Username is " @@ -7526,7 +7619,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/config.py:92 msgid "Created by " -msgstr "" +msgstr "Creado por " #: /home/kovid/work/calibre/src/calibre/utils/config.py:93 msgid "" @@ -7568,11 +7661,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/config.py:668 msgid "Read metadata from files" -msgstr "" +msgstr "Ler os metadatos dos ficheiros" #: /home/kovid/work/calibre/src/calibre/utils/config.py:670 msgid "The priority of worker processes" -msgstr "" +msgstr "A prioridade dos procesos do traballador" #: /home/kovid/work/calibre/src/calibre/utils/config.py:672 msgid "Swap author first and last names when reading metadata" @@ -7580,43 +7673,43 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." -msgstr "" +msgstr "A esperar..." #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:51 msgid "Stopped" -msgstr "" +msgstr "Detido" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Finished" -msgstr "" +msgstr "Rematado" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." -msgstr "" +msgstr "A traballar..." #: /home/kovid/work/calibre/src/calibre/utils/localization.py:93 msgid "Brazilian Portuguese" -msgstr "" +msgstr "Portugués (brasileiro)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 msgid "English (UK)" -msgstr "" +msgstr "Inglés (Reino Unido)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 msgid "Simplified Chinese" -msgstr "" +msgstr "Chinés (simplificado)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 msgid "Chinese (HK)" -msgstr "" +msgstr "Chinés (Hong Kong)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 msgid "Traditional Chinese" -msgstr "" +msgstr "Chinés (tradicional)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 msgid "English" -msgstr "" +msgstr "Inglés" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 msgid "English (Australia)" @@ -7656,15 +7749,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "German (AT)" -msgstr "" +msgstr "Alemán (Austria)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 msgid "Dutch (NL)" -msgstr "" +msgstr "Flamenco (Holanda)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 msgid "Dutch (BE)" -msgstr "" +msgstr "Flamenco (Bélxica)" #: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 msgid "URL must have the scheme sftp" @@ -7680,21 +7773,21 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71 msgid "Failed to authenticate with server: %s" -msgstr "" +msgstr "Erro ao se autenticar no servidor: %s" #: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 msgid "Control email delivery" -msgstr "" +msgstr "Controlar o envío de correo" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:103 #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:125 msgid "Unknown feed" -msgstr "" +msgstr "Fluxo descoñecido" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:143 #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:166 msgid "Untitled article" -msgstr "" +msgstr "Artigo sen título" #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 msgid "Download periodical content from the internet" @@ -7721,94 +7814,102 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 msgid "Unknown News Source" -msgstr "" +msgstr "Fonte de Novas Descoñecida" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" -msgstr "" +msgstr "Rematou a descarga" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " -msgstr "" +msgstr " desde " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" -msgstr "" +msgstr "\tLigazóns erradas:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." -msgstr "" +msgstr "A obter os fluxos..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." +msgstr "Tratando de descargar a capa..." + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." -msgstr "" +msgstr "A comezar a descarga [%d fío(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" -msgstr "" +msgstr "Fluxos descargados en %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" -msgstr "" +msgstr "Non se puido descargar a capa: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" +msgstr "A descargar a capa desde %s" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" -msgstr "" +msgstr "Artigo sen Título" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" -msgstr "" +msgstr "Artigo descargado: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" -msgstr "" +msgstr "Erro ao descargar o artigo: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" -msgstr "" +msgstr "A obter o fluxo" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 msgid "You" -msgstr "" +msgstr "Vostede" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:181 msgid "Scheduled" -msgstr "" +msgstr "Programado" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:182 msgid "Custom" -msgstr "" +msgstr "Personalizado" #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 msgid "" diff --git a/src/calibre/translations/hr.po b/src/calibre/translations/hr.po index 1eb3b6b9c0..a67384ccca 100644 --- a/src/calibre/translations/hr.po +++ b/src/calibre/translations/hr.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:27+0000\n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-10 17:05+0000\n" "Last-Translator: Miro Glavić \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-02-11 05:01+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,7 +30,7 @@ msgstr "Uopće ne funkcionira" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,19 +38,19 @@ msgstr "Uopće ne funkcionira" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +65,18 @@ msgstr "Uopće ne funkcionira" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +99,10 @@ msgstr "Uopće ne funkcionira" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,23 +113,23 @@ msgstr "Uopće ne funkcionira" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -508,6 +508,10 @@ msgstr "Sučelje Uređaja" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Komuniciraj sa IRex Digital Reader 1000 eBook čitačem." +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Komuniciraj sa Iriver Story čitačem." @@ -646,12 +650,12 @@ msgid "There is insufficient free space on the storage card" msgstr "Memorijska kartica nema dovoljno slobodnog prostora" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "Vijesti" @@ -805,8 +809,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Ne primijenjuj procesiranje slike." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Stranica" @@ -1719,83 +1723,83 @@ msgstr "Monospace familija pisama za pridružiti" msgid "Comic" msgstr "Strip" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Naslov" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Autor(i)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "Izdavač" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Proizvođač" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Komentari" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Tagovi" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Serije" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Jezik" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "Vremenska oznaka" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "Objavljeno" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "Prava" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "UREDNIČKI OSVRT" @@ -2019,7 +2023,7 @@ msgstr "" "Dograbi sliku omota za knjigu identificiranu od ISBN sa LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Omot" @@ -2048,74 +2052,74 @@ msgstr "Naslov bilo kojeg u liniji generiranog sadržaja." msgid "Disable compression of the file contents." msgstr "Onemogući kompresiju sadržaja datoteke." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Svi članci" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Naslovna Stranica" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Sadržaj" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "IndeksB" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "Pojmovnik" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "Zahvale" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Bibliografija" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "Kolofon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "Autorsko pravo" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "Posveta" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "Epigraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "Predgovor" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "Popis Ilustracija" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "Popis Tabela" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Zabilješke" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "Uvod" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Glavni Tekst" @@ -2481,10 +2485,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Ova RTF datoteka ima osobinu koju calibre ne podržava. Pretvori ju prvo u " -"HTML a zatim ju isprobaj." #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2551,163 +2554,168 @@ msgstr "" "Prisilno prekidanje maksimalne dužine reda kad razmak nije prisutan. Također " "dozvoljava maksimalnoj dužini da bude ispod minimalne." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" "Pošalji datoteku na memorijsku karticu namjesto u glavnu memoriju po zadatku" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Potvrdi prije brisanja" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Veličina ikone alatne trake" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Prikaži oznake gumba u alatnoj traci" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Geometrija glavnog prozora" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Obavijesti kad je nova inačica dostupna" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Upotrijebi Rimske brojeve za brojeve serija" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Svrstaj listu tagova po popularnosti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "Broj omota za prikazati u modu pretraživanja omota" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Podrazumijeva se za pretvorbu u LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Opcije za LRF ebook preglednika" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formati koji se pregledavaje upotrebom internog preglednika." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Stupci koji se prikazuju u listi knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" "Automatski lansiranje sadržajnog poslužitelja pri podizanju aplikacije." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Najstarija vijest sadržana u bazi podataka" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Prikaži ikonu sustavnog poslužavnika" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Pošalji skinute vijesti na uređaj" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Izbriši knjige iz biblioteke nakon slanja na uređaj" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" "Prikaži protok omota u posebnom prozoru umjesto u glavnom calibre prozoru." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Onesposobi obavještavanja sa ikone sustavnog poslužavnika" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Zadana akcija koju treba uraditi kad je kliknut gumb za slanje na uređaj." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Maksimalan broj radnih procesa na čekanju" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Preuzmi socijalne metapodatke (oznake/ocjene/itd)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Kopirano" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Kopiraj" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Kopiraj u međuspremnik" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Odaberi Daoteke" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "Pretraživanje u" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "Dodavanje..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "Pretraživanje u svim pod-direktorijima..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "Greška u putu" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "Specificirani direktorij nije mogao biti procesiran." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Nema knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "Nema pronađenih knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "Dodano" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "Neuspjelo dodavanje" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2715,11 +2723,11 @@ msgstr "" "Proces dodavanja knjiga je zaustavljen. Probajte ponovo pokrenuti calibre i " "dodavati knjige u manjim količinama dok ne pronađete problematičnu knjigu." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "Pronađeni duplikati!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -2727,15 +2735,15 @@ msgstr "" "Knjige sa naslovom identičnim slijedećim već postoje u bazi podataka. Dodaj " "ih, bez obzira?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "Dodavanje duplikata..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "Spremanje..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "Spremljeno" @@ -2750,7 +2758,7 @@ msgstr "CSV/XML Opcije" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2766,7 +2774,7 @@ msgstr "Opcije specifične za" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2775,7 +2783,7 @@ msgid "output" msgstr "izlaz" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2785,7 +2793,7 @@ msgstr "izlaz" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2811,32 +2819,53 @@ msgid "Fields to include in output:" msgstr "Polja koja uključiti u izlazu:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "" +msgid "E-book options" +msgstr "E-book opcije" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "Katalog" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "Uključi Sekciju 'Naslovi'" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "Sortiraj brojeve kao tekst" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -2971,12 +3000,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3313,7 +3342,7 @@ msgid "Change the title of this book" msgstr "Promijeni naslov ove knjige" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Autor(i): " @@ -3331,7 +3360,7 @@ msgstr "" "zarezom." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Izdavač: " @@ -3342,7 +3371,7 @@ msgid "Ta&gs: " msgstr "Ta&govi: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3352,15 +3381,15 @@ msgstr "" "

Oni mogu biti bilo riječi ili fraze, odvojene zarezima." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Serije:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3371,30 +3400,42 @@ msgstr "Lista poznatih serija. Vi možete dodati nove serije." msgid "Book " msgstr "Knjiga " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "MOBI Izlaz" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "Zadano" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "&Naslov Sadržaja:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "Promijeni veličine slika za &Palm uređaje" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "Upotrijebi &sortiranje autora za autora" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "Onemogući kompresiju sadržaja datoteke" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "Nemoj dodati Sadržaj u knjigu" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "Kindle opcije" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Postavke Stranice" @@ -3482,7 +3523,7 @@ msgid "RB Output" msgstr "RB Izlaz" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "Odaberi format za pregled" @@ -3782,7 +3823,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Detalji nisu raspoloživi." @@ -4002,8 +4043,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Put" @@ -4013,7 +4054,7 @@ msgstr "Put" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -4036,7 +4077,7 @@ msgid "My Books" msgstr "Moje Knjige" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "Generiraj katalog" @@ -4165,129 +4206,129 @@ msgstr "" msgid "new email address" msgstr "nova epoštanska adresa" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Greška" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "Neuspjela instalacija alata komandne linije." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Alati komandne linije instalirani." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Alati komandne linije instalirani u" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Ako premjestite calibre.app, morate ponovo instalirati alate komandne linije." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Nema puta važećeg priključka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s nije put važećeg priključka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Odaberi priključak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Priključak ne može biti onesposobljen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Priključak: %s ne može biti onesposobljen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Priključak nije prilagodljiv" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Priključak: %s ne treba prilagođavanje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Prilagodi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Nemoguće ukloniti ugrađeni priključak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " nemoguće ukloniti. Ovo je ugrađeni priključak. Pokušajte ga onesposobiti." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Dnevnik grešaka:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Dnevnik pristupa:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Neuspješan start sadržajnog poslužitelja" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Odaberi lokaziju knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Nevažeća veličina" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "Veličina %s je nevažeća. Mora biti u formatu širinaxvisina" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Nevažeća lokacija baze podataka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Nevažeća lokacija baze podataka " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Mora biti direktorij." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Nevažeća lokacija baze podataka.
Nemoguće pisati u " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Provjera integriteta baze podataka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Propust provjere integriteta baze podataka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Pronađene su neke proturječnosti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4389,13 +4430,13 @@ msgstr "" msgid "Sending to &device" msgstr "Slanje na &uređaj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Postavke" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4403,23 +4444,27 @@ msgstr "" "&Lokacija elektroničkih knjiga (ebooks su pohranjene u mapama razvrstanim po " "autorima a metapodaci su pohranjeni u datoteci metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Pretraži lokaciju za novu bazu podataka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Prikaži obavijest kad je &nova inačica dostupna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "Preuzmi &socijalne metapodatke (oznake/ocjene/itd) standardno" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "Zadano mrežno &vrijeme neaktivnosti:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4427,152 +4472,152 @@ msgstr "" "Postavi zadano vrijeme neaktivnosti za mrežno dobavljanje (npr. svaki put " "kad idemo na internet da dobijemo informacije)." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " sekundi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Odaberi &jezik (zahtijeva ponovno pokretanje):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Normalan" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Visoko" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Nisko" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "&Prioritet posla:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Prvenstven &izlazni format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Prvenstveni redoslijed &ulaznih formata:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Koristi &Rimske brojeve za brojeve serija" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" "Osposobi ikonu sustavnog &poslužavnika (zahtijeva ponovo podizanje sustava)." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Prikaži &obavještavanje u sustavnom poslužavniku." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" "Prikaži pretraživača omota u posebnom prozoru (zahtijeva ponovno podizanje)." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Traži dok tipkaš" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Automatski pošalji skinute &vijesti na čitača elektroničke knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "&Izbriši vijesti iz biblioteke kad su automatski poslane čitaču." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "&Broj omota za prikaz u pretražnom modu (zahtijeva ponovno pokretanje):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Alatna traka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Velik" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Srednji" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Malo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "Veličina &gumba u alatnoj traci" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Prikaži &tekst gumba u alatnoj traci" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Odaberi vidljive &stupce u prikazu biblioteke" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Koristi interni &preglednik za:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Dodaj e-mail adresu na koju poslati knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "&Dodaj e-mail" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Napravi &zadanim" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "&Ukloni e-mail" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" "calibre vam može poslati vaše knjige (ili vašem čitaču) putem e-maila" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" "&Maksimalan broj radnih procesa na čekanju (zahtijeva ponovo pokretanje):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "&Provjeri integritet baze podataka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "&Instaliraj alate komandne linije" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "Otvori calibre &konfiguracioni direktorij" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4582,25 +4627,25 @@ msgstr "" "knjiga koristeći pretraživač od bilo gdje u svijetu. Sve promjene u " "postavkama će uzeti efekta samo nakon onovnog pokretanja poslužitelja." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "Poslužiteljev &ulaz:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Korisničko ime:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Lozinka:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4608,7 +4653,7 @@ msgstr "" "Ako ostavite lozinku praznu, svatko će imati pristup vašoj kolekciji knjiga " "koristeći web sučelje." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4616,41 +4661,41 @@ msgstr "" "Maksimalna veličina (širinaxvisina) za izložene omote. Veći omoti su " "smanjeni. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Maksimalna veličina &omota:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Prikaži lozinku" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "Maksimalno &OPDS stavki po pretrazi:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "&Pokreni Poslužitelja" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "Za&ustavi Poslužitelja" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Provjera Poslužitelja" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Pokreni poslužitelja &automatski pri podizanju" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Pogledaj &poslužiteljev dnevnik" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4667,7 +4712,7 @@ msgstr "" "na vašem iPhone. Ovdje myhostname bi trebalo biti puno kvalificirano " "hostname ili IP adresa računala na kojem je calibre aktivan." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4675,27 +4720,27 @@ msgstr "" "Ovdje možete prilagoditi ponašanje Calibre kontrolirajući koje priključke " "upotrebljava." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Osposobi/&Onesposobi priključak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "&Prilagodi priključak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "&Ukloni priključak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Dodaj novi priključak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "&Datoteka priključka:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Dodaj" @@ -4765,41 +4810,41 @@ msgstr "Svrstavanje Autora" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Pronalaženje metapodataka..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Nemoguće pronaći metapodatke" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "Skidanje metapodataka je izgleda zastalo. Probajte ponovo kasnije." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Upozorenje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Nemoguće ugrabiti metapodatke od:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Metapodaci nisu pronađeni" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Metapodaci nisu pronađeni, probajte podesiti naslov i autora ili ISBN ključ." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Prigrabi metapodatke" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4811,28 +4856,32 @@ msgstr "" "prijaviti za besplatan račun i unijeti " "vaš pristupni ključ ispod." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "&Pristupni Ključ:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Prigrabi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Podudarnosti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "Odaberite knjigu koja najbliže odgovara vašoj kopiji sa donje liste" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Preuzmi &socijalne metapodatke (oznake/ocjene/itd) za odabranu knjigu" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Detalji posla" @@ -4853,24 +4902,24 @@ msgstr "Prikaži &detalje posla" msgid "Stop &all jobs" msgstr "Zaustavi &sve poslove" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Uredi Meta informaciju" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Meta informacija" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "A&utomatski postavi svrstavanje autora" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "S&ortiranje autora: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -4879,47 +4928,51 @@ msgstr "" "Specificiraj kako bi autor(i) ove knjige trebali biti svrstani. Na primjer " "Charles Dickens bi trebao biti svrstan kao Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Rangiranje:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Rangiranje ove knjige. 0-5 zvjezdica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "Bez promjena" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " zvjezdice" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Dodaj oz&nake: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Otvori Urednika Tagova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "&Ukloni tagove:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "Zarezom odvojena lista tagova za ukloniti iz knjiga. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Ukloni &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "&Zamijeni naslov i autora" @@ -4974,67 +5027,67 @@ msgstr "Omot u %s formatu je nevažeći" msgid "Abort the editing of all remaining books" msgstr "Prekini uređivanje svih preostalih knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "Ovaj ISBN broj je važeći" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "Ovaj ISBN broj je nevažeći" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "Skidanje omota..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "Nemoguće ugrabiti omot" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "Nemoguće ugrabiti omot.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "Vrijeme skidanja isteklo." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "Omot za ovu knjigu nije pronađen. Pokušajte prvo specificirati ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Loš omot" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "Omot nije važeća slika" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "Postojale su greške" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "Postojale su greške kod preuzimanja socijalnih metapodataka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "Nemoguće ugrabiti metapodatke" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "Morate specificirati barem jedan od ISBN, Naslov, Autori ili Izdavač" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "Dozvola je uskraćena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "Nije moguće otvoriti %s. Je li korišten od drugog programa?" @@ -5754,23 +5807,23 @@ msgstr "Nedostupan" msgid " - Jobs" msgstr " - Poslovi" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Veličina (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Datum" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Rang" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5778,15 +5831,15 @@ msgstr "Rang" msgid "None" msgstr "Nijedan" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "Knjiga %s od %s." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "Nije dozvoljeno" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -5794,11 +5847,11 @@ msgstr "" "Izručivanje na uređaj nije podržano. Prvo dodajte knjigu u calibre " "biblioteku." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "Format" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "Duplo klikni za urediti mene

" @@ -5828,7 +5881,7 @@ msgid "No matches for the search phrase %s were found." msgstr "Podudarnosti za pretražnu frazu %s nisu pronađene." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "Podudarnosti nisu pronađene" @@ -5875,52 +5928,52 @@ msgstr "Otvorena elektronička knjiga" msgid "Configure" msgstr "Konfiguriraj" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Koristi biblioteku lociranu na specificiranom putu." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Pokretanje minimizirano na sustavni poslužavnik." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Ubilježi informacije o uklanjanju grašaka u konzolu." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Ne provjeravaj osvježenja" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Ako si siguran da nije aktivan" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Ne može Krenuti " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s je već aktivan." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "možda funkcionira u sustavnom poslužavniku, u" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "gornji desni dio zaslona." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "donji desni dio zaslona." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "probaj ponovo startati svoje računalo." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "probaj obrisati datoteku." @@ -6080,11 +6133,11 @@ msgstr "&Prekini" msgid "ERROR: Unhandled exception" msgstr "GREŠKA: Nemanipulirani izuzetak" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Knjiga nema ni naslov niti ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Nisu pronađene podudarnosti za ovu knjigu" @@ -6219,11 +6272,11 @@ msgstr "Redoslijed " msgid "Fetch news from " msgstr "Dograbi vijesti od " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "Pretvori postojeće" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6317,7 +6370,7 @@ msgid "Save to disk in a single directory" msgstr "Spremi na disk u zajednički direktorij." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "Pohrani samo %s format na disk" @@ -6351,7 +6404,7 @@ msgstr "Pretvori grupno" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 msgid "Create catalog of books in your calibre library" -msgstr "" +msgstr "Kreiraj katalog knjiga u svojoj calibre biblioteci" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" @@ -6372,7 +6425,7 @@ msgid "Calibre Library" msgstr "Calibre Biblioteka" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "Odaberi lokaciju za vašu e-book biblioteku" @@ -6481,33 +6534,33 @@ msgstr "Arhive" msgid "Supported books" msgstr "Podržane knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Neuspjeh u čitanju metapodataka" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Neuspjeh u čitanju metapodataka iz slijedećeg" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "Nemoguće obrisati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "Niste odabrali knjigu" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "Odaberi formate za obrisati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6515,131 +6568,137 @@ msgstr "" "Odabrane knjige će biti permanentno izbrisane i datoteke uklonjene sa " "vašeg računala. Jeste li sigurni?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Uklanjanje knjiga sa uređaja." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Nije moguće preuzeti metapodatke" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "Niste odabrali knjigu" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "socijalni metapodaci" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "omoti" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "metapodaci" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Preuzimanje %s za %d knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Neuspjelo preuzimanje pojedinih metapodataka:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Neuspjelo preuzimanje metapodataka za slijedeće:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Neuspjelo preuzimanje metapodataka:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Nemoguće urediti metapodatke" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Nemoguće spremiti na disk" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Odaberite odredišni direktorij" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Greška kod spremanja" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Potkrala se greška pri spremanju." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Nije moguće spremiti neke knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "Klikni gumb za prikaz detalja da vidiš koji." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "Generiranje %s kataloga..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "Katalog generiran." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" -msgstr "" +msgstr "Odaberi destinaciju za %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "Pribavljanje vijesti sa " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr " pribavlljeno." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "Nemoguće pretvoriti" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "Pokretanje konverzije %d knjige(a)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "Nemoguć pregled" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "Nemoguće otvoriti mapu" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "Odabrano Više Knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6651,31 +6710,31 @@ msgstr "" "započet, ovaj proces se ne može zustaviti dok se ne završi. Da li želite " "nastaviti?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "%s nema raspoložive formate." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "Nemoguće konfigurirati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "Nemoguće konfigurirati dok postoje aktivni poslovi." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "Detaljni podaci nisu raspoloživi" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "Detaljni podaci nisu raspoloživi za knjige na uređaju." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "Greška u razgovoru sa uređajem" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6683,12 +6742,12 @@ msgstr "" "Došlo je do privremene greške u komunikaciji sa uređajem. Molimo islkjučite " "i ponovo priključite uređaj ili kompletno ponovo pokrenite sustav." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "Greška u Pretvorbi" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6696,23 +6755,23 @@ msgstr "" "

Nemoguće pretvoriti: %s

Ovo je DRMknjiga. Prvo " "morate ukloniti DRM koristeći alate drugih dobavljača." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" -msgstr "" +msgstr "Recept Onesposobljen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "Neuspjelo" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "Nevažeća lokacija biblioteke" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "Nemoguć pristup do %s. Korištenje %s kao biblioteke." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." @@ -6720,11 +6779,11 @@ msgstr "" "je rezultat napora brojnih volontera iz cijelog svijeta. Ako smatrate da je " "koristan, molimo razmislite o donaciji za podršku razvoju ovog projekta." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Imate aktivne poslove. Jeste li sigurni da hoćete prekinuti?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6734,11 +6793,11 @@ msgstr "" " Prekid može prouzrokovati korupciju uređaja.
\n" " Jeste li sigurni da hoćete da prekinete?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "UPOZORENJE: Aktivni poslovi" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6746,7 +6805,7 @@ msgstr "" "će nastaviti biti aktivan u sustavnom poslužavniku. Da zatvorite, odaberite " "Prekini u sadržajnom izborniku sustavnog poslužavnika." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" @@ -6754,11 +6813,11 @@ msgstr "" "Posljednja inačica: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "Obnova raspoloživa" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6923,7 +6982,7 @@ msgid "Options to customize the ebook viewer" msgstr "Opcije za prilagodbu preglednika elektroničke knjige" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "Zapamti zadnju korištenu veličinu zaslona" @@ -6980,7 +7039,7 @@ msgstr "Monospace veličina pisma u px" msgid "The standard font type" msgstr "Standardna vrsta pisma" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "&Pogledaj u rječniku" @@ -7040,92 +7099,92 @@ msgstr "Format knjige" msgid "Go to..." msgstr "Idi na..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "Pozicija u knjizi" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" "Pogledajte referencu. Da biste dobili broj reference, koristite mod " "reference." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "Traži tekst u knjizi" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "Pregled Ispisa" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "Odaberi elektroničku knjigu" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "Elektroničke knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "Dodaj knjižnu oznaku" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "Unesi naziv knjižne oznake:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "Nisu pronađeni parovi za: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "Učitavanje protoka..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "Izlaganje %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "Upravljaj Knjižnim Oznakama" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "Učitavanje elektroničke knjige..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "DRM Greška" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "

Ova knjiga je zaštićena DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "Nemoguće otvoriti elektroničku knjigu" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "Opcije za kontrolu preglednika" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Ako je naznačeno, kod pokretanj će preglednički prozor pokušati da dođe " "ispred." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "Ispiši javascript upozorenje i poruke na kontrolnu ploču" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7622,7 +7681,7 @@ msgstr "" "Maksimalan broj podudarnosti za vratiti po OPDS pretrazi. Ovo utječe na " "Stanza, WordPlayer i druge integracije." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7631,7 +7690,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7639,14 +7698,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7655,14 +7714,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7671,21 +7730,37 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7695,6 +7770,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -8009,9 +8091,9 @@ msgstr "Prikaži detaljne izlazne podatke. Korisno kod otkrivanja grešaka." #: /home/kovid/work/calibre/src/calibre/library/cli.py:671 msgid "Error: You must specify a catalog output file" -msgstr "" +msgstr "Greška: Morate specificirati izlaznu datoteku kataloga" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8031,28 +8113,28 @@ msgstr "" "\n" "For help on an individual command: %%prog command --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "" "

Preseljavanje stare baze podataka na ebook biblioteku u %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "Kopiranje %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "Sažimanje baze podataka" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "Provjera SQL integriteta..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "Provjera nedostajućih datoteka." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "ID provjeren" @@ -8284,7 +8366,7 @@ msgstr "Zaustavljen" msgid "Finished" msgstr "Završeno" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "U procesu..." @@ -8421,75 +8503,83 @@ msgstr "" msgid "Unknown News Source" msgstr "Nepoznat Izvor Vijesti" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "\"%s\" recept treba korisničko ime i lozinku." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "Skidanje završeno" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "Neuspjelo skidanje slijedećih artikala:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "Neuspjelo skidanje dijelova slijedećih artikala:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr " od " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "\tNeuspjele veze:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "Nije moguće ugrabiti članak. Pokrenite s -w da vidite razlog." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "Hvatanje dotoka..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "Dobijeni dotoci sa indeks stranice" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "Pokušaj skidanja omota..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "Početak skidanja [%d thread(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "Dotoci skinuti na %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "Nemoguće skinuti omot: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "Skidanje omota sa %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "Artikal bez naslova" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "Skinuti artikli: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "Neuspjelo skidanje artikla: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "Grabljenje dotoka" @@ -10548,9 +10638,6 @@ msgstr "Ne skidaj CSS liste postavki" #~ msgid "Kovid Goyal and John Schember" #~ msgstr "Kovid Goyal i John Schember" -#~ msgid "Default" -#~ msgstr "Zadano" - #~ msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." #~ msgstr "Ovaj profil je namijenjen za SONY PRS liniju. 500/505/700 itd." @@ -10572,6 +10659,13 @@ msgstr "Ne skidaj CSS liste postavki" #~ msgid "Produce more human-readable XML output." #~ msgstr "Proizvedi više ljudski čitljiv XML proizvod." +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Ova RTF datoteka ima osobinu koju calibre ne podržava. Pretvori ju prvo u " +#~ "HTML a zatim ju isprobaj." + #~ msgid "Portuguese" #~ msgstr "Portugalski" diff --git a/src/calibre/translations/hu.po b/src/calibre/translations/hu.po index eee4bfb75f..5c7b65d69f 100644 --- a/src/calibre/translations/hu.po +++ b/src/calibre/translations/hu.po @@ -7,21 +7,21 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-11 00:36+0000\n" -"PO-Revision-Date: 2010-01-10 23:11+0000\n" -"Last-Translator: Muszela Balázs \n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-09 05:47+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-12 04:45+0000\n" +"X-Launchpad-Export-Date: 2010-02-10 04:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" msgstr "Semmit nem csinál" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 @@ -29,8 +29,8 @@ msgstr "Semmit nem csinál" #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:203 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:414 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,26 +38,26 @@ msgstr "Semmit nem csinál" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /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/pdf.py:28 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 @@ -65,18 +65,18 @@ msgstr "Semmit nem csinál" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:597 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:787 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -97,43 +97,43 @@ msgstr "Semmit nem csinál" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:217 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:272 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:279 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:565 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:574 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:794 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:397 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:419 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:914 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1040 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1517 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1519 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1630 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 @@ -142,22 +142,26 @@ msgstr "Semmit nem csinál" msgid "Unknown" msgstr "Ismeretlen" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "Alap" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:149 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" msgstr "Fájltípus" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:183 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" msgstr "Metaadat olvasó" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:214 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 msgid "Metadata writer" msgstr "Metaadat író" +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" "Follow all local links in an HTML file and create a ZIP file containing all " @@ -230,11 +234,11 @@ msgstr "Metaadatok beállítása a %s típusú fájlokban." msgid "Set metadata from %s files" msgstr "Metadatok beállítása a következő fájlokból: %s" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:99 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "Konverzió bemenet" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:122 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 msgid "" "Specify the character encoding of the input document. If set this option " "will override any encoding declared by the document itself. Particularly " @@ -245,11 +249,11 @@ msgstr "" "dokumentum eredetei beállításait. Különösen hasznos olyan dokumentumoknál, " "ahol nincs, vagy hibásan van beállítva a karakterkódolás." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:225 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" msgstr "Konverzió kimenet" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:239 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." @@ -274,6 +278,7 @@ msgstr "" msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" +"Ez a SONY PRS sorozathoz készült profil, úgymint 500/505/600/700 stb." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 msgid "This profile is intended for the SONY PRS 300." @@ -392,7 +397,7 @@ msgstr "Nem találtam érvényes bővítményt itt: " msgid "Initialization of plugin %s failed with traceback:" msgstr "A %s bővítmény indítása a következő hibaüzenettel meghiusult:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:397 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 msgid "" " %prog options\n" "\n" @@ -404,17 +409,17 @@ msgstr "" " Igazítsa Calibret saját igényeihez külső pluginok betöltésével.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:403 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "Bővítmény hozzáadása a ZIP fájl elérési útjának megadásával." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:405 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" "Egy telepített bővítmény eltávolítása név alapján. Nincs hatással a " "beépített bővítményekre." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:407 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." @@ -422,15 +427,15 @@ msgstr "" "Bővítmény testreszabása. Adja meg a bővítmény nevét, és a kért beállítást, " "vesszővel elválasztva." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:409 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" msgstr "A telepített bővítőmodulok listázása" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:411 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 msgid "Enable the named plugin" msgstr "A bővítmény engedélyezése" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:413 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 msgid "Disable the named plugin" msgstr "A bővítmény letiltása" @@ -438,7 +443,7 @@ msgstr "A bővítmény letiltása" msgid "Communicate with Android phones." msgstr "Kapcsolódás Android telefonhoz." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:25 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -448,11 +453,11 @@ msgstr "" msgid "Communicate with the Binatone Readme eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Kapcsolódás Blackberry telefonhoz." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -462,7 +467,7 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Kapcsolódás EB600 olvasóhoz." @@ -504,6 +509,10 @@ msgstr "Eszköz illesztés" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Kapcsolódás IRex Digital Reader 1000 olvasóhoz." +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Kapcsolódás iRiver Story olvasóhoz" @@ -579,40 +588,40 @@ msgstr "" msgid "Transferring books to device..." msgstr "Könyvek küldése az eszközre..." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:173 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:180 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:160 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 msgid "Removing books from device..." msgstr "Könyvek eltávolítása az eszközről" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:208 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:175 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." msgstr "Metaadatok küldése az eszközre" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:214 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 msgid "Communicate with the Sony PRS-600/700/900 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:271 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "" "Nem tudtam érzékelni a %s lemezmeghajtót. Próbálkozzon újraindítással!" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:440 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:495 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." msgstr "A(z) %s meghajtó nem található" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:588 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." msgstr "Nem található felcsatlakozást segítő: %s" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:600 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." @@ -620,35 +629,35 @@ msgstr "" "Nem lehet felismerni a %s meghajtót. A kernel egy érvénytelen verziójú SYSFS-" "t támogat. http://calibre.kovidgoyal.net/user_manual/faq.html#id21" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:608 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 msgid "Unable to mount main memory (Error code: %d)" msgstr "A belső memória nem felismerhető. (Hiba kód: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:745 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:747 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 msgid "The reader has no storage card in this slot." msgstr "Ebben csatlakozóban nincs memóriakártya" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:749 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." msgstr "A következő kártyahely nem támogatott: %s" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:782 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" msgstr "Nincs elég hely a fő memóriában" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:784 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:786 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 msgid "There is insufficient free space on the storage card" msgstr "Nincs elég hely a memóriakártyán." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:803 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:826 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1417 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "Hírek (RSS)" @@ -695,8 +704,8 @@ msgstr "Eszköz-információ lekérdezése" msgid "Adding books to device metadata listing..." msgstr "Könyvek hozzáadása az eszköz metaadat listához..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:164 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:169 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 msgid "Removing books from device metadata listing..." msgstr "Könyvek eltávolítása az eszköz metaadat listáról..." @@ -799,8 +808,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Képek változatlan megtartása módosítás nélkül." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Oldal" @@ -1365,9 +1374,9 @@ msgstr "" "egyet, akkor egy generált borító készül a könyvhöz a címmel, szerzővel stb. " "Ez az opció letiltja ezt az automatikusan generált borítót." -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:143 -#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:128 -#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "Tartalomjegyzék:" @@ -1709,83 +1718,83 @@ msgstr "A dokumentumhoz csatolandó monospace betűkészlet" msgid "Comic" msgstr "Képregény" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:394 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1106 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Cím" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Szerző(k)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "Kiadó" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Producer" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Megjegyzés" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:344 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1110 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Címkék" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Sorozatok" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Nyelv" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "Dátum" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "Kiadás ideje" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "Jogok" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -1869,27 +1878,27 @@ msgstr "" msgid "Set the BookID in LRF files" msgstr "BookID(azonosító) beállítása LRF fájlokban" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 msgid "No file specified" msgstr "Nincs megadva fájl" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:159 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 msgid "Original metadata" msgstr "Eredeti metaadatok" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 msgid "Changed metadata" msgstr "Megváltozott metaadat" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:188 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" msgstr "OPF fájl létrehozva:" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" msgstr "Borító elmentve" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 msgid "No cover found" msgstr "Borító nem található" @@ -1931,7 +1940,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189 msgid "Downloads social metadata from amazon.com" -msgstr "" +msgstr "Közösségi metaadatok letöltése az amazon.com-ról" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 msgid "" @@ -2006,7 +2015,7 @@ msgstr "" "Töltse le a könyv ISBN által megadott borítóját a LibraryThing.com-ról\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Borító" @@ -2036,101 +2045,77 @@ msgstr "A generált Tartalomjegyzék címe." msgid "Disable compression of the file contents." msgstr "A fájltartalom tömörítésének tiltása." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Minden cikk" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Címlap" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Tartalomjegyzék" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "Szószedet" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "Köszönetnyilvánítás" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Irodalomjegyzék" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "Záradék" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "Szerzői jog" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "Ajánlás" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "Mottó" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "Előszó" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "Illusztrációk listája" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "Táblázatok listája" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Megjegyzések" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "Előszó (szerk.)" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Fő szöveg" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:53 -msgid "Options to control e-book conversion." -msgstr "Az ebook konvertálás beállításai" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:60 -msgid "Character encoding for input. Default is to auto detect." -msgstr "Bemeneti karakterkódolás. Alapértelmezett: automatikus felismerés." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:62 -msgid "Output file. Default is derived from input filename." -msgstr "Célfájl. Alapértelmezés szerint a forrásfájl nevéből lesz generálva." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:64 -msgid "Produce more human-readable XML output." -msgstr "Még olvashatóbb XML kimenet létrehozása." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:66 -msgid "Useful for debugging." -msgstr "Hasznos hibakeresésnél." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:71 -msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" -msgstr "Használat: ebook-convert INFILE OUTFILE [OPTIONS..]" - #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 msgid "%s format books are not supported" msgstr "A %s formátumú könyvek sajnos nem támogatottak" @@ -2490,13 +2475,12 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "A kimeneti karakterkódolás megadása. Az alapértelmezett: cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:183 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Ez az RTF fájl olyan tulajdonságokat tartalmaz, melyeket a calibre nem " -"támogat. Konvertálja át először HTML-ba, majd próbálja újra." #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2560,162 +2544,167 @@ msgstr "" "Mindenképpen darabolja fel a sorokat a maximális sorhossz értéknél, akkor is " "ha nincs szóköz. A minimálisnál kisebb érték is megadható" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "Alapbeállításként a memóriakártyára küldje a belső memória helyett" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Megerősítés törlés előtt" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Eszköztárikonok mérete" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Gombfeliratok mutatása az eszköztárban" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "A főablak méretei" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Figyelmeztetés új verzió esetén." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Római számok használata a könyvsorozatok számozásánál" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Címkék rendezése darabszám szerint csökkenő sorrendben" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "A borító alapján történő böngészéskor a megjelenített borítók száma" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Az LRF-be való konvertálás alapértelmezett értékei" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "A beépített LRF olvasóprogram beállításai" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "A beépített olvasóprogram által megjelenített formátumok" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "A könyvlistában megjelenítendő oszlopok" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "A tartalomkiszolgáló automatikus indítása az alkalmazás indulásakor." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "A legrégebbi adatbázisban megtartandó hír" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Ikon megjelenítése a tálcán" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Letöltött hírek küldése az eszközre" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Könyvek törlése az adatbázisból az eszközre való feltöltés utén" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "A borítók megjelenítése külön ablakban a calibre főablaka helyett." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "A tálcaikon ne mutassa a figyelmeztetéseket" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Az alapértelmezett művelet a 'Küldés eszközre' gombra való kattintáskor" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "A sorban álló műveletek maximális száma" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" +msgstr "Közösségi metaadatok letöltése (címkék, értékelés stb.)" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" "A maximális párhuzamosan végrehajtandó műveletek számának korlátozása a " "processzorok számára" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Másolva" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Másolás" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Másolás a vágólapra" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Válasszon a fájlok közül" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "Keresés a következőben:" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "Hozzáadás..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "Keresés minden almappában..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:197 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Nincsenek könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "Hozzáadva" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "A hozzáadás nem sikerült" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2723,29 +2712,152 @@ msgstr "" "Probléma történt a könyvek hozzáadása közben. Indítsa újra a calibre-t és " "válasszon ki kevesebbet, amíg meg nem találja a problémát okozó könyvet." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "Már létezik egy ilyen példány!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" "Ugyanezzel a címmel már létezik egy könyv az adatbázisban. Mégis hozzáadja?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "Duplikációk hozzáadása..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "Mentés..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "Elmentve" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "Options specific to" +msgstr "Beállítás:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" +msgstr "kimenet" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +msgid "Form" +msgstr "Űrlap" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 +msgid "Catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" "For settings that cannot be specified in this dialog, use the values saved " @@ -2766,22 +2878,6 @@ msgstr "Az adott kimeneti formátumnak megfelelő beállítások" msgid "Comic Input" msgstr "Képregény bemenet" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "Options specific to" -msgstr "Beállítás:" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 @@ -2790,35 +2886,6 @@ msgstr "Beállítás:" msgid "input" msgstr "bemenet" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 -msgid "Form" -msgstr "Űrlap" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" @@ -2918,12 +2985,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2961,17 +3028,6 @@ msgstr "" msgid "EPUB Output" msgstr "EPUB kimenet" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "output" -msgstr "kimenet" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" msgstr "Oldaltörésnél ne legyen darabolás" @@ -3270,7 +3326,7 @@ msgid "Change the title of this book" msgstr "Könyv címének megadása" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "Szerző(k) " @@ -3288,7 +3344,7 @@ msgstr "" "azokat elválasztani" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Kiadó: " @@ -3299,7 +3355,7 @@ msgid "Ta&gs: " msgstr "Címkék: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3309,15 +3365,15 @@ msgstr "" "vesszővel elválasztva." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Sorozat:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3328,30 +3384,42 @@ msgstr "Ismert sotozatok listája. Hozzáadhat újakat is." msgid "Book " msgstr "Könyv " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "MOBI kimenet" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "Alapértelmezett" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "A Tartalomjegyzék címe:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "Képek újraméretezése Palm eszközökhöz" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "A szerző-rendezési forma használata szerzőként" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "A fájltartalom tömörítésének tiltása" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "Ne adjon Tartalomjegyzéket a könyvhöz" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Oldalbeállítás" @@ -3439,7 +3507,7 @@ msgid "RB Output" msgstr "RB kimenet" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "Válassza ki a kívánt formátumot olvasásra" @@ -3480,7 +3548,7 @@ msgid "Options specific to the input format." msgstr "A bemeneti formátumnak megfelelő beállítások" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" @@ -3649,8 +3717,8 @@ msgid "Force maximum line lenght" msgstr "Mindenképpen a maximális sorhossz hazsnálata" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 @@ -3737,193 +3805,199 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:39 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Részletek nem elérhetőek." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 msgid "Device no longer connected." msgstr "Az eszköz már nem csatlakozik." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 msgid "Get device information" msgstr "Eszköz-információk lekérdezése" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 msgid "Get list of books on device" msgstr "Az eszközön lévő könyvek listájának letöltése" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 msgid "Send metadata to device" msgstr "Metaadatok küldése az eszközre" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 msgid "Upload %d books to device" msgstr "%d könyv feltöltése az eszközre" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:266 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 msgid "Delete books from device" msgstr "Könyvek törlése az eszközről" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 msgid "Download books from device" msgstr "Könyvek letöltése az eszközről" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 msgid "View book on device" msgstr "Könyv megnyitása ez eszközön" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:300 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 msgid "and delete from library" msgstr "és törlés az adatbázisból" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 msgid "Set default send to device action" msgstr "Alapértelmezett eszközre küldési művelet beállítása" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:326 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:333 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:335 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 msgid "Email to" msgstr "Email küldése" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 msgid "Send to main memory" msgstr "Küldés a belső memóriába" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 msgid "Send to storage card A" msgstr "Küldés az 'A' memóriakártyára" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 msgid "Send to storage card B" msgstr "Küldés a 'B' memóriakártyára" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 msgid "Send specific format to main memory" msgstr "A meghatározott formátumú változat küldése a belső memóriába" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 msgid "Send specific format to storage card A" msgstr "A meghatározott formátum küldése az 'A' memóriakártyára" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Send specific format to storage card B" msgstr "A meghatározott formátum küldése a 'B' memóriakártyára" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 msgid "selected to send" msgstr "kiválasztva küldéshez" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 msgid "Choose format to send to device" msgstr "Az eszközre küldendő formátum kiválasztása" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 msgid "No device" msgstr "Nincs eszköz" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 msgid "Cannot send: No device is connected" msgstr "Nem tudom küldeni: nincs csatlakoztatott eszköz" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:526 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 msgid "No card" msgstr "Nincs memóriakártya" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:527 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 msgid "Cannot send: Device has no storage card" msgstr "Nem tudom küldeni: az eszközben nincs memóriakártya" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 msgid "E-book:" msgstr "E-book:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 msgid "Attached, you will find the e-book" msgstr "Az ebook csatolva" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 msgid "in the %s format." msgstr "%s formátumban." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 msgid "Sending email to" msgstr "Email küldése:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:620 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:627 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:843 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 msgid "No suitable formats" msgstr "Nincs megfelelő formátum" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:621 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 msgid "Auto convert the following books before sending via email?" msgstr "" "Az email-ben való elküldés előtt automatikusan konvertáljam a kijelölt " "könyveket?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" "Nem lehet elküldeni a következő könyveket, mert nem léteznek a megadott " "formátumokban:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 msgid "Failed to email books" msgstr "A könyvek elküdése nem sikerült" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:647 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 msgid "Failed to email the following books:" msgstr "Hiba a következő könyvek email-ben való elküldése közben:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:651 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 msgid "Sent by email:" msgstr "Emailbe elküldve:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:678 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 msgid "News:" msgstr "Hírek:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "Sent news to" msgstr "Hírek elküldve:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:721 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Az eszközre való feltöltés előtt automatikusan konvertáljam a kijelölt " "könyveket?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:751 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." msgstr "Hírek küldése az eszközre" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 msgid "Sending books to device." msgstr "Könyvek küldése az eszközre." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:844 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 msgid "" "Could not upload the following books to the device, as no suitable formats " "were found. Convert the book(s) to a format supported by your device first." @@ -3932,11 +4006,11 @@ msgstr "" "formátumú változatuk. Konvertálja át a nem megfelelőeket valamelyik, az " "eszközöd által támogatott formátumra." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 msgid "No space on device" msgstr "Nincs elég hely az eszközön" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" @@ -3955,34 +4029,68 @@ msgstr "Almappák használata" msgid "Save &template:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:351 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Elérési út" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" msgstr "Formátumok" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "&Előző" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "&Következő" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "Könyveim" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 +msgid "Generate catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "Formátum kiválasztása" @@ -4087,133 +4195,133 @@ msgstr "" msgid "new email address" msgstr "új email cím" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1224 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Hiba" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "A parancssori eszközök telepítése nem sikerült." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Parancssori eszközök installálva" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Parancssori eszközök installálva:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Ha áthelyezi a calibre.app-ot, akkor a parancssori eszközöket újra kell " "installálnia." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Nincs érvényes plugin elérési útvonal" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "Nem érvényes plugin elérési út: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Plugin kiválasztása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Ezt a plugint nem lehet letiltani" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "A következő plugint nem lehet letiltani: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "A pluginnak nincsenek beállításai" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "A %s pluginnak nincsenek beállításai" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "A beépített pluginok nem távolíthatóak el" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr " nem törölhető. Ez egy beépített plugin. Tiltsd le inkább." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Hibanapló:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Hozzáférési naplófájl:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "A tartalomkiszolgáló indítása nem sikerült" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Könyvek helyének kiválasztása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Érvénytelen méret" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" "A következő méret érvénytelen: %s. A méretnek szélességxmagasság formátumban " "kell lennie." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Érvénytelen adatbázis elérési útvonal" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Érvénytelen adatbázis elérési útvonal " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Mappának kell lennie." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" "Érvénytelen adatbázis elérési útvonal.
A következő helyre nem lehet " "írni: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Adatbázis ellenőrzése" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Az adatbázis ellenőrzése nem sikerült" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Néhány hibát találtam" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4314,13 +4422,13 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Beállítások" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4328,23 +4436,27 @@ msgstr "" "Könyvek helye (A könyvek ezen a mappán belül a szerző és a metadata.db " "fájlban található metaadatok alapján almappákban kerülnek tárolásra):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Új adatbázis helyének kiválasztása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Figyelmeztetés, ha az új verzió elérhető" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "Alapértelmezett hálózati időtúllépés:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4352,154 +4464,154 @@ msgstr "" "Alapértelmezett hálózati időtúllépés a letöltéshez (bármilyen internetet " "igénylő művelethez)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " másodperc" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Nyelv kiválasztása (újraindítás szükséges):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Normál" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Magas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Alacsony" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "Műveletek prioritása:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Kimeneti formátum:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Bemeneti formátumok preferált sorrendje:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Római számok használata a könyvsorozatok számozásánál" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "Ikon megjelenítése a tálcán (újraindítás szükséges)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Figyelmeztetések megjelenítése a tálcaikonon" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" "A borító alapján történő keresés külön ablakba (újraindítás szükséges)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Keresés gépelés közben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Letöltött hírek automatikus küldése a csatlakoztatott eszközre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "Hírek törlése az adatbázisból automatikus eszközre küldés után" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "Megjelenített borítók száma böngészéskor (borító böngészés üzemmódban, " "újraindítást igényel)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Eszköztár" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Nagy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Közepes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Kicsi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "Eszköztár gombjainak mérete" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Gombfeliratok mutatása az eszköztárban" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Látható oszlopok kiválasztása az adatbázis nézetben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "A beépített nézőke használata a következőkhöz:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Email cím hozzáadása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "Email hozzáadása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Legyen alapértelmezett" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "Email eltávolítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" "A calibre el tudja küldeni könyveit emailben Önnek (vagy az eszközére, ha az " "alkalmas rá)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "A sorban álló &műveletek maximális száma (újraindítás szükséges):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "Adatbázis ellenőrzése" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "Parancssori eszközök installálása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "A maximális párhuzamosan végrehajtandó műveletek számának korlátozása a " "processzor magok számára" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4509,31 +4621,31 @@ msgstr "" "bárhonnan elérhető lesz gyűjteménye. A beállítások változtatása csak a " "szerver újraindítása után lép életbe." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "Szerver port:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Felhasználónév:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Jelszó:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "Ha nem ad meg jelszót, akkor bárki hozzáférhet az adatbázisához." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4541,41 +4653,41 @@ msgstr "" "A megjelenített borító maximális mérete (szélességxmagasság). Nagyobb méretű " "borítók át lesznek méretezve. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Max. borító méret:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "Jelszó mutatása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "Szerver indítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "Szerver leállítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "Szerver teszt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Szerver automatikus indítása a program indulásakor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Szerverüzenetek megtekintése" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4591,7 +4703,7 @@ msgstr "" "Stanza olvasóprogramjában. A 'myhostname' helyére a calibre-t futtató " "számítógép teljes neve, vagy IP címe kerüljön." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4599,27 +4711,27 @@ msgstr "" "Itt beállíthatja a calibre működését, azzal, hogy milyen pluginokat " "használjon." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Plugin engedélyezése/tiltása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "Plugin testreszabása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "Plugin eltávolítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Új plugin hozzáadása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Plugin &fájl:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Hozzáadás" @@ -4666,7 +4778,7 @@ msgstr "Engedélyezett változók:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 msgid "Downloading social metadata, please wait..." -msgstr "" +msgstr "Közösségi metaadatok letöltése, kérem várjon..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" @@ -4688,42 +4800,42 @@ msgstr "Rendezési forma" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Metaadatok keresése..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Nem találhatók metaadatok" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "A metaadat letöltés nem sikerült. Próbálja meg később." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Figyelem" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Metadatok nem letölthetőek a következő helyről:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Nem találhatók metaadatok" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Nem található metaadat, próbálja meg finomítani a könyvcímet, szerzőt vagy " "az ISBN-t." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Metaadatok letöltése" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4736,26 +4848,32 @@ msgstr "" "href=\"http://www.isbndb.com\">felhasználói fiókkal és be kell írnia a " "kapott kulcsot az alábbi mezőbe." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "Felhasználói kulcs:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Letöltés" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Találatok" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "Válassza ki azt, amelyik a leginkább illik a könyvéhez" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +"Közösségi metaadatok (címkék, értékelés stb.) letöltése a kiválasztott " +"könyvhöz" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" @@ -4777,24 +4895,24 @@ msgstr "Műveletek részleteinek megjelenítése" msgid "Stop &all jobs" msgstr "Minden művelet leállítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Metaadatok szerkesztése" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Metaadat infromációk" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "Rendezési forma automatikus beállítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "Rendezési forma: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -4803,47 +4921,51 @@ msgstr "" "A szerző rendezési formájának megadása. Például Charles Dickens-t célszerű " "Dickens, Charles-ként rendezni." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "Értékelés:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "A könyv értékelése. 0-5 csillag." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " csillag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Címkék hozzáadása: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Címke-szerkesztő megnyitása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "Címkék eltávolítása:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "A könyvből eltávolítandó címkék vesszővel elválasztott listája " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Formátum eltávolítása:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4856,113 +4978,113 @@ msgid "Choose formats for " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 msgid "Books" msgstr "Könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 msgid "No format selected" msgstr "Nincs formátum kiválasztva" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "Could not read metadata" msgstr "Nem lehet olvasni a metaadatokat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 msgid "Could not read metadata from %s format" msgstr "Nem lehet kiolvasni a metaadtokat a %s formátumból." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:245 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 msgid "Could not read cover" msgstr "Nem lehet olvasni a borítót" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 msgid "Could not read cover from %s format" msgstr "Nem lehet kiolvasni a borítót a %s formátumból" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:252 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 msgid "The cover in the %s format is invalid" msgstr "A %s formátumban lévő borító érvénytelen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "Borító letöltése..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "Nem lehet letölteni a borítót" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "Nem lehet letölteni a borítót.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "Időtúllépés letöltés közben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "Nem található borító ehhez a könyvhöz. Próbálja meg először az ISBN-t " "meghatározni." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Hibás borító" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "A borító nem érvényes képfájl" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "Hibák történtek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" -msgstr "" +msgstr "Hiba történt a közösségi metaadatok letöltése közben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "Metadatok nem letölthetőek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" "Legalább az egyik adatot meg kell adnia a következők közül: ISBN, könyv " "címe, szerző vagy kiadó" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "Hozzáférés megtagadva" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "Nem lehet megnyitni: %s. Esetleg másik program használja?" @@ -5254,11 +5376,11 @@ msgstr "" msgid "Choose formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 msgid "Are your sure?" msgstr "Biztos benne?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" @@ -5655,39 +5777,39 @@ msgstr "Nem elérhető" msgid " - Jobs" msgstr " - Műveletek" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1108 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Méret (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1109 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Dátum" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Értékelés" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:343 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "None" msgstr "Nincs" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "%s. rész - %s sorozat" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "Nem engedélyezett" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -5695,11 +5817,11 @@ msgstr "" "Az eszközre húzás nem támogatott. Először adja hozzá a könyvet a calibre " "adatbázishoz." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1044 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "Formátum" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1098 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "Duplakattintás a szerkesztéshez

" @@ -5728,7 +5850,7 @@ msgid "No matches for the search phrase %s were found." msgstr "Nincs találat a keresett kifejezésre: %s." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "Nincs találat" @@ -5775,52 +5897,52 @@ msgstr "eBook megnyitása" msgid "Configure" msgstr "Beállítás" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "A megadott elérési úton lévő adatbázis használata." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "A tálcára összecsukott állapotban induljon" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Hibakeresési információk megjelenítése a konzolon" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Ne ellenőrizze a frissítéseket" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Ha biztos benne, hogy nem fut" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Indítás nem lehetséges " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s már fut." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "a képernyő jobb felső sarka." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "a képernyő jobb alsó részén." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "próblja meg újraindítani a számítógépet" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5981,11 +6103,11 @@ msgstr "&Kilépés" msgid "ERROR: Unhandled exception" msgstr "Ismeretlen hiba történt" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "A könyvnek sem címe sem pedig ISBN azonosítója sincs." -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Nem található ilyen könyv" @@ -5993,37 +6115,37 @@ msgstr "Nem található ilyen könyv" msgid "Search" msgstr "Keresés" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 msgid "Already assigned" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 msgid "already assigned to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid " or " msgstr " vagy " -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 msgid "&Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 msgid "Customize shortcuts for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid "Keys" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" msgstr "" @@ -6119,11 +6241,11 @@ msgstr "" msgid "Fetch news from " msgstr "Hírek letöltése a következő helyről: " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6218,7 +6340,7 @@ msgid "Save to disk in a single directory" msgstr "Mentés lemezre egy mappába" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1659 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "Csak a(z) %s formátum mentése a lemezre" @@ -6250,50 +6372,58 @@ msgstr "Egy könyv konvertálása" msgid "Bulk convert" msgstr "Csoportos konvertálás" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" msgstr "Beállítás Varázsló indítása" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 msgid "Similar books..." msgstr "Hasonló könyvek..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:468 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 msgid "Bad database location" msgstr "Hibás adatbázis elérési útvonal" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 msgid "Calibre Library" msgstr "Calibre Library" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1815 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "Válasszon elérési utat az adatbázisod számára" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:685 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" msgstr "Böngészés borítók alapján" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 msgid "Device: " msgstr "Eszköz: " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:835 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 msgid " detected." msgstr " felismerve" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:859 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 msgid "Connected " msgstr "Csatlakozva: " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 msgid "Device database corrupted" msgstr "Az eszköz adatbázis hibás" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 msgid "" "\n" "

The database of books on the reader is corrupted. Try the " @@ -6322,86 +6452,86 @@ msgstr "" " \n" " " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:978 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1025 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 msgid "Uploading books to device." msgstr "Könyvek feltöltése az eszközre." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 msgid "EPUB Books" msgstr "EPUB könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:987 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 msgid "LRF Books" msgstr "LRF könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:988 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 msgid "HTML Books" msgstr "HTML könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 msgid "LIT Books" msgstr "LIT könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 msgid "MOBI Books" msgstr "MOBI könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:991 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 msgid "Text books" msgstr "Text könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:992 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 msgid "PDF Books" msgstr "PDF könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 msgid "Comics" msgstr "Képregény" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:994 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 msgid "Archives" msgstr "Archívumok" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1034 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Hiba történt a metaadatok olvasása közben" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1035 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Nem sikerült a metaadatok olvasása a következőből:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1057 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1545 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1564 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "Nincs könyv kiválasztva" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1083 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1119 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6409,110 +6539,137 @@ msgstr "" "A kiválasztott könyvek véglegesen törölve lesznek a számítógépedről. " "Biztosan törölni akarja?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1146 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Könyvek törlése az eszközről." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1177 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Nem lehet letölteni a metaadatokat" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1178 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1235 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1268 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1293 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "Nincs könyv kiválasztva." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1195 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "borítók" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1195 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "metaadatok" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "%s letöltése %d könyvhöz" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Néhány metaadatot nem sikerült letölteni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1220 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Hiba történt a metaadatok letöltése közben a következőhöz:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1223 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Nem sikerült metaadatokat letölteni:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1267 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Metaadat nem szerkeszthető" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Nem lehet lemezre menteni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1295 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Válassza ki a célkönyvtárt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1322 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Mentési hiba" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1323 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Hiba történt mentés közben." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1330 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1331 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Néhány könyvet nem sikerült menteni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1332 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "Kattintson a 'Részletek megjelenítése' gombra" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1351 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "Hírek letöltése: " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1365 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr " letöltve" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "Nem lehet konvertálni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1434 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "%d könyv konvertálása" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1545 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1601 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "Nem lehet a könyvet olvasni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1563 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "A mappát nem lehet megnyitni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1585 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "Több könyv is ki van választva" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1586 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6523,31 +6680,31 @@ msgstr "" "lelassíthatja a gépedet. Ha a művelet elindult, már nem lehet leállítani. " "Biztosan folytatja?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1602 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "Nincs elérhető formátum a következőhöz: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1643 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "Beállítás nem lehetséges" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "Művelet végrehajtása közben nem lehet a beállításokat változtatni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "Nincs részletes információ" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "A könyvekhez nincsenek részletes információk az eszközön." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1743 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "Hiba a kapcsolatban" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6555,12 +6712,12 @@ msgstr "" "Hiba az eszközkapcsolatban. Válassza le majd csatlakoztassa újra az eszközt " "és/vagy indítssa újra az eszközt, esetleg a programot." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1767 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1795 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "Konvertálási hiba" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1768 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6570,23 +6727,23 @@ msgstr "" "egy külső program segítségével a DRM-et (Digital Rights Management) el kell " "távolítania." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1796 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "Nem sikerült" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1824 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "Érvénytelen adatbázis elérési útvonal" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1825 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "Nem elérhető: %s. Helyette %s lesz az adatbázis." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1875 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." @@ -6594,11 +6751,11 @@ msgstr "" "sok önkéntes erőfeszítéseinek eredménye a világ minden tájáról. Ha " "hasznosnak találja, kérem, támogassa a fejlesztést." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1900 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Folyamatban van néhány művelet végrehajtása. Megszakítja?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6608,11 +6765,11 @@ msgstr "" " A kilépés adatvesztést okozhat az eszközön.
\n" " Biztos, hogy ki akarsz lépni??" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1907 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "FIGYELEM: Aktív műveletek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1959 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6620,7 +6777,7 @@ msgstr "" "tovább fut a tálcán. A bezáráshoz válassza a Kilépést a tálcaikon " "menüjéből." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1978 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" @@ -6628,11 +6785,11 @@ msgstr "" "Legújabb verzió: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "Frissítés elérhető" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1987 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6694,69 +6851,69 @@ msgstr "Exportálás" msgid "Import" msgstr "Importálás" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" msgstr "Ebook olvasó beállítása" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 msgid "&Font options" msgstr "Betűbeállítások" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 msgid "Se&rif family:" msgstr "Serif ('talpas') betűkészlet:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 msgid "&Sans family:" msgstr "Sans ('talp nélküli') betűkészlet:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 msgid "&Monospace family:" msgstr "Monospace(rögzített szélességű) betűkészlet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 msgid "&Default font size:" msgstr "Alap betűtípus" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 msgid " px" msgstr " képpont" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 msgid "Monospace &font size:" msgstr "Monospace(rögzített szélességű) betűméret" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 msgid "S&tandard font:" msgstr "&Alap betűtípus:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 msgid "Serif" msgstr "Serif(talpas)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 msgid "Sans-serif" msgstr "Sans-serif ('talp nélküli')" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace" msgstr "Monospace(rögzített szélességű)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 msgid "Remember last used &window size" msgstr "Az utoljára használt ablakméret megjegyzése" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 msgid "Maximum &view width:" msgstr "Maximális ablakszélesség" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 msgid "H&yphenate (break line in the middle of large words)" msgstr "Hosszú szavak elválasztása" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 msgid "" "The default language to use for hyphenation rules. If the book does not " "specify a language, this will be used." @@ -6764,23 +6921,27 @@ msgstr "" "Az elválasztás alapértelmezett nyelve. Ha a könyv nem tartalmaz nyelvi " "adatokat, akkor ez lesz használva." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 msgid "Default &language for hyphenation:" msgstr "Alapértelmezett elválasztási nyelv." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" msgstr "Felhasználói stíluslap" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 msgid "&General" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 msgid "Double click to change a keyboard shortcut" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 msgid "&Keyboard shortcuts" msgstr "" @@ -6793,12 +6954,12 @@ msgid "Options to customize the ebook viewer" msgstr "Ebook olvasó beállítása" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "Az utoljára használt ablakméret megjegyzése" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -6810,43 +6971,47 @@ msgstr "" msgid "Maximum width of the viewer window, in pixels." msgstr "Az olvasóprogram ablakának maximális szélessége képpontban." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Hyphenate text" msgstr "Szöveg elválasztás" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Default language for hyphenation rules" msgstr "Az elválasztási szabályok nyelve" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 msgid "Font options" msgstr "Betűbeállítások" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 msgid "The serif font family" msgstr "Serif(talpas) betűkészlet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 msgid "The sans-serif font family" msgstr "Sans-serif ('talp nélküli') betűkészlet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 msgid "The monospaced font family" msgstr "Monospace(rögzített szélességű) betűkészlet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The standard font size in px" msgstr "Az alap betűméret pixelben" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 msgid "The monospaced font size in px" msgstr "Monospace(rögzített szélességű) betűméret pixelben" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The standard font type" msgstr "Alap betűtípus" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "" @@ -6906,93 +7071,93 @@ msgstr "Könyvformátum" msgid "Go to..." msgstr "Ugrás..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "Könyvbéli pozíció" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" "Ugrás egy referenciára. A referencia számok használatához be kell kapcsolnia " "a Referencia Módot" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "Szöveg keresése a könyvben" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "Nyomtatási kép" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "Ebook választás" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "Ebook-ok" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "Könyvjelző hozzáadása" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "Könyvjelző nevének megadása" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "Nincs találat a következőhöz: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "Folyamatban..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "%s létrehozása" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "Könyvjelzők kezelése" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "Ebook betöltése..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "DRM hiba" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "" "

Ez a könyvDRM-es(Digitális Jogvédelemmel ellátva)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "Nem lehet megnyitni a könyvet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "Az ebook olvasó program beállításai" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Ha be van állítva, akkor az olvasóprogram megpróbál az előtérbe kerülni " "induláskor." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "Javascript és konzolüzenetek megjelenítése a konzolon" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7059,6 +7224,14 @@ msgid "Print eBook" msgstr "eBook nyomtatása" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 msgid "" "Library\n" "%d\n" @@ -7068,7 +7241,7 @@ msgstr "" "%d\n" "könyv és hír" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 msgid "" "Reader\n" "%s\n" @@ -7078,7 +7251,7 @@ msgstr "" "%s\n" "szabad" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 msgid "" "Card A\n" "%s\n" @@ -7088,7 +7261,7 @@ msgstr "" "%s\n" "szabad" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 msgid "" "Card B\n" "%s\n" @@ -7098,39 +7271,39 @@ msgstr "" "%s\n" "szabad" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 msgid "Click to see the books available on your computer" msgstr "A számítógépen lévő könyvek megjelenítése." -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 msgid "Click to see the books in the main memory of your reader" msgstr "A készülék belső memóriájában lévő könyvek megjelenítése" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 msgid "Click to see the books on storage card A in your reader" msgstr "A könyvolvasó eszköz 'A' memóriakártyáján lévő könyvek megjelenítése" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 msgid "Click to see the books on storage card B in your reader" msgstr "A könyvolvasó eszköz 'B' memóriakártyáján lévő könyvek megjelenítése" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 msgid "Change Case" msgstr "Kisbetű - nagybetű váltás" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 msgid "Upper Case" msgstr "Nagybetűk" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 msgid "Lower Case" msgstr "Kisbetűk" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 msgid "Swap Case" msgstr "Kisbetű - nagybetű váltás" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 msgid "Title Case" msgstr "Minden Szó Nagybetűvel Kezdődik" @@ -7186,7 +7359,7 @@ msgstr "" msgid "Could not move library" msgstr "Nem lehet áthelyezni az adatbázist" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 msgid "welcome wizard" msgstr "beállítás varázsló" @@ -7473,6 +7646,102 @@ msgid "" "WordPlayer, etc. integration." msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 +msgid "" +"Include 'Titles' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7724,7 +7993,42 @@ msgstr "" msgid "You must specify some ids or the %s option" msgstr "Meg kell adnia néhány ID-t vagy a %s opciót" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:591 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +msgid "Show detailed output information. Useful for debugging" +msgstr "" +"Részletes kimeneti információk megjelenítése. Hasznos hibakeresésnél." + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7736,27 +8040,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1656 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "

Régi adatbázis áthozatala a jelenlegibe: %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1685 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "Másolás: %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1702 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "Adatbázis tömörítése" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1795 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "SQL adatbázis ellenőrzése" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1832 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "Hiányzó fájlok keresése" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1854 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "Ellenőrzött ID" @@ -7769,50 +8073,52 @@ msgid "The authors" msgstr "Szerzők" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 -msgid "The author sort string" -msgstr "Szerző rendezési forma" +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:27 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 msgid "The tags" msgstr "Címkék" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 msgid "The series" msgstr "Sorozat" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 msgid "The series number. To get leading zeros use {series_index:0>3s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 msgid "The rating" msgstr "Értékelés" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 msgid "The ISBN" msgstr "ISBN szám" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 msgid "The publisher" msgstr "Kiadó" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 msgid "The date" msgstr "Dátum" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 msgid "The published date" msgstr "Kiadás dátuma" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The calibre internal id" msgstr "Calibre azonosító" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:45 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "Options to control saving to disk" msgstr "Lemezre mentés beállításai" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:51 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 msgid "" "Normally, calibre will update the metadata in the saved files from what is " "in the calibre library. Makes saving to disk slower." @@ -7820,7 +8126,7 @@ msgstr "" "Alapesetben a calibre a mentett fájlokban felülírja a metaadatokat az " "adatbázisban lévőkkel. Ez lassítja a mentési folyamatot." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:54 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 msgid "" "Normally, calibre will write the metadata into a separate OPF file along " "with the actual e-book files." @@ -7828,14 +8134,14 @@ msgstr "" "Alapesetben a calibre a metaadatokat egy különálló OPF fájlba írja is a " "könyv mappájában." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:57 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 msgid "" "Normally, calibre will save the cover in a separate file along with the " "actual e-book file(s)." msgstr "" "Alapesetben a calibre a borítót önálló képfájlként a könyv mappájába menti." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:60 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 msgid "" "Comma separated list of formats to save for each book. By default all " "available books are saved." @@ -7843,7 +8149,7 @@ msgstr "" "A mentendő formátumok vesszővel elválasztott listája. Alapesetben minden " "formátum mentve lesz." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:63 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 msgid "" "The template to control the filename and directory structure of the saved " "files. Default is \"%s\" which will save books into a per-author " @@ -7854,7 +8160,7 @@ msgstr "" "szerzőnkénti mappákba menti, a fájlnév pedig tartalmazza a címet és a " "szerzőt. Elérhető opciók: {%s}" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:68 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 msgid "" "The template to control the filename and directory structure of files sent " "to the device. Default is \"%s\" which will save books into a per-author " @@ -7862,7 +8168,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:75 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -7874,22 +8180,22 @@ msgstr "" "az opciót, akkor néhány esetben hibát tapasztalhat, attól függően, hogy az " "Ön által használt fájlrendszernek milyen jó a UNICODE támogatása." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:81 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 msgid "" "The format in which to display dates. %d - day, %b - month, %Y - year. " "Default is: %b, %Y" msgstr "" "A dátum formázása. %Y - év, %b - hónap, %d - nap. Alapértelmezett: %b, %Y." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:84 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Convert paths to lowercase." msgstr "Elérési út kisbetűssé alakítása" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:86 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Replace whitespace with underscores." msgstr "Szóközök helyettesítése alsóvonallal" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:245 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "A kívánt formátum nem elérhető" @@ -7897,7 +8203,7 @@ msgstr "A kívánt formátum nem elérhető" msgid "Password to access your calibre library. Username is " msgstr "A calibre adatbázis jelszava. Felhasználónév: " -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" @@ -7907,7 +8213,7 @@ msgstr "" "\n" "A 'calibre' tartalom kiszolgáló indítása." -#: /home/kovid/work/calibre/src/calibre/library/server.py:858 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "" @@ -7927,47 +8233,47 @@ msgstr "" "Ha szóközöket tartalmazó paramétereket ad meg %prog-nak, akkor a paraméterek " "idézőjelek között legyenek." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:631 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 msgid "Path to the database in which books are stored" msgstr "A könyveket tartalmazó adatbázis elérési útja" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:633 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 msgid "Pattern to guess metadata from filenames" msgstr "Minta a metaadatok kinyerésére a fájlnévből" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:635 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 msgid "Access key for isbndb.com" msgstr "Felhasználói kulcs az isbndb.com-hoz:" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:637 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 msgid "Default timeout for network operations (seconds)" msgstr "Alap időtúllépés a hálózati műveletekhez (másodpercben)" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:639 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 msgid "Path to directory in which your library of books is stored" msgstr "A könyveket tartalmazó adatbázisfájl mappájának elérési útja" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:641 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 msgid "The language in which to display the user interface" msgstr "A felhasználói felület nyelve:" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:643 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 msgid "The default output format for ebook conversions." msgstr "Az ebook konvertálás alapértelmezett kimeneti formátuma." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:647 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 msgid "Ordered list of formats to prefer for input." msgstr "A bementi formátum listája preferált sorrendben" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:649 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 msgid "Read metadata from files" msgstr "Metaadatok olvasása a fájlokból" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:651 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 msgid "The priority of worker processes" msgstr "Műveletek prioritási sorrendje" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:653 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 msgid "Swap author first and last names when reading metadata" msgstr "" @@ -7983,7 +8289,7 @@ msgstr "Leállítva" msgid "Finished" msgstr "Kész" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "A művelet végrehajtása folyamatban..." @@ -8016,38 +8322,46 @@ msgid "English (Australia)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 -msgid "English (Canada)" +msgid "English (New Zealand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 -msgid "English (India)" +msgid "English (Canada)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 -msgid "English (Thailand)" +msgid "English (India)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 -msgid "English (Cyprus)" +msgid "English (Thailand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 -msgid "English (Pakistan)" +msgid "English (Cyprus)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 -msgid "English (Singapore)" +msgid "English (Pakistan)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 -msgid "German (AT)" +msgid "English (Singapore)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 -msgid "Dutch (NL)" +msgid "English (Yemen)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 msgid "Dutch (BE)" msgstr "" @@ -8110,77 +8424,85 @@ msgstr "" msgid "Unknown News Source" msgstr "Ismeretlen Hírforrás" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:520 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:606 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "A letöltés befejeződött" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "A következő cikkek letöltése nem sikerült:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "A következő cikkek részeinek letöltése nem sikerült:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:618 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "\tHibás linkek:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:699 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Nem lehet a cikket letölteni. Futtassa a -vv paraméterrel a hibaüzenetek " "megjelenítéséhez" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:720 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "Hírek letöltése..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:725 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "Hírek letöltve az index oldalról" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:731 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "Borító letöltése..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:789 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "Letöltés megkezdve [%d szálon]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:805 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "Hírek letöltve: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:815 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "Nem lehet borítót letölteni: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:827 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "Borító letöltése a következő helyről: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:970 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "Névtelen Cikk" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1041 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "Cikk letöltve: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1052 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "A következő cikk letöltése nem sikerült: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1069 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "Hír letöltése" @@ -8273,11 +8595,6 @@ msgstr "" msgid "Do not download CSS stylesheets." msgstr "Ne töltse le a CSS stíluslapokat." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 -msgid "Show detailed output information. Useful for debugging" -msgstr "" -"Részletes kimeneti információk megjelenítése. Hasznos hibakeresésnél." - #~ msgid "Path to the cover to be used for this book" #~ msgstr "Könyvborító elérési útja" @@ -8335,9 +8652,15 @@ msgstr "" #~ msgid "Set the publisher of this book." #~ msgstr "A könyv kiadója." +#~ msgid "Useful for debugging." +#~ msgstr "Hasznos hibakeresésnél." + #~ msgid "Output directory. Defaults to current directory." #~ msgstr "Célkönyvtár. Az alapértelmezett a jelenlegi könyvtár." +#~ msgid "Output file. Default is derived from input filename." +#~ msgstr "Célfájl. Alapértelmezés szerint a forrásfájl nevéből lesz generálva." + #~ msgid "" #~ "Set the author(s). Multiple authors should be set as a comma separated list. " #~ "Default: %default" @@ -9047,9 +9370,6 @@ msgstr "" #~ msgid "Dont forget to enter your gmail username and password" #~ msgstr "Ne felejtsd el megadni a gmail felhasználónevedet és jelszavadat" -#~ msgid "Default" -#~ msgstr "Alapértelmezett" - #~ msgid "/Unknown" #~ msgstr "/Ismeretlen" @@ -9136,6 +9456,9 @@ msgstr "" #~ "

Felhasználói Kézikönyv

A Felhasználói Kézikönyv elérhető online." +#~ msgid "Character encoding for input. Default is to auto detect." +#~ msgstr "Bemeneti karakterkódolás. Alapértelmezett: automatikus felismerés." + #~ msgid "Input character &encoding" #~ msgstr "Bemeneti karakterkódolás" @@ -9214,12 +9537,21 @@ msgstr "" #~ msgid "%d recipes" #~ msgstr "%d hírösszeállítás" +#~ msgid "Produce more human-readable XML output." +#~ msgstr "Még olvashatóbb XML kimenet létrehozása." + #~ msgid "Add a directory to the frequently used directories list" #~ msgstr "Mappa hozzáadása a leggyakrabban használt mappák listájához" #~ msgid "Customize %s" #~ msgstr "%s testreszabása" +#~ msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" +#~ msgstr "Használat: ebook-convert INFILE OUTFILE [OPTIONS..]" + +#~ msgid "Options to control e-book conversion." +#~ msgstr "Az ebook konvertálás beállításai" + #~ msgid "" #~ "See the User Manual for more help" @@ -9259,6 +9591,13 @@ msgstr "" #~ msgid "The series number" #~ msgstr "Sorozaton belüli sorszám" +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Ez az RTF fájl olyan tulajdonságokat tartalmaz, melyeket a calibre nem " +#~ "támogat. Konvertálja át először HTML-ba, majd próbálja újra." + #~ msgid "" #~ "

For example, to match all h2 tags that have class=\"chapter\", set tag to " #~ "h2, attribute to class and value to " @@ -9320,6 +9659,9 @@ msgstr "" #~ "Vigye a kurzort a megfelelő mező fölé és látni fogja a mezőhöz tartozó " #~ "kifejezés mintát.

" +#~ msgid "The author sort string" +#~ msgstr "Szerző rendezési forma" + #~ msgid "Must set account information" #~ msgstr "Fiókbeállítás szükséges" diff --git a/src/calibre/translations/it.po b/src/calibre/translations/it.po index ec8efb7b5d..8b6e86806f 100644 --- a/src/calibre/translations/it.po +++ b/src/calibre/translations/it.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre_calibre-it\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-23 00:18+0000\n" -"PO-Revision-Date: 2010-01-22 18:25+0000\n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-10 05:19+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: italiano\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-23 04:43+0000\n" +"X-Launchpad-Export-Date: 2010-02-11 05:01+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,1105,-1,1312,-1,-1\n" "Generated-By: pygettext.py 1.5\n" @@ -33,7 +33,7 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:414 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -41,19 +41,19 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -68,18 +68,18 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -102,10 +102,10 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -116,26 +116,26 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1547 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1549 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1665 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 @@ -460,11 +460,11 @@ msgstr "" msgid "Communicate with the Binatone Readme eBook reader." msgstr "Comunica con il dispositivo di lettura Binatone Readme" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Comunica con lo smart phone Blackberry." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -516,6 +516,10 @@ msgstr "Interfaccia del Dispositivo" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Comunica con il lettore eBook IRex Digital Reader." +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Comunicare con il Iriver Story reader." @@ -658,12 +662,12 @@ msgid "There is insufficient free space on the storage card" msgstr "Non c'è spazio sufficiente nella scheda di memoria" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1447 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "Notizie" @@ -825,8 +829,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Non applica alcuna elaborazione all'immagine" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Pagina" @@ -1778,83 +1782,83 @@ msgstr "La famiglia di caratteri a spaziatura fissa da includere" msgid "Comic" msgstr "Comic" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Titolo" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Autore(i)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "Editore" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Produttore" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Commenti" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Tag" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Serie" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Lingua" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "Timestamp" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "Pubblicato" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "Privilegi" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "Rassegna Editoriale" @@ -2081,7 +2085,7 @@ msgstr "" "LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Copertina" @@ -2111,74 +2115,74 @@ msgstr "Titolo per tutti gli indici di contenuto in-line." msgid "Disable compression of the file contents." msgstr "Disabilitare la compressione dei file di contenuto" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Tutti gli articoli" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Pagina iniziale" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Sommario" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "Indice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "Glossario" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "Ringraziamenti" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "Colophon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "Diritti d'autore" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "Dedica" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "Epigrafe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "Premessa" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "Indice delle figure" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "Indice delle tabelle" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Note" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "Prefazione" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Corpo del testo" @@ -2559,10 +2563,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Questo documento RTF ha caratteristiche non supportate da Calibre. Si " -"consiglia di convertire il documento in HTML e rirpovare." +"Questo documento RTF ha alcune caratteristiche non supportate da Calibre. " +"Provate a convertire il documento in HTML e riprovate.\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2635,85 +2641,85 @@ msgstr "" "linea quando non esistono spazi. Inoltre permette di specificare l valore " "della massima lunghezza di linea al di sotto del minimo (25 caratteri)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" "Invia il file alla scheda di memoria invece che alla memoria principale come " "impostazione predefinita" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Chiedi conferma prima di eliminare" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Dimensione bottoni nella barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Mostra testo nei bottoni della barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Geometria della finestra principale" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Avverti quando è disponibile una nuova versione" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Usa numeri romani per i numeri delle serie" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Ordina la lista dei tag per popolarità" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" "Numero di copertine da visualizzare nella modalità di sfogliatura copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Parametri predefiniti per la conversione in LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Opzioni del lettore di libri LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formati visualizzati utilizzando il lettore interno" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Colonne da mostrare nella lista dei libri" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" "Avvia automaticamente il server dei contenuti quando si apre l'applicazione" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Notizie più vecchie da mantenere nel database" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Mostra un'icona nel vassoio di sistema" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Invia le notizie scaricate al dispositivo di lettura" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" "Elimina i libri dalla biblioteca dopo averle caricate sul dispositivo di " "lettura" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" @@ -2721,83 +2727,88 @@ msgstr "" "Fai vedere la vetrina delle copertine in una finestra separata invece della " "finestra prinicpale di Calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Disabilita messaggi dall'icona nella barra di sistema" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Azione predefinita da attuare quando si seleziona il tasto di invio al " "dispositivo di lettura." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Limite masimo di processi in attesa" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Scaricare metadati sociali (categorie/valutazioni/etc.)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "Usa i nuovi meta-dati per cambiare l'autore e il titolo" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "Limita il massimo numero di job simultanei al numero delle CPU." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Copiato" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Copia" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Copia negli appunti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Seleziona documenti" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "Cercando in" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "Aggiungendo..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "Cercando in tutte le sotto cartelle" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "Errore di percorso" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "Non é possibile elaborare la cartella indicata." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Nessun libro." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "Nessun libro trovato" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "Aggiunto" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "L' aggiunta é fallita" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2806,11 +2817,11 @@ msgstr "" "di far ripartire Calibre e aggiungere i libri in incrementi piu' piccoli, " "fino a quando si indentifica il libro che causa il problema." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "Scoperti duplicati!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -2818,21 +2829,21 @@ msgstr "" "Libri con lo stesso titolo sono giá presenti nella lista. Volete aggiungere " "in ogni caso?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "Aggiunta dei duplicati..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "Salvataggio..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "Salvato" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" -msgstr "" +msgstr "Opzioni CSV/XML" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 @@ -2841,7 +2852,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2857,7 +2868,7 @@ msgstr "Opzioni specifiche per" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2866,7 +2877,7 @@ msgid "output" msgstr "output" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2876,7 +2887,7 @@ msgstr "output" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2899,31 +2910,59 @@ msgstr "Formato" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 msgid "Fields to include in output:" -msgstr "" +msgstr "Campi da includere nell'output" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "" +msgid "E-book options" +msgstr "Opzioni per il libro elettronico" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 +msgid "Catalog" +msgstr "Catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" -msgstr "" +msgstr "Etichetta per 'Non usare questo libro':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" +msgstr "Etichetta per 'Marcare questo libro come letto':" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 +msgid "Additional note tag prefix:" +msgstr "Etichetta per note aggiuntive" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "Stringa Regex per definire etichette che escludono generi:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 -msgid "Additional note tag prefix:" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "Ordina i numeri come testo" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" -msgstr "" +msgstr "Esempio paginazione per il catalog.ui" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" @@ -3056,12 +3095,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3418,7 +3457,7 @@ msgid "Change the title of this book" msgstr "Cambia il titolo di questo libro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "A&utore(i): " @@ -3436,7 +3475,7 @@ msgstr "" "una virgola" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Editore: " @@ -3447,7 +3486,7 @@ msgid "Ta&gs: " msgstr "T&ag: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3458,15 +3497,15 @@ msgstr "" "virgola" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Serie:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3477,30 +3516,42 @@ msgstr "Lista di serie conosciute. È possibile aggiungere nuove serie" msgid "Book " msgstr "Libro " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "Outup MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "&Title per la tabella di contenuti (indice):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "Riaggiusta la grandezza delle immagini per dispositivi &Palm" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "Usa autore &sort per autore." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "Disattiva la compressione per il contenuto dei documenti" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "Non aggiungere una tabella dei contenuti (indice) al libro" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Imposta pagina" @@ -3588,7 +3639,7 @@ msgid "RB Output" msgstr "Output RB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "Scegliere il formato da leggere" @@ -3898,7 +3949,7 @@ msgstr "" "lettura." #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Nessun dettaglio disponibile." @@ -4127,8 +4178,8 @@ msgstr "Salva &template" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Percorso" @@ -4138,7 +4189,7 @@ msgstr "Percorso" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -4161,7 +4212,7 @@ msgid "My Books" msgstr "I miei libri" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "Crea catalogo" @@ -4294,133 +4345,133 @@ msgstr "" msgid "new email address" msgstr "nuovo indirizzo di posta elettronica." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Errore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" "Non é stato possibile installare gli strumenti per i comandi di linea." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Strumenti per i comandi di linea installati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Strumenti per i comandi di linea installati in" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Se muovete calibre.app, sará necessario reinstallare anche gli strumenti per " "i comandi di linea." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Percorso del plugin non valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s non é un percorso di plugin valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Selezionare plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Il plugin non puó essere disattivato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "il plugin: %s non puó essere disattivato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Non é possibile personalizzare il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Plugin: %s non richiede personalizzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Personalizzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Non é possibile rimuovere un plugin incorporato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " Non é possibile rimuoverlo. Questo é un plugin incorporato. Provate invece " "a disattivarlo." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "File di log degli errori:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "File di log degli accessi:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Avvio del server dei contenuti fallito" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Selezionare un percorso per i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Dimensione non valida" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" "La dimensione %s non è valida. Deve essere nella forma larghezzaxaltezza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Percorso database non valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Percorso database non valido " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Deve essere una cartella" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Percorso database non valido.
Impossibile scrivere su " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Controllo dell'integritá del database." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Controllo dell'integritá del database fallito." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Sono stati trovati problemi di consistenza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4530,13 +4581,13 @@ msgstr "" msgid "Sending to &device" msgstr "Invio al &device in corso" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Preferenze" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4544,24 +4595,28 @@ msgstr "" "Per&corso dei libri (I libri sono salvati in cartelle salvate per autore e i " "metadati sono salvati nel file metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Sfoglia per specificare una nuova posizione del database" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "&Visualizza un avvertimento quando è disponibile una nuova versione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" "Scarica i &social metadati (etichette, valutazioni, etc.) automaticamente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "&Timeout predefinito della rete:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4569,159 +4624,159 @@ msgstr "" "Imposta il timeout predefinito per gli scaricamenti dalla rete (cioè ogni " "volta che si usa Internet per prelevare informazioni)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " secondi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Scegliere la ling&ua (richiede il riavvio):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Normale" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Massima" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Minima" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "&Priorità lavoro:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Formato preferito per &output:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Ordine dei formati preferiti per &input:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "&Usa numeri romani per i numeri delle serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "Abilita l'icona nel vassoio di sistema (richiede il riavvio)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Visualizza le ¬ifications nella barra di sistema." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" "Visualizza il &browser di copertine in una finestra separata (richiede " "ricaricamento del programma)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Cerc mentre si scrive" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Invia automaticamente le noti&zie scaricate al lettore di libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" "&Delete le notizie dalla libreria quando sono inviate automaticamente al " "dispositivo di lettura." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "&Number di copertine da visualizzare in modalitá sfoglia (richiede rilancio " "del programma):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Grande" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Media" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Piccola" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Dimensione bottoni nella barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "&Mostra testo nei bottoni della barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "&Selezionare le colonne visibili nella vista biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Utilizza il &viewer interno per:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Aggiungi un indirizzo di posta elettronica a cui inviare i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "&Add messaggio di posta elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Creare &default" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "&remove messaggio di posta elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" "Calibre puó mandare i vostri libri a voi (o i vostri lettori) con posta " "elettronica." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" "Numero &Maximum di elaboratori di processi in attesa (richiede rilancio del " "programma):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "&Check dell'integritá del database" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "&Install gli strumenti per i comandi di linea" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "Apri la cartella per la &configuration di Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Limita il massimo numero di job simultanei al numero dei &Core disponibili " "della CPU" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "&Debug e riconoscimento dei dispositivi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4732,25 +4787,25 @@ msgstr "" "Qualsiasi cambiamento nella configurazione verrà attivato solo dopo il " "riavvio del server." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "&Porta del server:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Nome utente:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Password:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4758,7 +4813,7 @@ msgstr "" "Se si lascia la password in bianco, chiunque potrà accedere alla propria " "collezione di libri utilizzando l'interfaccia web." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4766,41 +4821,41 @@ msgstr "" "La dimensione massima (larghezzaxaltezza) per le copertine visualizzate. Le " "copertine più larghe vengono ridimensionate. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Dimensi&one massima copertina:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Mostra password" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "Massimo elementi &OPDS per richiesta:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "A&vvia il server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "&Ferma il server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Test sul server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Avvia a&utomaticamente il server all'apertura" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Visualizza i file di l&og del server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4818,7 +4873,7 @@ msgstr "" "intendersi come il valore IP appropriato del computer su cui Calibre é " "attivo." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4826,27 +4881,27 @@ msgstr "" "Qui ee possibile personalizzare le funzioni di Calibre modificando quali " "plugin sono usati dal programma." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Attivare/&Disable il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "&Customize il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "&Remove il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Aggiungi un nuovo plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Plugin &file:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Aggiungi" @@ -4916,43 +4971,43 @@ msgstr "Classificazione autore" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Cercando metadati..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Non é stato possibile trovare metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" "Sembra che lo scaricamento dei metadati si sia bloccato. Provare piú tardi." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Avvertenza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Non é stato possibile scaricare i metadati da:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Messun metadato trovato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Nessun metadato trovato, provare ad aggiustare il titolo e l'autore o il " "codice ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Scarica metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4964,31 +5019,35 @@ msgstr "" "registrarsi per un account gratis e " "immettere la vostra chiave d'accesso qui di seguito." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "&Chiave d'accesso:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Scarica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Corrispondenze" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" "Selezionare il libro che corrisponde maggiormente alla propria copia " "dall'elenco sottostante" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Scaricare i &social metadati (etichette, valutazioni, etc) per il libro " "selezionato" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Dettagli del lavoro" @@ -5009,24 +5068,24 @@ msgstr "Visualizza i &details del processo in corso" msgid "Stop &all jobs" msgstr "Ferma &all i processi in corso" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Modifica metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "Imposta a&utomaticamente la Classificazione autore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "Author s&ort: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -5035,47 +5094,51 @@ msgstr "" "Specifica come deve essere classificato l'autore di questo libro. Ad " "esempio, Charles Dickens deve essere classificato come Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Giudizio:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Giudizio su questo libro. 0-5 stelle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "Nessuna modifica" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " stelle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Aggiungi ta&gs: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Apri l'editor dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "&Rimuovi tag:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "Lista separata da virgole dei tag da rimuovere dal libro " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Rimuovi for&mato:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "&Swap titolo per autore" @@ -5130,70 +5193,70 @@ msgstr "La copertina nel formato %s é invalida." msgid "Abort the editing of all remaining books" msgstr "Interrompere la modifica di tutti i libri rimanenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "Questo numero ISBN è valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "Questo numero ISBN è valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "Scaricamento della copertina..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "Impossibile scaricare la copertina" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "Impossibile scaricare la copertina
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "Lo scaricamento ha raggiunto il limite di tempo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "Non é stato possibile trovare una copertina per questo libro. Si provi a " "specificare il codice ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Copertina inutilizzabile" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "La copertina non é un'immagine accettabile." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "Si sono verificati errori" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "Si sono verficiati errori nello scaricamento dei metadati sociali" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "Non é possibile scaricare i metadati." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" "Dovete specificare alemno uno fra codice ISBN, titolo, autore o editore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "Permesso negato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" "Non é possibile aprire %s. Potrebbe essere in uso in un altro programma." @@ -5918,23 +5981,23 @@ msgstr "Non disponibile" msgid " - Jobs" msgstr " - Lavori" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Dimensione (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Data" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Giudizio" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5942,15 +6005,15 @@ msgstr "Giudizio" msgid "None" msgstr "Nessuno" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "Libro %s di %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "Non permesso" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -5958,11 +6021,11 @@ msgstr "" "Copiare direttamente sul dispositivo di lettura non é supportato. Prima é " "necessario aggiungere il libro nella libreria di Calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "Formato" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "Doppio clic per modificarmi

" @@ -5991,7 +6054,7 @@ msgid "No matches for the search phrase %s were found." msgstr "Nessuna corrispondenza trovata per la frase %s" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "Nessuna corrispondenza trovata" @@ -6038,52 +6101,52 @@ msgstr "Apri libro" msgid "Configure" msgstr "Configurazione" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Usa la biblioteca collocata nel percorso specificato." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Incominciare minimizato nella barra di sistema" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Invia le informazioni di debug alla console" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Non controllare gli aggiornamenti" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Se siete certi che l'operzione non é in corso" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Non e' possibile incominciare " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s é giá in funzione." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "potrebbe essere attivo nella barra di sistema, nel" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "la parte in alto a destra dello schermo." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "la parte in basso a destra dello schermo." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "Provate a far ripartire il computer." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "provate a rimuovere il documento" @@ -6243,11 +6306,11 @@ msgstr "& Esci" msgid "ERROR: Unhandled exception" msgstr "ERRORE: eccezione non gestita" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Il Libro non ha ne titolo ne ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Nessun risultato é stato trovato per questo libro" @@ -6382,11 +6445,11 @@ msgstr "Creazione ordine " msgid "Fetch news from " msgstr "Scarica notizie da " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "Conversione i documenti presenti" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6482,7 +6545,7 @@ msgid "Save to disk in a single directory" 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:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "Salva sul disco solo il formato %s" @@ -6516,7 +6579,7 @@ msgstr "Converti in gruppo" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 msgid "Create catalog of books in your calibre library" -msgstr "" +msgstr "Crea un catologo di libri dalla vostra collezione in Calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" @@ -6537,13 +6600,13 @@ msgid "Calibre Library" msgstr "Libreeria di Calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "Scegliere un percorso per la propria biblioteca." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 msgid "Calibre Quick Start Guide" -msgstr "" +msgstr "Guida rapida di Calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" @@ -6647,33 +6710,33 @@ msgstr "Archivi" msgid "Supported books" msgstr "Libri supportati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Non é stato possibile leggere i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Non é stato possibile leggere i metadati dai seguenti:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "Non si può cancellare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "Nessun libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "Seleziona i formati da cancellare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "Seleziona i formati da non cancellare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6681,131 +6744,137 @@ msgstr "" "I libri selezionati saranno cancellati permanentemente e i documenti " "rimossi dal computer. Siete sicuri?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Cancellamento libri dal dispositivo di lettura." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Non é possibile scaricare i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "Nessun libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "metadati sociali" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Scaricamento %s per %d libri" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Non si é riusciti a scaricare alcuni metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Non si é riusciti a scaricare i metadati per i seguenti:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Lo scaricamento dei metadati é fallito:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Impossibile modificare i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Impossibile salvare sul disco" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Scegliere la cartella di destinazione" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Errore durante il salvataggio" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Si é verificato un errore durante il salvataggio" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Non é stato possibile salvare tutti i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "Selezionare il tasto dei dettagli per vedere quali." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "Nessun libro selezionato per la generazione del catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "Generando %s catalogo..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "Catalogo generato" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" -msgstr "" +msgstr "Esporta il catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" -msgstr "" +msgstr "Selezionare una destinazione per %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "Scaricamento notizie da " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr " preso." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "Impossibile convertire" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "Conversione di %d libro/libri incominciata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "Impossibile leggere" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "Impossibile aprire la cartella" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "Piú di un libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6817,33 +6886,33 @@ msgstr "" "vostro computer. Una volta cominciato questa azione non puó essere fermata " "finché il processo é completato. Siete sicuri di voler continuare?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "%s non ha formati disponibili" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "Impossibile configurare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "Impossibile configurare mentre ci sono lavori in esecuzione" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "Nessuna informazione dettagliata disponibile" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" "Non è disponibile alcuna informazione dettagliata per i libri nel " "dispositivo di lettura." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "Errore di comunicazione col dispositivo di lettura" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6851,12 +6920,12 @@ msgstr "" "Si è verificato un errore di comunicazione temporaneo col dispositivo di " "lettura. Disconnettere e riconnettere il dispositivo e/o riavviare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "Errore di conversione" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6865,23 +6934,23 @@ msgstr "" "href=\"%s\">DRM. É necessario rimuovere la DRM usando un prodotto da " "terzi." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "Ricetta deattivata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "Operazione Fallita" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "Percorso della libreria invalido" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "Non é possibile accedere a %s. Si sta utilizzando %s come libreria." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." @@ -6889,11 +6958,11 @@ msgstr "" "è il risultato degli sforzi di tanti volontari da tutto il mondo. Se lo " "trovi utile, puoi fare una donazione per supportare il suo sviluppo." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Ci sono lavori attivi. Uscire comunque?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6904,11 +6973,11 @@ msgstr "" "sul dispositivo di lettura.
\n" " Siete sicuri di voler interrompere il processo?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "ATTENZIONE: Lavori attivi" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6916,7 +6985,7 @@ msgstr "" "continuerà a lavorare nel vassoio di sistema. Per chiuderlo, selezionare " "Esci nel menu contestuale del vassoio di sistema." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" @@ -6924,11 +6993,11 @@ msgstr "" "Ultima versione: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "Aggiornamento disponibile" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -7071,6 +7140,8 @@ msgstr "&language predefinito per sillabazione:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 msgid "&Resize images larger than the viewer window (needs restart)" msgstr "" +"&Resize le immagini piu' grandi della finestra del visializzatore (richiede " +"riavvio)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" @@ -7097,7 +7168,7 @@ msgid "Options to customize the ebook viewer" msgstr "Opzioni per personalizzare il lettore di libri" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "Ricorda la dimensione della finestra usata l'ultima volta" @@ -7117,6 +7188,8 @@ msgstr "Larghezza maassima della finestra di visualizzazione in pixel." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" +"Modifica la grandezza delle immagini piu' grandi della finestra del " +"visualizzatore per farle rientrare nella pagina" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Hyphenate text" @@ -7154,7 +7227,7 @@ msgstr "La dimensione dei caratteri a spaziatura fissa in px" msgid "The standard font type" msgstr "Il tipo di carattere predefinito" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "Cerca nel dizionario (&L)" @@ -7214,94 +7287,94 @@ msgstr "Formato del libro" msgid "Go to..." msgstr "Vai a..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "Posizione nel libro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" "Vai a un riferimento. Per ottenere i numeri di riferimento, usare la " "modalità riferimento." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "Cerca del testo nel libro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "Anteprima di stampa" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "Sto collegano a dict.org per cercare: %s…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "Scelta libro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "Libri" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "Aggiungi segnalibro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "Inserire il titolo per il segnalibro:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "Nessuna corrispondenza trovata per %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "Caricamento..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "Impaginazione %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "Gestire i segnalibri" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "Caricamento libro..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "Errore DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "

Questo libro è protetto da DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "Impossibile aprire il libro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "Opzioni per controllare il visualizzatore di libri" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Se selezionata, questa opzione forzerá la finestra di visualizzazione ad " "apparire davanti quando inizializzata" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" "Scrivi avvertenze dall'esecuzione e messaggi dal quadro di comando nella " "finestra del quadro di comando." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7817,7 +7890,7 @@ msgstr "" "Il valore massimo di risultati da presentare per una richiesta OPDS. Questo " "ha effetto sull'integrazione con Stanza, WordPlayer, etc." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7825,8 +7898,13 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"I campi da includere nel catalogo di libri nel database. Questi devono " +"essere campi separati da virgole\n" +"Campi disponibili: %s.\n" +"Valori predefiniti: '%%default'\n" +"Applicabile per i formati di output: CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7838,21 +7916,42 @@ msgstr "" "Campi di default: '%default'\n" "Si applica a: CSV, XML formati di output" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"La creazione del catalogo usa il Titolo presente nei metadati\n" +"Valore predefinito: '%default'\n" +"Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Salva l'output a diversi passi del processo di conversione nella cartella " +"specificata. Questo é utile se volete verificara a che punto si verifica un " +"errore nella procedura.\n" +"Valore predefinito: '%default' Nessuno\n" +"Applicabile ai formati di output: ePub, MOBI" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Stringa regex per escludere etichette che definiscono i generi\n" +"Valore predefinito: '%default' che esclude etichette con parantesi, e.g. " +"'[]'\n" +"Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:249 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7860,22 +7959,53 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Lista di etichette separate da virgole per indicare quali libri devono " +"essere esclusi dall'output. Si noti che le maiuscole sono ignorate\n" +"--exclude-tags=skip troverá risultati nelle frasi 'skip this book' and 'Skip " +"will like this'\n" +"Valore predefinito: '%default'\n" +"Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Prefissi di etichette per le vostre annotazioni, e.g. '*questo libro " +"piacerebbe a Giovanni' \n" +"Valore predefinito: '%default'\n" +"Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:267 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Ordina i titoli con numeri iniziali come testo, e.g.\n" +"'2001: Un'odissea nello spazio' viene elencato come\n" +"'Duemilauno: Un'odissea nello spazio'.\n" +"Valore predefinito: '%default'\n" +"Applicabile ai formati di output: ePub, MOBI" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7884,6 +8014,22 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Specifica un profilo di output. In alcuni casi un profilo di output é " +"necessario per ottimizzare il catalogo per alcuni dispositivi. Per esempio, " +"i dispositivi Kindle e Kindle dx creano indici organizzati con sezioni e " +"articoli.\n" +"Valore predefinito: '%default'\n" +"Applicabile ai formati di output: ePub, MOBI" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Etichetta per indicare che il libro é stato letto\n" +"Valore predefinito: '%default'\n" +"Applicabile per i formati di output: ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" @@ -8196,6 +8342,9 @@ msgid "" "If declared, --search is ignored.\n" "Default: all" msgstr "" +"Lista degli identificativi ID per il catalogo in campi separati da virgole\n" +"Se dichiarati, --search ricerca é ignorata\n" +"Valore predefinito: tutti" #: /home/kovid/work/calibre/src/calibre/library/cli.py:652 msgid "" @@ -8217,7 +8366,7 @@ msgstr "Mostra un output dettagliato. Utile per il debugging" msgid "Error: You must specify a catalog output file" msgstr "Errore: devi specificate un file di output del catalogo" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8237,33 +8386,28 @@ msgstr "" "\n" "Per aiuto su un comando particolare: %%prog command --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1429 -msgid "Catalog" -msgstr "Catalogo" - -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1691 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "" "

Sto migrando il vecchio database nella nuova biblioteca in %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1720 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "Sto copiando %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1737 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "Compattazione database" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1830 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "Controllo di integrita' SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1867 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "Controllo per file mancanti" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1889 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "ID controllate" @@ -8409,7 +8553,7 @@ msgstr "Conversione dei percorsi in letttere minuscole." msgid "Replace whitespace with underscores." msgstr "Sostituire gli spazi vuoti con sottolineature." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:255 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "I formati richiesti non sono disponibili." @@ -8418,7 +8562,7 @@ msgid "Password to access your calibre library. Username is " msgstr "" "Password per accedere alla propria biblioteca di calibre. Il nome utente è " -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" @@ -8428,7 +8572,7 @@ msgstr "" "\n" "Avvia il server dei contenuti di calibre." -#: /home/kovid/work/calibre/src/calibre/library/server.py:858 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "" "Percorso per la cartella da cui la libreria e' disponibile per il server di " @@ -8506,7 +8650,7 @@ msgstr "Fermato" msgid "Finished" msgstr "Finito" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "In esecuzione..." @@ -8568,7 +8712,7 @@ msgstr "Inglese (Singapore)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Yemen)" -msgstr "" +msgstr "Inglese (Yemen)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "German (AT)" @@ -8647,77 +8791,85 @@ msgstr "" msgid "Unknown News Source" msgstr "Sorgente di notizie sconosciuta" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "La ricetta \"%s\" richiede un nome utente e password." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "Scaricamento completato" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "Scaricamento dei seguenti articoli fallito:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "Scaricamento dei seguenti articoli fallito parzialmente:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr " da " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "\tLink falliti:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Non é stato possibile ottnere l'articolo. Provare a eseguire con l'opzione -" "vv per maggiori informazioni sulla ragione." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "Scaricamento feed..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "Ricevuti feed dalla pagina principale" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "Tentativo di scaricamento della copertina..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "Preparazione dell'immagine principale in corso" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "Inizio scaricamento [%d articolo(i)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "Feed scaricati in %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "Impossibile scaricare la copertina: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "Scaricamento copertina da %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "Immagine principale scaricata" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "Articolo senza titolo" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "Articolo scaricato: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "Scaricamento fallito dell'articolo: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "Scaricamento feed" @@ -10320,6 +10472,13 @@ msgstr "Non scaricare i fogli di stile CSS" #~ msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" #~ msgstr "Modo d'uso: ebook-convert INFILE OUTFILE [OPTIONS..]" +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Questo documento RTF ha caratteristiche non supportate da Calibre. Si " +#~ "consiglia di convertire il documento in HTML e rirpovare." + #~ msgid "Do not add a blank line between paragraphs." #~ msgstr "Non aggiungere una linea vuota fra i paragrafi." diff --git a/src/calibre/translations/ja.po b/src/calibre/translations/ja.po index e5102bc247..361b8773ac 100644 --- a/src/calibre/translations/ja.po +++ b/src/calibre/translations/ja.po @@ -7,21 +7,21 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-11 00:36+0000\n" -"PO-Revision-Date: 2010-01-10 23:24+0000\n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-12 00:33+0000\n" "Last-Translator: vbk \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-12 04:45+0000\n" +"X-Launchpad-Export-Date: 2010-02-12 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" msgstr "まったく何もしません。(何も影響しません。)" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 @@ -29,8 +29,8 @@ msgstr "まったく何もしません。(何も影響しません。)" #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:203 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:414 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,26 +38,26 @@ msgstr "まったく何もしません。(何も影響しません。)" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /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/pdf.py:28 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 @@ -65,18 +65,18 @@ msgstr "まったく何もしません。(何も影響しません。)" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:597 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:787 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -97,67 +97,71 @@ msgstr "まったく何もしません。(何も影響しません。)" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:217 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:272 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:279 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:565 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:574 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:794 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:397 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:419 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:914 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1040 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1517 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1519 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1630 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:49 msgid "Unknown" -msgstr "不明です。" +msgstr "不明" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "基礎" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:149 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" msgstr "ファイル形式" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:183 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" msgstr "メタデータ読み込み" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:214 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 msgid "Metadata writer" msgstr "メタデータ書き出し" +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" "Follow all local links in an HTML file and create a ZIP file containing all " @@ -171,7 +175,7 @@ msgstr "" msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." -msgstr "HTML読み込みの文字エンコーディング(cp1252, latin1, iso-8859-1, utf-8 が一般的です)" +msgstr "HTML読み込み時の文字エンコーディング(cp1252, latin1, iso-8859-1, utf-8 が一般的です)" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 msgid "" @@ -224,13 +228,13 @@ msgstr "%sファイルにメタデータを設定する" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 msgid "Set metadata from %s files" -msgstr "" +msgstr "%sファイルからメタデータを設定する" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:99 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:122 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 msgid "" "Specify the character encoding of the input document. If set this option " "will override any encoding declared by the document itself. Particularly " @@ -238,11 +242,11 @@ msgid "" "encoding declarations." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:225 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:239 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." @@ -376,7 +380,7 @@ msgstr "有効なプラグインが見つからない " msgid "Initialization of plugin %s failed with traceback:" msgstr "プラグイン%sの初期化に失敗してトレースバック" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:397 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 msgid "" " %prog options\n" "\n" @@ -384,29 +388,29 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:403 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "それが含まれているzipファイルへのパスを指定して、プラグインを追加します。" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:405 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "カスタムのプラグインを名前によって取り除きます。ビルトインのプラグインには影響はありません。" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:407 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." msgstr "プラグインをカスタマイズします。プラグインの名前とカスタマイズした文字列は、コンマで区切って指定します。" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:409 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" msgstr "インストールされたプラグインを一覧表示" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:411 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 msgid "Enable the named plugin" msgstr "名付けたプラグインを有効にする" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:413 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 msgid "Disable the named plugin" msgstr "名付けたプラグインを無効にする" @@ -414,7 +418,7 @@ msgstr "名付けたプラグインを無効にする" msgid "Communicate with Android phones." msgstr "Androidフォンと通信します。" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:25 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -424,11 +428,11 @@ msgstr "" msgid "Communicate with the Binatone Readme eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Blackberryスマートフォンと通信します。" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -438,7 +442,7 @@ msgstr "" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "" @@ -474,12 +478,16 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 msgid "Device Interface" -msgstr "" +msgstr "デバイス・インターフェース" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "" @@ -502,7 +510,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." -msgstr "" +msgstr "Nokia 770 電子書籍リーダ─と通信します。" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 msgid "Communicate with the Nokia 810 internet tablet." @@ -555,73 +563,73 @@ msgstr "" msgid "Transferring books to device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:173 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:180 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:160 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 msgid "Removing books from device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:208 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:175 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." -msgstr "" +msgstr "デバイスにメタデータを送信しています..." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:214 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 msgid "Communicate with the Sony PRS-600/700/900 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:271 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "%sディスク・ドライブが検出できない場合は、再起動してください。" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:440 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:495 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:588 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:600 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:608 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 msgid "Unable to mount main memory (Error code: %d)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:745 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:747 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 msgid "The reader has no storage card in this slot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:749 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:782 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" -msgstr "メインメモリには十分な空きスペースがない" +msgstr "メインメモリに十分な空きスペースがありません" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:784 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:786 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 msgid "There is insufficient free space on the storage card" -msgstr "記憶媒体のカードには十分な空きスペースがない" +msgstr "記録媒体のカードに十分な空きスペースがありません" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:803 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:826 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1417 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "ニュース" @@ -668,8 +676,8 @@ msgstr "" msgid "Adding books to device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:164 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:169 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 msgid "Removing books from device metadata listing..." msgstr "" @@ -753,8 +761,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "" @@ -1193,9 +1201,9 @@ msgid "" "disables the generation of this cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:143 -#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:128 -#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "" @@ -1502,83 +1510,83 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:394 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1106 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "書籍名" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "著者" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "発行元" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "コメント" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:344 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1110 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "タグ" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "シリーズ" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "発行日" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -1643,27 +1651,27 @@ msgstr "" msgid "Set the BookID in LRF files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 msgid "No file specified" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:159 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 msgid "Original metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 msgid "Changed metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:188 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 msgid "No cover found" msgstr "" @@ -1762,7 +1770,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "" @@ -1789,101 +1797,77 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:53 -msgid "Options to control e-book conversion." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:60 -msgid "Character encoding for input. Default is to auto detect." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:62 -msgid "Output file. Default is derived from input filename." -msgstr "出力ファイル名(デフォルトは入力ファイル名)" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:64 -msgid "Produce more human-readable XML output." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:66 -msgid "Useful for debugging." -msgstr "デバッグに有用" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:71 -msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 msgid "%s format books are not supported" msgstr "%s フォーマットは対応してません" @@ -2173,10 +2157,11 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:183 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2228,186 +2213,314 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:197 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "Options specific to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +msgid "Form" +msgstr "フォーム" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 +msgid "Catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" "For settings that cannot be specified in this dialog, use the values saved " @@ -2428,22 +2541,6 @@ msgstr "" msgid "Comic Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "Options specific to" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 @@ -2452,35 +2549,6 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 -msgid "Form" -msgstr "フォーム" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" @@ -2542,7 +2610,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" -msgstr "" +msgstr "デバッグ" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:21 msgid "Debug the conversion process." @@ -2576,12 +2644,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2617,17 +2685,6 @@ msgstr "" msgid "EPUB Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "output" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" msgstr "" @@ -2734,7 +2791,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16 msgid "Look & Feel" -msgstr "" +msgstr "外観" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 msgid "Control the look and feel of the output" @@ -2855,7 +2912,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 msgid "Metadata" -msgstr "" +msgstr "メタデータ" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:43 msgid "" @@ -2924,7 +2981,7 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "作者(&A): " @@ -2940,7 +2997,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "発行者(&P): " @@ -2951,7 +3008,7 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -2959,15 +3016,15 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" -msgstr "" +msgstr "シリーズ(&S):" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -2978,33 +3035,45 @@ msgstr "" msgid "Book " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" -msgstr "" +msgstr "ページ設定" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:111 msgid "&Output profile:" @@ -3020,23 +3089,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:114 msgid "Margins" -msgstr "" +msgstr "余白" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 msgid "&Left:" -msgstr "" +msgstr "左(&L):" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 msgid "&Top:" -msgstr "" +msgstr "上(&T):" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 msgid "&Right:" -msgstr "" +msgstr "右(&R):" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 msgid "&Bottom:" -msgstr "" +msgstr "下(&B):" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:12 msgid "PDB Input" @@ -3089,7 +3158,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "" @@ -3130,7 +3199,7 @@ msgid "Options specific to the input format." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" @@ -3293,8 +3362,8 @@ msgid "Force maximum line lenght" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 @@ -3381,197 +3450,203 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:39 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:266 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:300 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 msgid "and delete from library" -msgstr "" +msgstr "後、ライブラリから削除" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 msgid "Set default send to device action" msgstr "既定のデバイス送信処理を設定" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:326 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:333 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:335 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 msgid "Email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 msgid "Send to main memory" -msgstr "" +msgstr "メインメモリに送信" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 +msgid "Send to storage card A" +msgstr "ストレージカードAに送信" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +msgid "Send to storage card B" +msgstr "ストレージカードBに送信" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 +msgid "Send specific format to main memory" +msgstr "フォーマットを指定してメインメモリに送信" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:357 -msgid "Send to storage card A" -msgstr "" +msgid "Send specific format to storage card A" +msgstr "フォーマットを指定してストレージカードAに送信" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:359 -msgid "Send to storage card B" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 -msgid "Send specific format to main memory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:364 -msgid "Send specific format to storage card A" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:366 msgid "Send specific format to storage card B" -msgstr "" +msgstr "フォーマットを指定してストレージカードBに送信" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 msgid "Choose format to send to device" -msgstr "" +msgstr "フォーマットを指定して送信" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 msgid "Cannot send: No device is connected" -msgstr "" +msgstr "送信できません: デバイスが接続されていません" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:526 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:527 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 msgid "Cannot send: Device has no storage card" -msgstr "" +msgstr "送信できません: デバイスにストレージカードがありません" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:620 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:627 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:843 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:621 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:647 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:651 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:678 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:721 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:751 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "デバイスにカタログを送信" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." -msgstr "" +msgstr "デバイスにニュースを送信" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 msgid "Sending books to device." -msgstr "" +msgstr "デバイスに書籍を送信" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:844 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 msgid "" "Could not upload the following books to the device, as no suitable formats " "were found. Convert the book(s) to a format supported by your device first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" @@ -3588,34 +3663,68 @@ msgstr "" msgid "Save &template:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:351 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "パス名" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "次へ(&N)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 +msgid "Generate catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "デバイスにカタログを自動的に送信(&S)" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "" @@ -3634,7 +3743,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:93 msgid "&Author(s):" -msgstr "" +msgstr "著者(&A):" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:95 msgid "&Profile:" @@ -3656,11 +3765,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "Conversion" -msgstr "" +msgstr "変換設定" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "General" -msgstr "" +msgstr "全般" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "Interface" @@ -3692,7 +3801,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 msgid "Auto send" -msgstr "" +msgstr "自動送信" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 msgid "Email" @@ -3712,127 +3821,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1224 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "エラー" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -3924,254 +4033,258 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 msgid "Sending to &device" -msgstr "" +msgstr "デバイスに送信(&D)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "基本設定" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "電子書籍の場所(&L) (電子書籍は著者別のフォルダに格納され、メタデータは metadata.db に格納されます。)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "最新のバージョンが利用可能なときに通知する(&N)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "既定のネットワーク・タイムアウト(&T):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "言語を選択(&L) (再起動が必要です):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" -msgstr "既定の出力フォーマット(&O) :" +msgstr "既定の出力フォーマット(&O):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "入力フォーマットの優先順位(&I):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "シリーズ番号にローマ数字を使用(&R)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "システムトレイアイコンを有効にする(&T) (再起動が必要)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "システムトレイの通知を有効にする(&N)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "表紙ブラウズを別ウインドウで行う(&B) (再起動が必要)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "入力中に検索する" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" -msgstr "ダウンロードしたニュースを電子書籍リーダーに自動的に転送する(&N)" +msgstr "ダウンロードしたニュースを電子書籍リーダーに自動的に送信する(&N)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "ニュースが自動的にリーダーに転送されるとき、ライブラリから削除する(&D)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4186,33 +4299,33 @@ msgstr "" "http://myhostname:8080 を登録してください。myhostname " "はcalibreが稼働しているコンピュータのホスト名、もしくはIPアドレスです。" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 -msgid "Enable/&Disable plugin" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 -msgid "&Customize plugin" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 -msgid "&Remove plugin" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 -msgid "Add new plugin" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +msgid "Enable/&Disable plugin" +msgstr "プラグインを有効化/無効化(&D)" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +msgid "&Customize plugin" +msgstr "プラグインをカスタマイズ(&C)" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +msgid "&Remove plugin" +msgstr "プラグインを削除(&R)" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +msgid "Add new plugin" +msgstr "プラグインを追加" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "" @@ -4277,40 +4390,40 @@ msgstr "" msgid "ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "警告" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4318,27 +4431,31 @@ msgid "" "below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "取得" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "該当箇所" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "" @@ -4359,71 +4476,75 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "メタ情報を編集" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "メタ情報" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4436,109 +4557,109 @@ msgid "Choose formats for " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 msgid "Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:245 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:252 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -4565,7 +4686,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "IS&BN:" -msgstr "" +msgstr "IS&BN:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 msgid "Publishe&d:" @@ -4819,16 +4940,18 @@ msgid "" "See the User Manual for more help" msgstr "" +"詳細な説明は ユーザー・マニュアル をご覧ください" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 msgid "Are your sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" @@ -4880,7 +5003,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 msgid "Send test mail from %s to:" -msgstr "" +msgstr "%s からテストメールを送信:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 @@ -4988,7 +5111,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 msgid "&Share recipe" -msgstr "" +msgstr "配信元を共有(&S)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 msgid "Customize &builtin recipe" @@ -5166,7 +5289,7 @@ msgstr "ステータス" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 msgid "Progress" -msgstr "進捗率" +msgstr "進行状況" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 msgid "Running time" @@ -5207,49 +5330,49 @@ msgstr "利用不能" msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1108 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "サイズ (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1109 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "日付" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "評価" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:343 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "None" msgstr "なし" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1044 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1098 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "" @@ -5278,7 +5401,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "" @@ -5325,52 +5448,52 @@ msgstr "" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5399,7 +5522,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 msgid "Reset Quick Search" -msgstr "" +msgstr "クイック検索をリセット" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 msgid "Sort by &popularity" @@ -5440,7 +5563,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 msgid "Send to device" -msgstr "デバイスに転送" +msgstr "デバイスに送信" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 @@ -5526,11 +5649,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" @@ -5538,37 +5661,37 @@ msgstr "" msgid "Search" msgstr "検索" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 msgid "Already assigned" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 msgid "already assigned to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid " or " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 msgid "&Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 msgid "Customize shortcuts for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid "Keys" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" msgstr "" @@ -5608,7 +5731,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 msgid "Click to browse books by their covers" -msgstr "クリックで書籍の表紙をブラウズ" +msgstr "書籍の表紙をブラウズ" #: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 msgid "Click to turn off Cover Browsing" @@ -5661,11 +5784,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5689,7 +5812,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:178 msgid "&Donate to support calibre" -msgstr "" +msgstr "calibreに寄付する(&D)" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:183 msgid "&Restart" @@ -5752,7 +5875,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1659 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "" @@ -5784,50 +5907,58 @@ msgstr "個別に変換" msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" msgstr "ウェルカム・ウィザードを開始" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 msgid "Similar books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:468 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 msgid "Bad database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 msgid "Calibre Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1815 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:685 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:835 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:859 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 msgid "Connected " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 msgid "Device database corrupted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 msgid "" "\n" "

The database of books on the reader is corrupted. Try the " @@ -5843,195 +5974,222 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:978 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1025 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:987 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:988 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:991 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:992 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:994 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1034 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1035 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1057 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1545 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1564 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1083 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1119 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1146 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1177 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "メタデータをダウンロードできません" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1178 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1235 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1268 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1293 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1195 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1195 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1220 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1223 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1267 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "メタデータを編集できません" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" -msgstr "" +msgstr "ディスクに保存できません" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1295 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1322 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1323 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1330 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1331 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1332 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1351 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1365 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1434 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1545 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1601 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1563 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1585 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1586 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6039,101 +6197,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1602 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1643 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1743 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1767 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1795 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" -msgstr "" +msgstr "変換エラー" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1768 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1796 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1824 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1825 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1875 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1900 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1907 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1959 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1978 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1987 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6195,91 +6353,95 @@ msgstr "" msgid "Import" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 msgid "&Font options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 msgid "Se&rif family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 msgid "&Sans family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 msgid "&Monospace family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 msgid "&Default font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 msgid " px" msgstr " ピクセル" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 msgid "Monospace &font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 msgid "S&tandard font:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 msgid "Serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 msgid "Sans-serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 msgid "Remember last used &window size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 msgid "Maximum &view width:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 msgid "H&yphenate (break line in the middle of large words)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 msgid "" "The default language to use for hyphenation rules. If the book does not " "specify a language, this will be used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 msgid "Default &language for hyphenation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 msgid "&General" -msgstr "" +msgstr "全般(&G)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 msgid "Double click to change a keyboard shortcut" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 msgid "&Keyboard shortcuts" msgstr "" @@ -6292,12 +6454,12 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -6307,43 +6469,47 @@ msgstr "" msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 -msgid "Hyphenate text" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 -msgid "Default language for hyphenation rules" +msgid "Hyphenate text" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 -msgid "Font options" +msgid "Default language for hyphenation rules" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 -msgid "The serif font family" +msgid "Font options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 -msgid "The sans-serif font family" +msgid "The serif font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 -msgid "The monospaced font family" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 -msgid "The standard font size in px" +msgid "The sans-serif font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 -msgid "The monospaced font size in px" +msgid "The monospaced font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +msgid "The standard font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +msgid "The monospaced font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "" @@ -6403,88 +6569,88 @@ msgstr "" msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -6548,6 +6714,14 @@ msgid "Print eBook" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 msgid "" "Library\n" "%d\n" @@ -6557,60 +6731,60 @@ msgstr "" "%d\n" "書籍あります" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 msgid "" "Reader\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 msgid "" "Card A\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 msgid "" "Card B\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 msgid "Click to see the books available on your computer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 msgid "Click to see the books in the main memory of your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 msgid "Click to see the books on storage card A in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 msgid "Click to see the books on storage card B in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 msgid "Change Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 msgid "Swap Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 msgid "Title Case" msgstr "" @@ -6657,7 +6831,7 @@ msgstr "" msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 msgid "welcome wizard" msgstr "" @@ -6763,7 +6937,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 msgid "Sending..." -msgstr "" +msgstr "送信中..." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 msgid "Mail successfully sent" @@ -6924,6 +7098,102 @@ msgid "" "WordPlayer, etc. integration." msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 +msgid "" +"Include 'Titles' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7139,7 +7409,41 @@ msgstr "" msgid "You must specify some ids or the %s option" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:591 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +msgid "Show detailed output information. Useful for debugging" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7151,27 +7455,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1656 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1685 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1702 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "データベースのコンパクト化" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1795 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1832 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1854 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "" @@ -7184,74 +7488,76 @@ msgid "The authors" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 -msgid "The author sort string" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:27 -msgid "The tags" +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 -msgid "The series" +msgid "The tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 -msgid "The series number. To get leading zeros use {series_index:0>3s}" +msgid "The series" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 -msgid "The rating" +msgid "The series number. To get leading zeros use {series_index:0>3s}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 -msgid "The ISBN" +msgid "The rating" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 -msgid "The publisher" +msgid "The ISBN" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 -msgid "The date" +msgid "The publisher" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 -msgid "The published date" +msgid "The date" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The calibre internal id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:45 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "Options to control saving to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:51 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 msgid "" "Normally, calibre will update the metadata in the saved files from what is " "in the calibre library. Makes saving to disk slower." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:54 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 msgid "" "Normally, calibre will write the metadata into a separate OPF file along " "with the actual e-book files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:57 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 msgid "" "Normally, calibre will save the cover in a separate file along with the " "actual e-book file(s)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:60 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 msgid "" "Comma separated list of formats to save for each book. By default all " "available books are saved." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:63 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 msgid "" "The template to control the filename and directory structure of the saved " "files. Default is \"%s\" which will save books into a per-author " @@ -7259,7 +7565,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:68 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 msgid "" "The template to control the filename and directory structure of files sent " "to the device. Default is \"%s\" which will save books into a per-author " @@ -7267,7 +7573,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:75 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -7275,21 +7581,21 @@ msgid "" "saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:81 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 msgid "" "The format in which to display dates. %d - day, %b - month, %Y - year. " "Default is: %b, %Y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:84 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Convert paths to lowercase." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:86 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:245 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "" @@ -7297,14 +7603,14 @@ msgstr "" msgid "Password to access your calibre library. Username is " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" "Start the calibre content server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:858 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "" @@ -7322,47 +7628,47 @@ msgid "" "arguments in quotation marks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:631 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:633 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:635 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:637 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:639 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:641 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 msgid "The language in which to display the user interface" -msgstr "UIの言語" +msgstr "ユーザー・インターフェースの言語" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:643 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 msgid "The default output format for ebook conversions." msgstr "ebook変換でのデフォルトフォーマット" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:647 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:649 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 msgid "Read metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:651 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 msgid "The priority of worker processes" msgstr "ワーカープロセスの優先度" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:653 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 msgid "Swap author first and last names when reading metadata" msgstr "" @@ -7378,7 +7684,7 @@ msgstr "" msgid "Finished" msgstr "完了" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -7411,38 +7717,46 @@ msgid "English (Australia)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 -msgid "English (Canada)" +msgid "English (New Zealand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 -msgid "English (India)" +msgid "English (Canada)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 -msgid "English (Thailand)" +msgid "English (India)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 -msgid "English (Cyprus)" +msgid "English (Thailand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 -msgid "English (Pakistan)" +msgid "English (Cyprus)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 -msgid "English (Singapore)" +msgid "English (Pakistan)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 -msgid "German (AT)" +msgid "English (Singapore)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 -msgid "Dutch (NL)" +msgid "English (Yemen)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 msgid "Dutch (BE)" msgstr "" @@ -7503,75 +7817,83 @@ msgstr "" msgid "Unknown News Source" msgstr "未知のニュースソース" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:520 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:606 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "ダウンロード完了" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:618 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:699 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:720 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "フィードの取得中" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:725 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:731 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:789 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:805 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:815 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:827 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:970 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1041 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1052 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1069 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "" @@ -7651,10 +7973,6 @@ msgstr "" msgid "Do not download CSS stylesheets." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 -msgid "Show detailed output information. Useful for debugging" -msgstr "" - #~ msgid "Options to control the conversion to EPUB" #~ msgstr "EPUBへの変換をコントロールするためのオプション" @@ -7730,9 +8048,15 @@ msgstr "" #~ msgid "Output HTML is \"pretty printed\" for easier parsing by humans" #~ msgstr "出力HTMLを人に読みやすいよう整形する" +#~ msgid "Useful for debugging." +#~ msgstr "デバッグに有用" + #~ msgid "Output directory. Defaults to current directory." #~ msgstr "出力先(デフォルトはカレント)" +#~ msgid "Output file. Default is derived from input filename." +#~ msgstr "出力ファイル名(デフォルトは入力ファイル名)" + #~ msgid "" #~ "Set the author(s). Multiple authors should be set as a comma separated list. " #~ "Default: %default" diff --git a/src/calibre/translations/ko.po b/src/calibre/translations/ko.po index 30d9a86389..f23e37d744 100644 --- a/src/calibre/translations/ko.po +++ b/src/calibre/translations/ko.po @@ -7,35 +7,36 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-12-11 23:27+0000\n" -"PO-Revision-Date: 2009-12-11 23:49+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-31 21:46+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-12-13 04:36+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\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:43 msgid "Does absolutely nothing" msgstr "아무 것도 안함" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:44 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:94 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:765 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:768 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:189 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:322 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1895 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1897 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 @@ -55,29 +56,29 @@ msgstr "아무 것도 안함" #: /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/pdf.py:28 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /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:70 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:154 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:591 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:895 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:900 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:960 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:185 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:186 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:83 @@ -96,67 +97,71 @@ msgstr "아무 것도 안함" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:217 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:268 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:275 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:127 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:557 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:775 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:778 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:392 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:405 -#: /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/viewer/main.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 #: /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/database2.py:702 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:714 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1115 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1152 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1486 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1488 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1599 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:703 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:715 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:45 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:48 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:49 msgid "Unknown" msgstr "알 수 없음" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "베이스" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:148 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" msgstr "파일 형식" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:182 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" msgstr "메타데이터 읽기" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:213 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 msgid "Metadata writer" msgstr "메타데이터 쓰기" +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "분류 생성기" + #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" "Follow all local links in an HTML file and create a ZIP file containing all " @@ -224,11 +229,11 @@ msgstr "%s 파일에 메타데이터를 지정합니다." msgid "Set metadata from %s files" msgstr "%s 파일로부터 메타데이터를 지정합니다." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:99 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "변환 입력" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:122 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 msgid "" "Specify the character encoding of the input document. If set this option " "will override any encoding declared by the document itself. Particularly " @@ -238,11 +243,11 @@ msgstr "" "입력 문서의 문자 인코딩을 지정합니다. 이 옵션이 설정되면 문서 자체에 선언된 인코딩은 무시됩니다. 인코딩 선언이 없거나 인코딩 선언에 " "오류가 있는 문서에서 특히 유용합니다." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:225 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" msgstr "변환 출력" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:239 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." @@ -260,75 +265,96 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." -msgstr "이 프로파일은 SONY PRS 시리즈에 사용됩니다. 500/505/700 등." +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:235 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/600/700 etc." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:229 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 +msgid "This profile is intended for the SONY PRS 300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +msgid "This profile is intended for the SONY PRS-900." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 msgid "This profile is intended for the Microsoft Reader." msgstr "이 프로파일은 Microsoft Reader에 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:240 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 msgid "This profile is intended for the Mobipocket books." msgstr "이 프로파일은 Mobipocket books에 상용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:93 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "이 프로파일은 Hanlin V3와 클론에 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:105 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:265 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 +msgid "This profile is intended for the Hanlin V5 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 msgid "This profile is intended for the Cybook G3." msgstr "이 프로파일은 Cybook G3에 상용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:118 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:278 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 msgid "This profile is intended for the Cybook Opus." msgstr "이 프로파일은 Cybook Opus에 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:130 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:289 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 msgid "This profile is intended for the Amazon Kindle." msgstr "이 프로파일은 Amazon Kindle에서 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:142 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:322 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 msgid "This profile is intended for the Irex Illiad." msgstr "이 프로파일은 Irex Illiad에 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:154 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:335 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "이 프로파일은 IRex Digital Reader 1000에서 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:172 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 +msgid "This profile is intended for the B&N Nook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 msgid "Output profile" msgstr "출력 프로파일" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:176 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 msgid "" "This profile tries to provide sane defaults and is useful if you want to " "produce a document intended to be read at a computer or on a range of " "devices." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:248 +msgid "This profile is intended for the SONY PRS-300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 msgid "This profile is intended for the 5-inch JetBook." msgstr "이 프로파일은 5-inch JetBook에서 상용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." msgstr "이 프로파일은 SONY PRS 시리즈에서 사용됩니다. 500/505/700 등의 가로화면 모드. 만화보기에 적합합니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:253 -msgid "This profile is intended for the Hanlin V3/V5 and its clones." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:306 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 msgid "This profile is intended for the Amazon Kindle DX." msgstr "" @@ -348,15 +374,15 @@ msgstr "로컬 플러그인 설정" msgid "Disabled plugins" msgstr "사용되지 않는 플러그인" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:76 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 msgid "No valid plugin found in " msgstr "유효한 플러그인을 찾을 수 없음 " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:260 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:263 msgid "Initialization of plugin %s failed with traceback:" msgstr "플러그인 %s의 초기화가 실패하였습니다" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:394 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 msgid "" " %prog options\n" "\n" @@ -368,29 +394,29 @@ msgstr "" " 외부 플러그인을 로드해서 칼리버를 설정합니다.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:400 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "플러그인을 포함하고 있는 압축 파일의 경로를 지정하여 플러그인을 추가합니다" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:402 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "이름을 기준으로 커스텀 플러그인을 제거합니다. 내장된 플러그인에는 적용되지 않습니다." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:404 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." msgstr "플러그인을 설정합니다. 플러그인의 이름과 콤마로 구분된 설정 문자열을 지정합니다." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:406 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" msgstr "설치된 플러그인을 나열합니다." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:408 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 msgid "Enable the named plugin" msgstr "주어진 이름의 플러그인을 사용가능 상태로 합니다." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:410 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 msgid "Disable the named plugin" msgstr "주어진 이름의 플러그인을 사용 불가능 상태로 합니다." @@ -398,61 +424,31 @@ msgstr "주어진 이름의 플러그인을 사용 불가능 상태로 합니다 msgid "Communicate with Android phones." msgstr "안드로이드폰과 통신합니다." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:25 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" msgstr "콤마로 구분된, 전자책을 전송할 장치의 디렉토리 리스트. 맨 먼저 존재하는 디렉토리가 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/devices/bebook/driver.py:19 -msgid "Communicate with the BeBook eBook reader." -msgstr "BeBook 전자책 리더와 통신합니다" +#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +msgid "Communicate with the Binatone Readme eBook reader." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/bebook/driver.py:95 -msgid "Communicate with the BeBook Mini eBook reader." -msgstr "BeBook Mini 전자책 리더와 통신합니다" - -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "블랙베리 스마트폰과 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:17 -#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:16 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" msgstr "Kovid Goyal" -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:21 -msgid "Communicate with the Cybook Gen 3 eBook reader." -msgstr "Cybook Gen 3 전자책 리더와 통신합니다" +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:22 -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:86 -#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 -#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 -msgid "John Schember" -msgstr "John Schember" - -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:74 -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:76 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:76 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:78 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:134 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:136 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:111 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:113 -msgid "Transferring books to device..." -msgstr "책을 장치로 전송합니다" - -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:85 -msgid "Communicate with the Cybook Opus eBook reader." -msgstr "Cybook Opus 전자책 릳와 통신합니다." - -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "EB600 전자책 리더와 통신합니다" @@ -460,11 +456,33 @@ msgstr "EB600 전자책 리더와 통신합니다" msgid "Communicate with the ESlick eBook reader." msgstr "ESlick 전자책 리더와 통신합니다" +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +msgid "Communicate with Hanlin V3 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 +msgid "Communicate with Hanlin V5 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 +msgid "Communicate with the BOOX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 +msgid "Communicate with the Hanvon N520 eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." msgstr "IRex Iliad 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 +msgid "John Schember" +msgstr "John Schember" + +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 msgid "Device Interface" msgstr "장치 인터페이스" @@ -476,31 +494,35 @@ msgstr "IRex Digital Reader 1000 전자책 리더와 통신합니다" msgid "Communicate with the Iriver Story reader." msgstr "아이리버 스토리 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:22 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 msgid "Communicate with the JetBook eBook reader." msgstr "JetBook 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:23 -msgid "James Ralston" -msgstr "James Ralston" - -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:21 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 msgid "Communicate with the Kindle eBook reader." msgstr "Kindle 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:66 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 msgid "Communicate with the Kindle 2 eBook reader." msgstr "Kindle 2 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 msgid "Communicate with the Kindle DX eBook reader." msgstr "Kindle DX 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:16 +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +msgid "Communicate with the Nokia 770 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +msgid "Communicate with the Nokia 810 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 msgid "The Nook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 msgid "Communicate with the Nook eBook reader." msgstr "" @@ -508,19 +530,19 @@ msgstr "" msgid "Communicate with the Nuut2 eBook reader." msgstr "Nuut2 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:87 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 msgid "Communicate with the Sony PRS-500 eBook reader." msgstr "Sony PRS-500 전자책 리더와 통신합니다" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:97 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:100 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:103 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:114 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:49 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:52 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:55 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:105 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:108 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:119 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:45 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:81 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:90 msgid "Getting list of books on device..." @@ -530,100 +552,116 @@ msgstr "장치에 있는 책 리스트를 가져오는 중입니다" msgid "Communicate with the Sony PRS-300/505/500 eBook reader." msgstr "Sony PRS-300/505/500 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:27 -#: /home/kovid/work/calibre/src/calibre/devices/prs700/driver.py:18 -msgid "Kovid Goyal and John Schember" -msgstr "Kovid Goyal과 John Schember" +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:58 +msgid "" +"Comma separated list of metadata fields to turn into collections on the " +"device. Possibilities include: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:116 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:118 +msgid "Transferring books to device..." +msgstr "책을 장치로 전송합니다" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:167 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:131 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:146 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 msgid "Removing books from device..." msgstr "장치로부터 책을 삭제합니다" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:202 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:161 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." msgstr "정치에 메타데이터를 전송하는 중입니다." -#: /home/kovid/work/calibre/src/calibre/devices/prs700/driver.py:17 -msgid "Communicate with the Sony PRS-600/700 eBook reader." -msgstr "Sony PRS-600/700 전자책 리더와 통신합니다" +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 +msgid "Communicate with the Sony PRS-600/700/900 eBook reader." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:308 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:380 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "%s 디스크 드라이브를 탐지할 수 없습니다. 재부팅을 시도하세요" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:448 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 +msgid "Unable to detect the %s mount point. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." msgstr "%s 디스크 드라이브를 탐지할 수 없습니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:541 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:553 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:561 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 msgid "Unable to mount main memory (Error code: %d)" msgstr "주 메모리를 마운트할 수 없습니다. (에러코드: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:698 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:700 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 msgid "The reader has no storage card in this slot." msgstr "리더의 슬롯에 메모리카드가 없습니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:702 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." msgstr "선택된 슬롯: %s는 지원되지 않습니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:733 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" msgstr "주 메모리에 여유 공간이 부족합니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:735 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:737 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 msgid "There is insufficient free space on the storage card" msgstr "메모리카드에 여유 공간이 부족합니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:748 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1059 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1063 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1386 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" msgstr "뉴스" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:11 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" msgstr "장치 설정" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" msgstr "장치 드라이버 설정" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:20 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:22 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:32 msgid "Place files in sub directories if the device supports them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 msgid "Read metadata from files on device" msgstr "장치에 있는 파일로부터 메타데이터를 읽습니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 +msgid "Template to control how books are saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 msgid "Extra customization" msgstr "추가 설정" @@ -631,102 +669,102 @@ msgstr "추가 설정" msgid "Communicate with an eBook reader." msgstr "전자책 리더와 통신합니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 msgid "Get device information..." msgstr "장치 정보를 얻습니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:119 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:127 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 msgid "Adding books to device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:150 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:155 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 msgid "Removing books from device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 msgid "Rendered %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:199 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 msgid "Failed %s" msgstr "%s 실패함" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "" "Failed to process comic: \n" "\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Number of colors for grayscale image conversion. Default: %default. Values " "of less than 256 may result in blurred text on your device if you are " "creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "이미지의 종횐비를 유지합니다. 기본값은 화면 채움입니다." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Disable sharpening." msgstr "날카롭게하기를 끕니다." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:294 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:301 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "" "The format that images in the created ebook are converted to. You can " "experiment to see which format gives you optimal size and look on your " "device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:312 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 msgid "Page" msgstr "페이지" @@ -799,22 +837,22 @@ msgstr "" msgid "List builtin recipes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:252 msgid "Output saved to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:91 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:92 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:98 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " "conversion process a bug is occurring." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:108 msgid "" "Specify the input profile. The input profile gives the conversion system " "information on how to interpret various information in the input document. " @@ -822,7 +860,7 @@ msgid "" "are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:118 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:119 msgid "" "Specify the output profile. The output profile tells the conversion system " "how to optimize the created document for the specified device. In some " @@ -830,7 +868,7 @@ msgid "" "a device. For example EPUB on the SONY reader. Choices are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:130 msgid "" "The base font size in pts. All font sizes in the produced book will be " "rescaled based on this size. By choosing a larger size you can make the " @@ -838,7 +876,7 @@ msgid "" "chosen based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:140 msgid "" "Mapping from CSS font names to font sizes in pts. An example setting is " "12,12,14,16,18,20,22,24. These are the mappings for the sizes xx-small to xx-" @@ -847,17 +885,17 @@ msgid "" "use a mapping based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:151 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:152 msgid "Disable all rescaling of font sizes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:158 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 msgid "" "The line height in pts. Controls spacing between consecutive lines of text. " "By default no line height manipulation is performed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:166 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:167 msgid "" "Some badly designed documents use tables to control the layout of text on " "the page. When converted these documents often have text that runs off the " @@ -865,58 +903,58 @@ msgid "" "tables and present it in a linear fashion." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:177 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level one. If this is specified, it takes precedence over " "other forms of auto-detection." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:185 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:186 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level two. Each entry is added under the previous level one " "entry." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:193 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:194 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level three. Each entry is added under the previous level two " "entry." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:202 msgid "" "Normally, if the source file already has a Table of Contents, it is used in " "preference to the auto-generated one. With this option, the auto-generated " "one is always used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:209 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:210 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:216 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:223 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 msgid "" "Maximum number of links to insert into the TOC. Set to 0 to disable. Default " "is: %default. Links are only added to the TOC if less than the threshold " "number of chapters were detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:231 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:232 msgid "" "Remove entries from the Table of Contents whose titles match the specified " "regular expression. Matching entries and all their children are removed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:243 msgid "" "An XPath expression to detect chapter titles. The default is to consider " "

or

tags that contain the words \"chapter\",\"book\",\"section\" or " @@ -926,7 +964,7 @@ msgid "" "User Manual for further help on using this feature." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:257 msgid "" "Specify how to mark detected chapters. A value of \"pagebreak\" will insert " "page breaks before chapters. A value of \"rule\" will insert a line before " @@ -934,112 +972,112 @@ msgid "" "\"both\" will use both page breaks and lines to mark chapters." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:266 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:267 msgid "" "Either the path to a CSS stylesheet or raw CSS. This CSS will be appended to " "the style rules from the source file, so it can be used to override those " "rules." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:275 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:276 msgid "" "An XPath expression. Page breaks are inserted before the specified elements." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:282 msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:287 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:292 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:296 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:297 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:301 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:302 msgid "" "Do not force text to be justified in output. Whether text is actually " "displayed justified or not depends on whether the ebook format and reading " "device support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:309 msgid "" "Remove spacing between paragraphs. Also sets an indent on paragraphs of " "1.5em. Spacing removal will not work if the source file does not use " "paragraphs (

or

tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 msgid "" "When calibre removes inter paragraph spacing, it automatically sets a " "paragraph indent, to ensure that paragraphs can be easily distinguished. " "This option controls the width of that indent." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:322 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 msgid "" "Use the cover detected from the source file in preference to the specified " "cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:328 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:329 msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (

or

tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:335 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 msgid "" "Remove the first image from the input ebook. Useful if the first image in " "the source file is a cover and you are specifying an external cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:343 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:344 msgid "" "Insert the book metadata at the start of the book. This is useful if your " "ebook reader does not support displaying/searching metadata directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:351 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 msgid "" "Attempt to detect and correct hard line breaks and other problems in the " "source file. This may make things worse, so use with care." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:360 msgid "Use a regular expression to try and remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:366 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 msgid "The regular expression to use to remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:372 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:373 msgid "Use a regular expression to try and remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 msgid "The regular expression to use to remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:386 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 msgid "" "Read metadata from the specified OPF file. Metadata read from this file will " "override any metadata in the source file." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:393 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1049,90 +1087,90 @@ msgid "" "number of people will be used (Chinese in the previous example)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:408 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:409 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:37 msgid "Set the title." msgstr "제목을 지정합니다." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:412 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:413 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 msgid "The version of the title to be used for sorting. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:421 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 msgid "String to be used when sorting by author. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:425 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 msgid "Set the cover to the specified file." msgstr "해당 파일에 커버를 지정합니다." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:429 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 msgid "Set the ebook description." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:433 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:55 msgid "Set the ebook publisher." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 msgid "Set the series this ebook belongs to." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:442 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:61 msgid "Set the index of the book in this series." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:63 msgid "Set the rating. Should be a number between 1 and 5." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 msgid "Set the ISBN of the book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:457 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 msgid "Set the book producer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:461 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:71 msgid "Set the language." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:553 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 msgid "Could not find an ebook inside the archive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:611 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:620 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:731 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:740 msgid "Converting input to HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:754 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:763 msgid "Running transforms on ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:840 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:850 msgid "Creating" msgstr "생성 중" @@ -1165,9 +1203,9 @@ msgid "" "disables the generation of this cover." msgstr "" -#: /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/rb/rbml.py:101 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "목차:" @@ -1215,85 +1253,85 @@ msgstr "" msgid "Creating LIT file from EPUB..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:321 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 msgid "\tBook Designer file detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:323 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 msgid "\tParsing HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 msgid "\tBaen file detected. Re-parsing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 msgid "Written preprocessed HTML to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:380 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 msgid "Processing %s" msgstr "%s 처리중" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:394 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 msgid "\tConverting to BBeB..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:540 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:553 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:552 msgid "Could not parse file: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:545 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 msgid "%s is an empty file" msgstr "%s는 빈 파일입니다." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:565 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 msgid "Failed to parse link %s %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:958 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1003 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1018 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 msgid "" "Could not process image: %s\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1773 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 msgid "" "An error occurred while processing a table: %s. Ignoring table markup." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1775 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 msgid "" "Bad table:\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1797 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 msgid "Table has cell that is too large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1863 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 msgid "Could not read cover image: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1866 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Cannot read from: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1996 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 msgid "Failed to process opf file" msgstr "" @@ -1476,26 +1514,26 @@ msgstr "만화" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:389 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1069 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 msgid "Title" msgstr "제목" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:394 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1070 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Author(s)" msgstr "저자" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 msgid "Publisher" msgstr "출판사" @@ -1506,28 +1544,28 @@ msgstr "제작자" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "설명" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1073 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "꼬리표" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "시리즈" @@ -1536,13 +1574,13 @@ msgid "Language" msgstr "언어" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1012 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 msgid "Timestamp" msgstr "시간 정보" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 msgid "Published" msgstr "출판" @@ -1550,7 +1588,7 @@ msgstr "출판" msgid "Rights" msgstr "권리" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "편집자 리뷰" @@ -1615,27 +1653,27 @@ msgstr "" msgid "Set the BookID in LRF files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 msgid "No file specified" msgstr "파일이 지정되지 않음." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:159 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 msgid "Original metadata" msgstr "원본 메타데이터" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 msgid "Changed metadata" msgstr "변경된 메타데이터" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:188 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 msgid "No cover found" msgstr "표지 그림을 찾지 못했습니다" @@ -1657,15 +1695,15 @@ msgstr "설명/리뷰" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 msgid "Download %s from %s" -msgstr "" +msgstr "%s을(를) %s에서 내려받기" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 msgid "Downloads metadata from Google Books" -msgstr "Google Books에서 메타데이터를 다운로드합니다." +msgstr "Google Books에서 메타 데이터를 내려받습니다." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:153 msgid "Downloads metadata from isbndb.com" -msgstr "isbndb.com에서 메타데이터를 다운로드합니다." +msgstr "isbndb.com에서 메타 데이터를 내려받습니다." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 msgid "" @@ -1675,7 +1713,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189 msgid "Downloads social metadata from amazon.com" -msgstr "" +msgstr "amazon.com에서 소셜 메타 데이터를 내려받습니다." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 msgid "" @@ -1734,7 +1772,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 msgid "Cover" msgstr "표지" @@ -1765,97 +1803,73 @@ msgstr "" msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 msgid "Title Page" msgstr "제목 페이지" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "목차" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 msgid "Index" msgstr "색인" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 msgid "Bibliography" msgstr "참고 문헌" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 msgid "Colophon" msgstr "출판 정보" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Copyright" msgstr "저작권" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Dedication" msgstr "바치는 글" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Foreword" msgstr "서문" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "List of Illustrations" msgstr "그림 차례" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Notes" msgstr "노트" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Preface" msgstr "서문" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Main Text" msgstr "본문" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:53 -msgid "Options to control e-book conversion." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:60 -msgid "Character encoding for input. Default is to auto detect." -msgstr "입력받을 문자 인코딩. 기본값은 자동 검출." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:62 -msgid "Output file. Default is derived from input filename." -msgstr "출력 파일. 기본값은 입력 파일명." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:64 -msgid "Produce more human-readable XML output." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:66 -msgid "Useful for debugging." -msgstr "디버깅에 유용함." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:71 -msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 msgid "%s format books are not supported" msgstr "" @@ -2136,7 +2150,7 @@ msgstr "" msgid "The orientation of the page. Default is portrait. Choices are %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:52 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 msgid "Could not find pdftohtml, check it is in your PATH" msgstr "" @@ -2145,7 +2159,7 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:183 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it." @@ -2169,6 +2183,10 @@ msgid "" "markdown see" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:35 +msgid "Do not insert a Table of Contents into the output text." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 msgid "" "Type of newline to use. Options are %s. Default is 'system'. Use 'old_mac' " @@ -2183,11 +2201,6 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:54 -msgid "Do not add a blank line between paragraphs." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:41 msgid "" "The maximum number of characters per line. This splits on the first space " "before the specified value. If no space is found the line will be broken at " @@ -2195,192 +2208,294 @@ msgid "" "minimum of 25 characters. Use 0 to disable line splitting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 msgid "" "Force splitting on the max-line-length value when no space is present. Also " "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:52 -msgid "Add a tab at the beginning of each paragraph." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 msgid "Toolbar icon size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 msgid "Upload downloaded news to device" -msgstr "" +msgstr "내려받은 뉴스를 장치로 올립니다." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 msgid "Download social metadata (tags/rating/etc.)" +msgstr "소셜 메타 데이터를 내려받습니다. (태그/등급/기타)" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 msgid "Saved" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "Options specific to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +msgid "Form" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "분류" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 +msgid "Tags to exclude as genres (regex):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" "For settings that cannot be specified in this dialog, use the values saved " @@ -2401,22 +2516,6 @@ msgstr "" msgid "Comic Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "Options specific to" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 @@ -2425,34 +2524,6 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:51 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 -msgid "Form" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" @@ -2545,23 +2616,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:70 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 @@ -2569,11 +2640,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:267 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:269 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:332 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:334 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:180 msgid "..." msgstr "" @@ -2588,17 +2660,6 @@ msgstr "" msgid "EPUB Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "output" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" msgstr "" @@ -2630,7 +2691,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 msgid "&Inline TOC" msgstr "" @@ -2823,8 +2884,8 @@ msgid "&Monospaced font family:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:113 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 msgid "Metadata" msgstr "" @@ -2834,39 +2895,39 @@ msgid "" "possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 msgid "Choose cover for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 msgid "Cannot read" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 msgid "You do not have permission to read the file: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:175 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 msgid "Error reading file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 msgid "

There was an error reading from file:
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 msgid " is not a valid picture" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Book Cover" msgstr "" @@ -2875,28 +2936,28 @@ msgid "Use cover from &source file" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 msgid "Change &cover image:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 msgid "Browse for an image to use as the cover of this book." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 msgid "&Title: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "" @@ -2912,18 +2973,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

They can be any words or phrases, separated by commas." @@ -2931,7 +2992,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "" @@ -2939,13 +3000,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "Book " msgstr "" @@ -3014,12 +3075,12 @@ msgid "PDB Input" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:43 msgid "Treat each &line as a paragraph" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:44 msgid "Assume print formatting" msgstr "" @@ -3060,7 +3121,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 msgid "Choose the format to view" msgstr "" @@ -3086,7 +3147,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:47 msgid "Preview" -msgstr "" +msgstr "미리보기" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:48 msgid "Regex:" @@ -3101,7 +3162,7 @@ msgid "Options specific to the input format." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" @@ -3143,12 +3204,12 @@ msgid "Footer regular expression:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 msgid "Invalid regular expression" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 msgid "Invalid regular expression: %s" msgstr "" @@ -3232,40 +3293,40 @@ msgstr "" msgid "TXT Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:45 msgid "Process using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 msgid "" "

Markdown is a simple markup language for text files, that allows for " "advanced formatting. To learn more visit markdown." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:47 +msgid "Do not insert Table of Contents into output text when using markdown" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 msgid "&Line ending style:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:55 -msgid "Add a tab at the beginning of each paragraph" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 msgid "&Maximum line length:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 msgid "Force maximum line lenght" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 @@ -3274,7 +3335,7 @@ msgstr "" msgid "TextLabel" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 msgid "Use a wizard to help construct the XPath expression" msgstr "" @@ -3352,237 +3413,281 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:39 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 msgid "Download books from device" -msgstr "" +msgstr "장치로부터 책을 내려받습니다." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 msgid "and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:303 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:308 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:315 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:317 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 msgid "Email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 -msgid "Send to main memory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:332 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 -msgid "Send to storage card A" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 +msgid "Send to main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 +msgid "Send to storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 msgid "Send specific format to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 msgid "Send specific format to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Send specific format to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:497 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:603 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:610 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:702 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:629 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:673 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:703 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:818 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:734 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:786 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:825 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 msgid "" "Could not upload the following books to the device, as no suitable formats " "were found. Convert the book(s) to a format supported by your device first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:75 msgid "Select available formats and their order for this device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 msgid "Use sub directories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:346 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1008 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +msgid "Save &template:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:345 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +msgid "Generate catalog" +msgstr "분류를 생성합니다." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "분류 옵션" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "{0}권의 책을 위해 분류를 생성합니다." + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "" @@ -3615,6 +3720,12 @@ msgstr "" msgid "plugins" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 +msgid "" +"\n" +"Customization: " +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "Conversion" msgstr "" @@ -3673,127 +3784,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /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:477 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1094 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:639 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:667 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:691 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:699 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:752 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:757 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:753 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:754 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:792 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:818 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -3801,14 +3912,6 @@ msgid "" "folder directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save.py:68 -msgid "Invalid template" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save.py:69 -msgid "The template %s is invalid:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:100 msgid "TabWidget" msgstr "" @@ -3825,310 +3928,322 @@ msgid "Read metadata only from &file name" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:103 -msgid "&Configure metadata from file name" +msgid "" +"Swap the firstname and lastname of the author. This affects only metadata " +"read from file names." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:104 -msgid "&Adding books" +msgid "&Swap author firstname and lastname" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:105 +msgid "&Configure metadata from file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +msgid "&Adding books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 msgid "" "Here you can control how calibre will save your books when you click the " "Save to Disk button:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 msgid "Save &cover separately" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 msgid "Update &metadata in saved copies" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 msgid "Save metadata in &OPF file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 msgid "Convert non-English characters to &English equivalents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 msgid "Format &dates as:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 msgid "File &formats to save:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 -msgid "Save &template" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 -msgid "" -"By adjusting the template below, you can control what folders the files are " -"saved in and what filenames they are given. You can use the / character to " -"indicate sub-folders. Available metadata variables are described below. If a " -"particular book does not have some metadata, the variable will be replaced " -"by the empty string." -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:114 -msgid "Available variables:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 msgid "Replace space with &underscores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 msgid "Change paths to &lowercase" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 msgid "&Saving books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 +msgid "" +"Here you can control how calibre will save your books when you click the " +"Send to Device button. This setting can be overriden for individual devices " +"by customizing the device interface plugins in Preferences->Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 +msgid "Sending to &device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid " seconds" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 msgid "Choose &language (requires restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Normal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "High" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid "Low" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4139,36 +4254,73 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Add" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +msgid "Getting debug information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:22 +msgid "Copy to &clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:24 +msgid "Debug device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:44 +msgid "Invalid template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:45 +msgid "The template %s is invalid:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:42 +msgid "Save &template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +msgid "" +"By adjusting the template below, you can control what folders the files are " +"saved in and what filenames they are given. You can use the / character to " +"indicate sub-folders. Available metadata variables are described below. If a " +"particular book does not have some metadata, the variable will be replaced " +"by the empty string." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +msgid "Available variables:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 msgid "Downloading social metadata, please wait..." msgstr "" @@ -4277,10 +4429,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 msgid "Edit Meta information" -msgstr "" +msgstr "메타 정보 수정하기" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "" @@ -4293,26 +4445,26 @@ msgid "Author s&ort: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr "" @@ -4322,8 +4474,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "" @@ -4343,182 +4495,191 @@ msgstr "" msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 msgid "Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:244 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +msgid "This ISBN number is valid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +msgid "This ISBN number is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:503 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:508 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:578 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 msgid "Could not open %s. Is it being used by another program?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 msgid "Edit Meta Information" -msgstr "" +msgstr "메타 정보 수정하기" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 msgid "Swap the author and title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 msgid "Author S&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 msgid "" "Automatically create the author sort entry based on the current author entry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "Remove unused series (Series that have no books)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "IS&BN:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 msgid "Publishe&d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 msgid "dd MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 msgid "&Date:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "&Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Fetch metadata from server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 msgid "Available Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 msgid "Add a new format for this book to the database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "Remove the selected formats for this book from the database." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "Set the cover for the book from the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 msgid "Download &cover" msgstr "" @@ -4727,11 +4888,15 @@ msgid "" "interface\">User Manual for more help" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +msgid "Choose formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 msgid "Are your sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" @@ -4786,7 +4951,7 @@ msgid "Send test mail from %s to:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 msgid "&Test" msgstr "" @@ -4970,7 +5135,7 @@ msgstr "" msgid "Recipe source code (python)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 msgid "" "\n" @@ -4994,165 +5159,165 @@ msgid "" "metadata entries are documented in tooltips.

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 msgid "Regular &expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 msgid "File &name:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 msgid "Test" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 msgid "Title:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 msgid "Regular expression (?P<title>)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:113 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 msgid "No match" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 msgid "Authors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 msgid "Series:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 msgid "Series index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 msgid "ISBN:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 msgid "Job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 msgid "Status" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 msgid "Progress" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 msgid "Running time" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:68 msgid "There are %d running jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:94 msgid "Unknown job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 msgid "There are %d waiting jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:210 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 msgid "Cannot kill job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:212 msgid "Cannot kill jobs that communicate with the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:215 msgid "Job has already run" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:243 msgid "Unavailable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:253 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:254 msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:161 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1071 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:162 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 msgid "Date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 msgid "Rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:344 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:835 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:836 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1007 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 msgid "Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1061 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 msgid "Double click to edit me

" msgstr "" @@ -5181,7 +5346,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 msgid "No matches found" msgstr "" @@ -5206,12 +5371,12 @@ msgid "Previous Page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:182 msgid "Back" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:183 msgid "Forward" msgstr "" @@ -5220,7 +5385,7 @@ msgid "Next match" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 msgid "Open ebook" msgstr "" @@ -5277,137 +5442,137 @@ msgstr "" msgid "try deleting the file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:331 msgid "calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 msgid "Advanced search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 msgid "Alt+S" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 msgid "&Search:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 msgid "" "

Search the list of books by title, author, publisher, tags, comments, " "etc.

Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 msgid "Reset Quick Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 -msgid "Match any" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 -msgid "Match all" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 msgid "Sort by &popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 -msgid "Add books" +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +msgid "Match any" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 +msgid "Match all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 +msgid "Add books" +msgstr "책 추가하기" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 msgid "A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 msgid "Remove books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 msgid "Del" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 msgid "Edit meta information" -msgstr "" +msgstr "메타 정보 수정하기" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 msgid "E" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 msgid "Send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 msgid "Save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 msgid "S" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 msgid "Fetch news" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 msgid "F" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 msgid "Convert E-books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 msgid "C" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 msgid "View" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 msgid "V" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 msgid "Open containing folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 msgid "Show book details" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 msgid "Books by same author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 msgid "Books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 msgid "Books by this publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 msgid "Books with the same tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 msgid "Configure calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 msgid "Ctrl+P" msgstr "" @@ -5441,33 +5606,37 @@ msgstr "" msgid "Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 msgid "Already assigned" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 msgid "already assigned to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid " or " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 msgid "&Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 msgid "Customize shortcuts for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid "Keys" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" msgstr "" @@ -5497,37 +5666,37 @@ msgstr "" msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 msgid "Jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:158 msgid "Click to see list of active jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 msgid "Click to browse books by their covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 msgid "Click to turn off Cover Browsing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 msgid "" "

Browsing books by their covers is disabled.
Import of pictureflow " "module failed:
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:209 msgid "Click to browse books by tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Publishers" msgstr "" @@ -5560,11 +5729,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5604,11 +5773,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:247 msgid "Edit metadata individually" -msgstr "" +msgstr "개별 메타 정보 수정하기" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:249 msgid "Edit metadata in bulk" -msgstr "" +msgstr "단체 메타 정보 수정하기" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:251 msgid "Download metadata and covers" @@ -5628,30 +5797,30 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:257 msgid "Add books from a single directory" -msgstr "" +msgstr "하나의 디렉토리로부터 책 추가하기" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:258 msgid "" "Add books from directories, including sub-directories (One book per " "directory, assumes every ebook file is the same book in a different format)" -msgstr "" +msgstr "하위 디렉토리를 포함하여 디렉토리로부터 책 추가하기 (디렉토리당 책 하나)" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:261 msgid "" "Add books from directories, including sub directories (Multiple books per " "directory, assumes every ebook file is a different book)" -msgstr "" +msgstr "하위 디렉토리를 포함하여 디렉토리로부터 책 추가하기 (디렉토리에 여러 책)" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:264 msgid "Add Empty book. (Book entry with no formats)" -msgstr "" +msgstr "빈 책 추가하기. (포맷이 지정되지 않은 책 항목)" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:305 msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1523 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 msgid "Save only %s format to disk" msgstr "" @@ -5659,58 +5828,82 @@ msgstr "" msgid "View specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:319 +msgid "Remove selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:321 +msgid "Remove files of a specific format from selected books.." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:323 +msgid "Remove all formats from selected books, except..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:325 +msgid "Remove covers from selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 msgid "Convert individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 msgid "Similar books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 msgid "Bad database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:454 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 msgid "Calibre Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1666 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 msgid "Choose a location for your ebook library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:775 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:798 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 msgid "Connected " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:810 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 msgid "Device database corrupted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:811 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 msgid "" "\n" "

The database of books on the reader is corrupted. Try the " @@ -5726,178 +5919,216 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 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 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:931 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:932 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:969 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 +msgid "Supported books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:970 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +msgid "Cannot delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +msgid "No book selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +msgid "Choose formats to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +msgid "Choose formats not to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1047 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1048 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1138 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1163 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1276 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1093 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1104 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1137 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 msgid "Cannot edit metadata" -msgstr "" +msgstr "메타 정보를 수정할 수 없습니다." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1162 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1165 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1235 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1275 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1304 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1415 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1434 -msgid "No book selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1415 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1450 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -5905,97 +6136,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1508 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1552 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1604 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1605 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1628 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1646 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1629 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1647 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +msgid "Recipe Disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1675 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1676 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1724 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1749 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1756 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1808 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1827 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1835 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6057,105 +6292,113 @@ msgstr "" msgid "Import" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 msgid "&Font options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 msgid "Se&rif family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 msgid "&Sans family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 msgid "&Monospace family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 msgid "&Default font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 msgid " px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 msgid "Monospace &font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 msgid "S&tandard font:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 msgid "Serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 msgid "Sans-serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 msgid "Remember last used &window size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 msgid "Maximum &view width:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 msgid "H&yphenate (break line in the middle of large words)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 msgid "" "The default language to use for hyphenation rules. If the book does not " "specify a language, this will be used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 msgid "Default &language for hyphenation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 msgid "&General" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 -msgid "Double click to change a keyborad shortcut" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +msgid "Double click to change a keyboard shortcut" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 msgid "&Keyboard shortcuts" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 +msgid "No results found for:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:33 msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 msgid "Remember last used window size" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -6165,42 +6408,50 @@ msgstr "" msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 -msgid "Hyphenate text" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 -msgid "Default language for hyphenation rules" +msgid "Hyphenate text" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 -msgid "Font options" +msgid "Default language for hyphenation rules" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 -msgid "The serif font family" +msgid "Font options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 -msgid "The sans-serif font family" +msgid "The serif font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 -msgid "The monospaced font family" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 -msgid "The standard font size in px" +msgid "The sans-serif font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 -msgid "The monospaced font size in px" +msgid "The monospaced font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +msgid "The standard font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +msgid "The monospaced font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The standard font type" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +msgid "&Lookup in dictionary" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 msgid "Scroll to the next page" msgstr "" @@ -6249,143 +6500,151 @@ msgstr "" msgid "Scroll right" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 msgid "Book format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +msgid "Connecting to dict.org to lookup: %s…" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:629 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 msgid "" "%prog [options] file\n" "\n" "View an ebook.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:178 msgid "Ebook Viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 +msgid "Close dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 msgid "toolBar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 msgid "Next page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 msgid "Previous page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 msgid "Font size larger" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 msgid "Font size smaller" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 msgid "Find next" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 msgid "Copy to clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 msgid "Reference Mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 msgid "Bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 msgid "Toggle full screen" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 msgid "Print" msgstr "" @@ -6393,114 +6652,122 @@ msgstr "" msgid "Print eBook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 msgid "" "Library\n" "%d\n" "books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 msgid "" "Reader\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 msgid "" "Card A\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 msgid "" "Card B\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 msgid "Click to see the books available on your computer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 msgid "Click to see the books in the main memory of your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 msgid "Click to see the books on storage card A in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 msgid "Click to see the books on storage card B in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 msgid "Change Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:496 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:497 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 msgid "Swap Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 msgid "Title Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330 msgid "" "If you use the WordPlayer e-book app on your Android phone, you can access " "your calibre book collection directly on the device. To do this you have to " "turn on the content server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:334 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:300 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:336 msgid "" "You have to add the URL http://myhostname:8080 as your calibre library in " "WordPlayer. Here myhostname should be the fully qualified hostname or the IP " "address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:413 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:393 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:430 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:448 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:449 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 msgid "" "

An invalid library already exists at %s, delete it before trying to move " "the existing library.
Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:460 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:496 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 msgid "welcome wizard" msgstr "" @@ -6581,7 +6848,7 @@ msgstr "" msgid "" "Choose a location for your books. When you add books to calibre, they will " "be copied here:" -msgstr "" +msgstr "책을 보관할 위치를 선택하세요. calibre에 책을 추가하면, 이 위치로 복사됩니다." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 msgid "&Change" @@ -6758,6 +7025,79 @@ msgid "" "WordPlayer, etc. integration." msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -6857,7 +7197,7 @@ msgstr "" msgid "" "Add books to database even if they already exist. Comparison is done based " "on book titles." -msgstr "" +msgstr "이미 DB에 책이 있어도 책을 추가합니다. 책의 이름을 기반으로 비교합니다." #: /home/kovid/work/calibre/src/calibre/library/cli.py:358 msgid "You must specify at least one file to add" @@ -6973,7 +7313,41 @@ msgstr "" msgid "You must specify some ids or the %s option" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:591 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 +msgid "Show detailed output information. Useful for debugging" +msgstr "상세한 출력 정보를 표시합니다. 디버깅 시에 유용합니다." + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -6985,107 +7359,109 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1625 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1654 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1671 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1801 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1823 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 msgid "Checked id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:22 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 msgid "The title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:23 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 msgid "The authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 -msgid "The author sort string" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 -msgid "The tags" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 -msgid "The series" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:27 -msgid "The series number" +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 -msgid "The rating" +msgid "The tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 -msgid "The ISBN" +msgid "The series" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 -msgid "The publisher" +msgid "The series number. To get leading zeros use {series_index:0>3s}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 -msgid "The date" +msgid "The rating" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 -msgid "The published date" +msgid "The ISBN" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +msgid "The publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +msgid "The date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The calibre internal id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:43 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "Options to control saving to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:49 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 msgid "" "Normally, calibre will update the metadata in the saved files from what is " "in the calibre library. Makes saving to disk slower." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 msgid "" "Normally, calibre will write the metadata into a separate OPF file along " "with the actual e-book files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 msgid "" "Normally, calibre will save the cover in a separate file along with the " "actual e-book file(s)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 msgid "" "Comma separated list of formats to save for each book. By default all " "available books are saved." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 msgid "" "The template to control the filename and directory structure of the saved " "files. Default is \"%s\" which will save books into a per-author " @@ -7093,7 +7469,15 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:66 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 +msgid "" +"The template to control the filename and directory structure of files sent " +"to the device. Default is \"%s\" which will save books into a per-author " +"directory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -7101,21 +7485,21 @@ msgid "" "saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:72 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 msgid "" "The format in which to display dates. %d - day, %b - month, %Y - year. " "Default is: %b, %Y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:75 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Convert paths to lowercase." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:77 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:230 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "" @@ -7123,67 +7507,75 @@ msgstr "" msgid "Password to access your calibre library. Username is " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" "Start the calibre content server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:49 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 +msgid "Path to the library folder to serve with the content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 msgid "%sUsage%s: %s\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 msgid "Created by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 msgid "" "Whenever you pass arguments to %prog that have spaces in them, enclose the " "arguments in quotation marks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:631 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:633 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:635 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:637 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:639 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:641 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 msgid "The language in which to display the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:643 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 msgid "The default output format for ebook conversions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:647 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:649 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 msgid "Read metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:651 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 msgid "The priority of worker processes" msgstr "" +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 +msgid "Swap author first and last names when reading metadata" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." msgstr "" @@ -7196,7 +7588,7 @@ msgstr "" msgid "Finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 msgid "Working..." msgstr "" @@ -7225,26 +7617,50 @@ msgid "English" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 -msgid "English (AU)" +msgid "English (Australia)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 -msgid "English (CA)" +msgid "English (New Zealand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 -msgid "English (IND)" +msgid "English (Canada)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 -msgid "English (TH)" +msgid "English (India)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 -msgid "Dutch (NL)" +msgid "English (Thailand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +msgid "English (Cyprus)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +msgid "English (Pakistan)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +msgid "English (Singapore)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +msgid "English (Yemen)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 msgid "Dutch (BE)" msgstr "" @@ -7278,164 +7694,169 @@ msgstr "" msgid "Untitled article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:18 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 msgid "Download periodical content from the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:33 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 msgid "" "Useful for recipe development. Forces max_articles_per_feed to 2 and " "downloads at most 2 feeds." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 msgid "Username for sites that require a login to access content." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:42 msgid "Password for sites that require a login to access content." msgstr "" +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:46 +msgid "" +"Do not download latest version of builtin recipes from the calibre server" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:513 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:599 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:601 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:607 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:611 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:692 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:713 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:718 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:724 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:782 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:798 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:808 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:815 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:941 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1012 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1023 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1040 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:45 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 msgid "You" msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:172 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:181 msgid "Scheduled" msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:173 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:182 msgid "Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:453 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:456 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:469 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7444,10 +7865,39 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "CSS 스타일시트를 다운로드 받지 마시오" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476 -msgid "Show detailed output information. Useful for debugging" -msgstr "상세한 출력 정보를 표시합니다. 디버깅 시에 유용합니다." +#~ msgid "Communicate with the Cybook Gen 3 eBook reader." +#~ msgstr "Cybook Gen 3 전자책 리더와 통신합니다" + +#~ msgid "Communicate with the BeBook eBook reader." +#~ msgstr "BeBook 전자책 리더와 통신합니다" + +#~ msgid "Communicate with the BeBook Mini eBook reader." +#~ msgstr "BeBook Mini 전자책 리더와 통신합니다" + +#~ msgid "Communicate with the Sony PRS-600/700 eBook reader." +#~ msgstr "Sony PRS-600/700 전자책 리더와 통신합니다" + +#~ msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." +#~ msgstr "이 프로파일은 SONY PRS 시리즈에 사용됩니다. 500/505/700 등." + +#~ msgid "Communicate with the Cybook Opus eBook reader." +#~ msgstr "Cybook Opus 전자책 릳와 통신합니다." + +#~ msgid "James Ralston" +#~ msgstr "James Ralston" + +#~ msgid "Kovid Goyal and John Schember" +#~ msgstr "Kovid Goyal과 John Schember" + +#~ msgid "Output file. Default is derived from input filename." +#~ msgstr "출력 파일. 기본값은 입력 파일명." + +#~ msgid "Useful for debugging." +#~ msgstr "디버깅에 유용함." + +#~ msgid "Character encoding for input. Default is to auto detect." +#~ msgstr "입력받을 문자 인코딩. 기본값은 자동 검출." diff --git a/src/calibre/translations/lv.po b/src/calibre/translations/lv.po index 7b2ed14e70..e3059131f6 100644 --- a/src/calibre/translations/lv.po +++ b/src/calibre/translations/lv.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:33+0000\n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-09 05:43+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Latvian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-02-10 04:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: LATVIA\n" "X-Poedit-Language: Latvian\n" @@ -32,7 +32,7 @@ msgstr "Pilnīgi neko nedara" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -40,19 +40,19 @@ msgstr "Pilnīgi neko nedara" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -67,18 +67,18 @@ msgstr "Pilnīgi neko nedara" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -101,10 +101,10 @@ msgstr "Pilnīgi neko nedara" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -115,23 +115,23 @@ msgstr "Pilnīgi neko nedara" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -484,6 +484,10 @@ msgstr "Ierīču saskarnes" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Komunicē ar IRex Digital Reader 1000 e-grāmatu lasītāju." +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "" @@ -620,12 +624,12 @@ msgid "There is insufficient free space on the storage card" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "Ziņas" @@ -757,8 +761,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Lapa" @@ -1506,83 +1510,83 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Nosaukums" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Autors(i)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Komentāri" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Birkas" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Sērija" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Valoda" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "Publicēts" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -1766,7 +1770,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Vāks" @@ -1793,74 +1797,74 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Visi raksti" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Titullapa" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Satura rādītājs" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Bibliogrāfija" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "Priekšvārds" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "Ilustrāciju saraksts" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "Tabulu saraksts" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Piezīmes" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "Priekšvārds" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Pamatteksts" @@ -2160,7 +2164,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2212,183 +2217,188 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Nokopēts" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Kopēt" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Kopēt uz starpliktuvi" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "Pievieno..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "Pievienots" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "Pievienošana neveiksmīga" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "Atrasti dublikāti!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "Saglabā..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "Saglabāts" @@ -2403,7 +2413,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2419,7 +2429,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2428,7 +2438,7 @@ msgid "output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2438,7 +2448,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2464,32 +2474,53 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -2617,12 +2648,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2954,7 +2985,7 @@ msgid "Change the title of this book" msgstr "Maina šīs grāmatas nosaukumu" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Autors(i): " @@ -2971,7 +3002,7 @@ msgstr "" "Mainīt šīs grāmatas autoru(s). Ja autori ir vairāki, tie jāatdala ar komatu" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Izdevniecība: " @@ -2982,7 +3013,7 @@ msgid "Ta&gs: " msgstr "&Birkas: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -2990,15 +3021,15 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Sērija:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3009,30 +3040,42 @@ msgstr "Zināmo sēriju saraksts. Jūs varat pievienot jaunas sērijas." msgid "Book " msgstr "Grāmata " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Lappuses iestatījumi" @@ -3120,7 +3163,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "" @@ -3415,7 +3458,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -3630,8 +3673,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Atrodas" @@ -3641,7 +3684,7 @@ msgstr "Atrodas" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -3664,7 +3707,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -3789,127 +3832,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Kļūda" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s nav derīga spraudņu atrašanās vieta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Izvēlieties spraudni" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Spraudni nevar atspējot" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Spraudni %s nevar atspējot" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Spraudnis nav pielāgojams" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Spraudnim %s nav nepieciešama pielāgošana" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Kļūdu žurnāls:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4003,13 +4046,13 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Iestatījumi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4017,240 +4060,244 @@ msgstr "" "Grāmatu &glabāšanas vieta (E-grāmatas tiek glabātas autoriem atbilstošos " "katalogos. Metadati tiek glabāti failā metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Izvēlēties jaunu datubāzes atrašanās vietu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Informēt, kad pieejama &jauna versija" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " sekundes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Izvēlieties va&lodu (nepieciešams pārstartēt):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Standarta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Augsta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Zema" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "Darbu &prioritāte:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Vēlamais &rezultāta formāts:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Rīkjosla" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Liela" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Vidēja" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Maza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4261,33 +4308,33 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "" @@ -4352,41 +4399,41 @@ msgstr "Autors kārtošanai" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Meklē metadatus..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Nav iespējams atrast metadatus" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Brīdinājums" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Metadati netika atrasti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Metadati netika atrasti. Mēģiniet pamainīt autoru un nosaukumu vai ISBN kodu." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Lejupielādēt metadatus" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4398,29 +4445,33 @@ msgstr "" "ievadīt pieejas kodu, kuru var iegūt reģistrējoties bez maksas.

" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "Pieejas &kods:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Meklēt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Rezultāti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" "No zemāk esošā saraksta izvēlieties grāmatu, kura ir visvairāk atbilst " "meklētajai." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "" @@ -4441,24 +4492,24 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Rediģēt metadatus" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "Autors &kārtošanai: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -4467,47 +4518,51 @@ msgstr "" "Norāda grāmatas autora(u) kārtošanas secību. Piemēram, Čārlzs Dikenss būtu " "jākārto kā Dikenss, Čārlzs." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Vērtējums:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Šīs grāmatas vērtējums (0 - 5 zvaigznes)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " zvaigznes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Atvērt birku redaktoru" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4562,67 +4617,67 @@ msgstr "" msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "Lejupielādē vāku..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "Lejupielādes noildze." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "Šai grāmatai nevar atrast vāku. Mēģiniet norādīt ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Slikts vāks" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -5291,23 +5346,23 @@ msgstr "" msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Izmērs (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Datums" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Vērtējums" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5315,25 +5370,25 @@ msgstr "Vērtējums" msgid "None" msgstr "Nav" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "%s. no %s grāmatām." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "" @@ -5362,7 +5417,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "" @@ -5409,52 +5464,52 @@ msgstr "Atvērt e-grāmatu" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Nemeklēt atjauninājumus" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5610,11 +5665,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Grāmatai nav ne nosaukuma ne ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" @@ -5745,11 +5800,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5842,7 +5897,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "" @@ -5897,7 +5952,7 @@ msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "" @@ -5994,163 +6049,169 @@ msgstr "Arhīvi" msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "Nav izvēlēta grāmata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Nav iespējams lejupielādēt metadatus" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "vāki" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Nav iespējams lejupielādēt daļu metadatu" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Nevarēja lejuplādēt metadatus:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Nevar lejuplādēt metadatus:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Nav iespējams rediģēt metadatus" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Nav iespējams saglabāt diskā" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Kļūda saglabājot" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Dažas grāmatas nevarēja saglabāt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "Nav iespējams pārveidot" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "Izvēlētas vairākas grāmatas" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6158,101 +6219,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "Pieejams atjauninājums" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6415,7 +6476,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "" @@ -6470,7 +6531,7 @@ msgstr "" msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "" @@ -6530,88 +6591,88 @@ msgstr "Grāmatas formāts" msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7050,7 +7111,7 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7059,7 +7120,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7067,14 +7128,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7083,14 +7144,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7099,21 +7160,37 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7123,6 +7200,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7372,7 +7456,7 @@ msgstr "" msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7384,27 +7468,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "Kopē %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "" @@ -7613,7 +7697,7 @@ msgstr "" msgid "Finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -7746,75 +7830,83 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "Lejupielāde pabeigta" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr " no " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "Mēģina lejupielādēt vāku..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "Lejupielādē vāku no %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "" diff --git a/src/calibre/translations/ms.po b/src/calibre/translations/ms.po new file mode 100644 index 0000000000..909cf7a66d --- /dev/null +++ b/src/calibre/translations/ms.po @@ -0,0 +1,7952 @@ +# Malay translation for calibre +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the calibre package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: calibre\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-09 05:45+0000\n" +"Last-Translator: Kovid Goyal \n" +"Language-Team: Malay \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-02-10 04:42+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 +msgid "Does absolutely nothing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:322 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 +#: /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/meta.py:36 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 +#: /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/pdf.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 +#: /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:70 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 +#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 +#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:82 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:83 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:73 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:74 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:65 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:66 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:81 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 +#: /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/database2.py:703 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:715 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 +#: /home/kovid/work/calibre/src/calibre/library/server.py:645 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:49 +msgid "Unknown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 +msgid "Base" +msgstr "Asas" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 +msgid "File type" +msgstr "Jenis fail" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 +msgid "Metadata reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 +msgid "Metadata writer" +msgstr "Penulis metadata" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 +msgid "" +"Follow all local links in an HTML file and create a ZIP file containing all " +"linked files. This plugin is run every time you add an HTML file to the " +"library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 +msgid "" +"Character encoding for the input HTML files. Common choices include: cp1252, " +"latin1, iso-8859-1 and utf-8." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py: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" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:108 +#: /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:140 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:151 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:161 +#: /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:191 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:201 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:212 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:223 +#: /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: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" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 +msgid "Read metadata from ebooks in RAR archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 +msgid "Read metadata from ebooks in ZIP archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:319 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:329 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:351 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:362 +msgid "Set metadata in %s files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 +msgid "Set metadata from %s files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 +msgid "Conversion Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 +msgid "" +"Specify the character encoding of the input document. If set this option " +"will override any encoding declared by the document itself. Particularly " +"useful for documents that do not declare an encoding or that have erroneous " +"encoding declarations." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 +msgid "Conversion Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 +msgid "" +"If specified, the output plugin will try to create output that is as human " +"readable as possible. May not have any effect for some output plugins." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:44 +msgid "Input profile" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:48 +msgid "" +"This profile tries to provide sane defaults and is useful if you know " +"nothing about the input document." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:235 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/600/700 etc." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 +msgid "This profile is intended for the SONY PRS 300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +msgid "This profile is intended for the SONY PRS-900." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 +msgid "This profile is intended for the Microsoft Reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 +msgid "This profile is intended for the Mobipocket books." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 +msgid "This profile is intended for the Hanlin V3 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 +msgid "This profile is intended for the Hanlin V5 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 +msgid "This profile is intended for the Cybook G3." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 +msgid "This profile is intended for the Cybook Opus." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 +msgid "This profile is intended for the Amazon Kindle." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 +msgid "This profile is intended for the Irex Illiad." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 +msgid "This profile is intended for the IRex Digital Reader 1000." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 +msgid "This profile is intended for the B&N Nook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 +msgid "Output profile" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 +msgid "" +"This profile tries to provide sane defaults and is useful if you want to " +"produce a document intended to be read at a computer or on a range of " +"devices." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:248 +msgid "This profile is intended for the SONY PRS-300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 +msgid "This profile is intended for the 5-inch JetBook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/700 etc, in " +"landscape mode. Mainly useful for comics." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 +msgid "This profile is intended for the Amazon Kindle DX." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 +msgid "Installed plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +msgid "Mapping for filetype plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +msgid "Local plugin customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +msgid "Disabled plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 +msgid "No valid plugin found in " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:263 +msgid "Initialization of plugin %s failed with traceback:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 +msgid "" +" %prog options\n" +"\n" +" Customize calibre by loading external plugins.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 +msgid "Add a plugin by specifying the path to the zip file containing it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 +msgid "Remove a custom plugin by name. Has no effect on builtin plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 +msgid "" +"Customize plugin. Specify name of plugin and customization string separated " +"by a comma." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 +msgid "List all installed plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 +msgid "Enable the named plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 +msgid "Disable the named plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 +msgid "Communicate with Android phones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 +msgid "" +"Comma separated list of directories to send e-books to on the device. The " +"first one that exists will be used" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +msgid "Communicate with the Binatone Readme eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +msgid "Communicate with the Blackberry smart phone." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 +msgid "Kovid Goyal" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 +msgid "Communicate with the EB600 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 +msgid "Communicate with the ESlick eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +msgid "Communicate with Hanlin V3 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 +msgid "Communicate with Hanlin V5 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 +msgid "Communicate with the BOOX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 +msgid "Communicate with the Hanvon N520 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 +msgid "Communicate with the IRex Iliad eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 +msgid "John Schember" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 +msgid "Device Interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 +msgid "Communicate with the IRex Digital Reader 1000 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 +msgid "Communicate with the Iriver Story reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 +msgid "Communicate with the JetBook eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 +msgid "Communicate with the Kindle eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 +msgid "Communicate with the Kindle 2 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 +msgid "Communicate with the Kindle DX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +msgid "Communicate with the Nokia 770 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +msgid "Communicate with the Nokia 810 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 +msgid "The Nook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 +msgid "Communicate with the Nook eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 +msgid "Communicate with the Nuut2 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 +msgid "Communicate with the Sony PRS-500 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:105 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:108 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:119 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:45 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:81 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:90 +msgid "Getting list of books on device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:26 +msgid "Communicate with the Sony PRS-300/505/500 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:58 +msgid "" +"Comma separated list of metadata fields to turn into collections on the " +"device. Possibilities include: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:116 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:118 +msgid "Transferring books to device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +msgid "Removing books from device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 +msgid "Sending metadata to device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 +msgid "Communicate with the Sony PRS-600/700/900 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 +msgid "Unable to detect the %s disk drive. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 +msgid "Unable to detect the %s mount point. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 +msgid "Unable to detect the %s disk drive." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 +msgid "Could not find mount helper: %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 +msgid "" +"Unable to detect the %s disk drive. Your kernel is probably exporting a " +"deprecated version of SYSFS." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 +msgid "Unable to mount main memory (Error code: %d)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 +msgid "The reader has no storage card in this slot." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 +msgid "Selected slot: %s is not supported." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 +msgid "There is insufficient free space in main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 +msgid "There is insufficient free space on the storage card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 +msgid "News" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 +msgid "Configure Device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 +msgid "settings for device drivers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 +msgid "Ordered list of formats the device will accept" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:32 +msgid "Place files in sub directories if the device supports them" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 +msgid "Read metadata from files on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 +msgid "Template to control how books are saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +msgid "Extra customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 +msgid "Communicate with an eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +msgid "Get device information..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 +msgid "Adding books to device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 +msgid "Removing books from device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 +msgid "Rendered %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 +msgid "Failed %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 +msgid "" +"Failed to process comic: \n" +"\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 +msgid "" +"Disable normalize (improve contrast) color range for pictures. Default: False" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 +msgid "Maintain picture aspect ratio. Default is to fill the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 +msgid "Disable sharpening." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 +msgid "" +"Disable trimming of comic pages. For some comics, trimming might remove " +"content as well as borders." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 +msgid "Don't split landscape images into two portrait images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:294 +msgid "" +"Keep aspect ratio and scale image using screen height as image width for " +"viewing in landscape mode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 +msgid "" +"Used for right-to-left publications like manga. Causes landscape pages to be " +"split into portrait pages from right to left." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:301 +msgid "" +"Enable Despeckle. Reduces speckle noise. May greatly increase processing " +"time." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"Don't sort the files found in the comic alphabetically by name. Instead use " +"the order they were added to the comic." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:312 +msgid "Apply no processing to the image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 +msgid "Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:19 +msgid "" +"input_file output_file [options]\n" +"\n" +"Convert an ebook from one format to another.\n" +"\n" +"input_file is the input and output_file is the output. Both must be " +"specified as the first two arguments to the command.\n" +"\n" +"The output ebook format is guessed from the file extension of output_file. " +"output_file can also be of the special format .EXT where EXT is the output " +"file extension. In this case, the name of the output file is derived the " +"name of the input file. Note that the filenames must not start with a " +"hyphen. Finally, if output_file has no extension, then it is treated as a " +"directory and an \"open ebook\" (OEB) consisting of HTML files is written to " +"that directory. These files are the files that would normally have been " +"passed to the output plugin.\n" +"\n" +"After specifying the input and output file you can customize the conversion " +"by specifying various options. The available options depend on the input and " +"output file types. To get help on them specify the input and output file and " +"then use the -h option.\n" +"\n" +"For full documentation of the conversion system see\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97 +msgid "INPUT OPTIONS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98 +msgid "Options to control the processing of the input %s file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104 +msgid "OUTPUT OPTIONS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105 +msgid "Options to control the processing of the output %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:119 +msgid "Options to control the look and feel of the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:135 +msgid "Control auto-detection of document structure." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:145 +msgid "" +"Control the automatic generation of a Table of Contents. By default, if the " +"source file has a Table of Contents, it will be used in preference to the " +"automatically generated one." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:155 +msgid "Options to set metadata in the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:158 +msgid "Options to help with debugging the conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 +msgid "List builtin recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:252 +msgid "Output saved to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:92 +msgid "Level of verbosity. Specify multiple times for greater verbosity." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:108 +msgid "" +"Specify the input profile. The input profile gives the conversion system " +"information on how to interpret various information in the input document. " +"For example resolution dependent lengths (i.e. lengths in pixels). Choices " +"are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:119 +msgid "" +"Specify the output profile. The output profile tells the conversion system " +"how to optimize the created document for the specified device. In some " +"cases, an output profile is required to produce documents that will work on " +"a device. For example EPUB on the SONY reader. Choices are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:130 +msgid "" +"The base font size in pts. All font sizes in the produced book will be " +"rescaled based on this size. By choosing a larger size you can make the " +"fonts in the output bigger and vice versa. By default, the base font size is " +"chosen based on the output profile you chose." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:140 +msgid "" +"Mapping from CSS font names to font sizes in pts. An example setting is " +"12,12,14,16,18,20,22,24. These are the mappings for the sizes xx-small to xx-" +"large, with the final size being for huge fonts. The font rescaling " +"algorithm uses these sizes to intelligently rescale fonts. The default is to " +"use a mapping based on the output profile you chose." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:152 +msgid "Disable all rescaling of font sizes." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 +msgid "" +"The line height in pts. Controls spacing between consecutive lines of text. " +"By default no line height manipulation is performed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:167 +msgid "" +"Some badly designed documents use tables to control the layout of text on " +"the page. When converted these documents often have text that runs off the " +"page and other artifacts. This option will extract the content from the " +"tables and present it in a linear fashion." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:177 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level one. If this is specified, it takes precedence over " +"other forms of auto-detection." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:186 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level two. Each entry is added under the previous level one " +"entry." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:194 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level three. Each entry is added under the previous level two " +"entry." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:202 +msgid "" +"Normally, if the source file already has a Table of Contents, it is used in " +"preference to the auto-generated one. With this option, the auto-generated " +"one is always used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:210 +msgid "Don't add auto-detected chapters to the Table of Contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 +msgid "" +"If fewer than this number of chapters is detected, then links are added to " +"the Table of Contents. Default: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 +msgid "" +"Maximum number of links to insert into the TOC. Set to 0 to disable. Default " +"is: %default. Links are only added to the TOC if less than the threshold " +"number of chapters were detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:232 +msgid "" +"Remove entries from the Table of Contents whose titles match the specified " +"regular expression. Matching entries and all their children are removed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:243 +msgid "" +"An XPath expression to detect chapter titles. The default is to consider " +"

or

tags that contain the words \"chapter\",\"book\",\"section\" or " +"\"part\" as chapter titles as well as any tags that have class=\"chapter\". " +"The expression used must evaluate to a list of elements. To disable chapter " +"detection, use the expression \"/\". See the XPath Tutorial in the calibre " +"User Manual for further help on using this feature." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:257 +msgid "" +"Specify how to mark detected chapters. A value of \"pagebreak\" will insert " +"page breaks before chapters. A value of \"rule\" will insert a line before " +"chapters. A value of \"none\" will disable chapter marking and a value of " +"\"both\" will use both page breaks and lines to mark chapters." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:267 +msgid "" +"Either the path to a CSS stylesheet or raw CSS. This CSS will be appended to " +"the style rules from the source file, so it can be used to override those " +"rules." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:276 +msgid "" +"An XPath expression. Page breaks are inserted before the specified elements." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:282 +msgid "" +"Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:287 +msgid "" +"Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:292 +msgid "" +"Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:297 +msgid "" +"Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:302 +msgid "" +"Do not force text to be justified in output. Whether text is actually " +"displayed justified or not depends on whether the ebook format and reading " +"device support justification." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:309 +msgid "" +"Remove spacing between paragraphs. Also sets an indent on paragraphs of " +"1.5em. Spacing removal will not work if the source file does not use " +"paragraphs (

or

tags)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +msgid "" +"When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 +msgid "" +"Use the cover detected from the source file in preference to the specified " +"cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:329 +msgid "" +"Insert a blank line between paragraphs. Will not work if the source file " +"does not use paragraphs (

or

tags)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 +msgid "" +"Remove the first image from the input ebook. Useful if the first image in " +"the source file is a cover and you are specifying an external cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:344 +msgid "" +"Insert the book metadata at the start of the book. This is useful if your " +"ebook reader does not support displaying/searching metadata directly." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 +msgid "" +"Attempt to detect and correct hard line breaks and other problems in the " +"source file. This may make things worse, so use with care." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:360 +msgid "Use a regular expression to try and remove the header." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 +msgid "The regular expression to use to remove the header." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:373 +msgid "Use a regular expression to try and remove the footer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 +msgid "The regular expression to use to remove the footer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 +msgid "" +"Read metadata from the specified OPF file. Metadata read from this file will " +"override any metadata in the source file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 +msgid "" +"Transliterate unicode characters to an ASCII representation. Use with care " +"because this will replace unicode characters with ASCII. For instance it " +"will replace \"%s\" with \"Mikhail Gorbachiov\". Also, note that in cases " +"where there are multiple representations of a character (characters shared " +"by Chinese and Japanese for instance) the representation used by the largest " +"number of people will be used (Chinese in the previous example)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:409 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:37 +msgid "Set the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:413 +msgid "Set the authors. Multiple authors should be separated by ampersands." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 +msgid "The version of the title to be used for sorting. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 +msgid "String to be used when sorting by author. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 +msgid "Set the cover to the specified file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 +msgid "Set the ebook description." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:55 +msgid "Set the ebook publisher." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 +msgid "Set the series this ebook belongs to." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:61 +msgid "Set the index of the book in this series." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:63 +msgid "Set the rating. Should be a number between 1 and 5." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 +msgid "Set the ISBN of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 +msgid "Set the tags for the book. Should be a comma separated list." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 +msgid "Set the book producer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:71 +msgid "Set the language." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 +msgid "Could not find an ebook inside the archive" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:620 +msgid "Values of series index and rating must be numbers. Ignoring" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:740 +msgid "Converting input to HTML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:763 +msgid "Running transforms on ebook..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:850 +msgid "Creating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:57 +msgid "" +"Extract the contents of the generated EPUB file to the specified directory. " +"The contents of the directory are first deleted, so be careful." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:63 +msgid "" +"Turn off splitting at page breaks. Normally, input files are automatically " +"split at every page break into two files. This gives an output ebook that " +"can be parsed faster and with less resources. However, splitting is slow and " +"if your source file contains a very large number of page breaks, you should " +"turn off splitting on page breaks." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:74 +msgid "" +"Split all HTML files larger than this size (in KB). This is necessary as " +"most EPUB readers cannot handle large file sizes. The default of %defaultKB " +"is the size required for Adobe Digital Editions." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:81 +msgid "" +"Normally, if the input file has no cover and you don't specify one, a " +"default cover is generated with the title, authors, etc. This option " +"disables the generation of this cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 +msgid "Table of Contents:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:32 +msgid "Do not insert a Table of Contents at the beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:32 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:37 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/output.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:35 +msgid "Add Table of Contents to beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:243 +msgid "" +"Traverse links in HTML files breadth first. Normally, they are traversed " +"depth first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:250 +msgid "" +"Maximum levels of recursion when following links in HTML files. Must be non-" +"negative. 0 implies that no links in the root HTML file are followed. " +"Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:259 +msgid "" +"Normally this input plugin re-arranges all the input files into a standard " +"folder hierarchy. Only use this option if you know what you are doing as it " +"can result in various nasty side effects in the rest of of the conversion " +"pipeline." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:267 +msgid "" +"Average line length for line breaking if the HTML is from a previous partial " +"conversion of a PDF file. Default is %default which disables this." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 +msgid "Creating LIT file from EPUB..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 +msgid "\tBook Designer file detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 +msgid "\tParsing HTML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 +msgid "\tBaen file detected. Re-parsing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 +msgid "Written preprocessed HTML to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 +msgid "Processing %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 +msgid "\tConverting to BBeB..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:552 +msgid "Could not parse file: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 +msgid "%s is an empty file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 +msgid "Failed to parse link %s %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 +msgid "Cannot add link %s to TOC" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 +msgid "Unable to process image %s. Error: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 +msgid "Unable to process interlaced PNG %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 +msgid "" +"Could not process image: %s\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 +msgid "" +"An error occurred while processing a table: %s. Ignoring table markup." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 +msgid "" +"Bad table:\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 +msgid "Table has cell that is too large" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 +msgid "Could not read cover image: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 +msgid "Cannot read from: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 +msgid "Failed to process opf file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:136 +msgid "" +"%prog book.lrf\n" +"Convert an LRF file into an LRS (XML UTF-8 encoded) file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:137 +msgid "Output LRS file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 +msgid "Do not save embedded image and font files to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 +msgid "Parsing LRF..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:161 +msgid "Creating XML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 +msgid "LRS written to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:267 +msgid "Could not read from thumbnail file:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:287 +msgid "" +"%prog [options] file.lrs\n" +"Compile an LRS file into an LRF file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:288 +msgid "Path to output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:113 +msgid "Verbose processing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:292 +msgid "Convert LRS to LRS, useful for debugging." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:457 +msgid "Invalid LRF file. Could not set metadata." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:582 +msgid "" +"%prog [options] mybook.lrf\n" +"\n" +"\n" +"Show/edit the metadata in an LRF file.\n" +"\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 +msgid "Set the book title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 +msgid "Set sort key for the title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 +msgid "Set the author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 +msgid "Set sort key for the author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597 +msgid "The category this book belongs to. E.g.: History" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600 +msgid "Path to a graphic that will be set as this files' thumbnail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:603 +msgid "" +"Path to a txt file containing the comment to be stored in the lrf file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 +msgid "Extract thumbnail from LRF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 +msgid "Set the publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 +msgid "Set the book classification" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 +msgid "Set the book creator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 +msgid "Set the book producer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 +msgid "" +"Extract cover from LRF file. Note that the LRF format has no defined cover, " +"so we use some heuristics to guess the cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 +msgid "Set book ID" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 +msgid "Enable autorotation of images that are wider than the screen width." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:94 +msgid "Set the space between words in pts. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:97 +msgid "Add a header to all the pages with title and author." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:100 +msgid "" +"Set the format of the header. %a is replaced by the author and %t by the " +"title. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:104 +msgid "Add extra spacing below the header. Default is %default pt." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:107 +msgid "" +"Minimum paragraph indent (the indent of the first line of a paragraph) in " +"pts. Default: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:112 +msgid "" +"Render tables in the HTML as images (useful if the document has large or " +"complex tables)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:117 +msgid "" +"Multiply the size of text in rendered tables by this factor. Default is " +"%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:121 +msgid "The serif family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:124 +msgid "The sans-serif family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:127 +msgid "The monospace family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:152 +msgid "Comic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 +msgid "Title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 +msgid "Author(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 +msgid "Publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 +msgid "Producer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 +msgid "Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +msgid "Language" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 +msgid "Timestamp" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 +msgid "Published" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 +msgid "Rights" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 +msgid "EDITORIAL REVIEW" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:19 +msgid "options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:20 +msgid "" +"\n" +"Read/Write metadata from/to ebook files.\n" +"\n" +"Supported formats for reading metadata: %s\n" +"\n" +"Supported formats for writing metadata: %s\n" +"\n" +"Different file types support different kinds of metadata. If you try to set\n" +"some metadata on a file type that does not support it, the metadata will be\n" +"silently ignored.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:39 +msgid "" +"Set the authors. Multiple authors should be separated by the & character. " +"Author names should be in the order Firstname Lastname." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:43 +msgid "" +"The version of the title to be used for sorting. If unspecified, and the " +"title is specified, it will be auto-generated from the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:47 +msgid "" +"String to be used when sorting by author. If unspecified, and the author(s) " +"are specified, it will be auto-generated from the author(s)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:57 +msgid "Set the book category." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 +msgid "Get the cover from the ebook and save it at as the specified file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77 +msgid "" +"Specify the name of an OPF file. The metadata will be written to the OPF " +"file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:80 +msgid "" +"Read metadata from the specified OPF file and use it to set metadata in the " +"ebook. Metadata specified on the command line will override metadata read " +"from the OPF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:85 +msgid "Set the BookID in LRF files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 +msgid "No file specified" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 +msgid "Original metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 +msgid "Changed metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 +msgid "OPF created in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 +msgid "Cover saved to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 +msgid "No cover found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +msgid "Metadata download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "ratings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +msgid "description/reviews" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +msgid "Download %s from %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 +msgid "Downloads metadata from Google Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:153 +msgid "Downloads metadata from isbndb.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 +msgid "" +"To use isbndb.com you must sign up for a %sfree account%s and enter your " +"access key below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189 +msgid "Downloads social metadata from amazon.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 +msgid "" +"\n" +"%prog [options] key\n" +"\n" +"Fetch metadata for books from isndb.com. You can specify either the\n" +"books ISBN ID or its title and author. If you specify the title and author,\n" +"then more than one book may be returned.\n" +"\n" +"key is the account key you generate after signing up for a free account from " +"isbndb.com.\n" +"\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:105 +msgid "The ISBN ID of the book you want metadata for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 +msgid "The author whose book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +msgid "The title of the book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:111 +msgid "The publisher of the book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:53 +msgid "LibraryThing.com timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:60 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:61 +msgid " not found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:64 +msgid "LibraryThing.com server error. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:71 +msgid "" +"\n" +"%prog [options] ISBN\n" +"\n" +"Fetch a cover image for the book identified by ISBN from LibraryThing.com\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 +msgid "Cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 +msgid "Modify images to meet Palm device size limitations." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:26 +msgid "When present, use author sort field as author." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:30 +msgid "" +"Don't add Table of Contents to end of book. Useful if the book has its own " +"table of contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:33 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:56 +msgid "Title for any generated in-line table of contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 +msgid "Disable compression of the file contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 +msgid "All articles" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 +msgid "Title Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 +msgid "Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 +msgid "Index" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 +msgid "Glossary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 +msgid "Acknowledgements" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 +msgid "Bibliography" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 +msgid "Colophon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 +msgid "Copyright" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 +msgid "Dedication" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 +msgid "Epigraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 +msgid "Foreword" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 +msgid "List of Illustrations" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 +msgid "List of Tables" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 +msgid "Notes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 +msgid "Preface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 +msgid "Main Text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 +msgid "%s format books are not supported" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 +msgid "HTML TOC generation options." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 +msgid "Book Jacket" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 +msgid "" +"Could not find reasonable point at which to split: %s Sub-tree size: %d KB" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 +msgid "Unnamed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 +msgid "OPF/NCX/etc. generation options." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:35 +msgid "OPF version to generate. Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:37 +msgid "" +"Generate an Adobe \"page-map\" file if pagination information is available." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126 +msgid "Footnotes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:133 +msgid "Sidebar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:22 +msgid "" +"Normally calibre treats blank lines as paragraph markers. With this option " +"it will assume that every line represents a paragraph instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:26 +msgid "" +"Normally calibre treats blank lines as paragraph markers. With this option " +"it will assume that every line starting with an indent (either a tab or 2+ " +"spaces) represents a paragraph. Paragraphs end when the next line that " +"starts with an indent is reached." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23 +msgid "Format to use inside the pdb container. Choices are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:27 +msgid "" +"Specify the character encoding of the output document. The default is " +"cp1252. Note: This option is not honored by all formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 +msgid "Do not extract images from the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 +msgid "" +"Scale used to determine the length at which a line should be unwrapped. " +"Valid values are a decimal between 0 and 1. The default is 0.5, this is the " +"median line length." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 +msgid "Use the new PDF conversion engine." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/cli.py:31 +msgid "" +"command ...\n" +"\n" +"command can be one of the following:\n" +"[%%commands]\n" +"\n" +"Use %prog command --help to get more information about a specific command\n" +"\n" +"Manipulate a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:29 +msgid "" +"[options] file.pdf\n" +"\n" +"Crop a PDF file.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:38 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:32 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:36 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:33 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:41 +msgid "" +"Path to output file. By default a file is created in the current directory." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:41 +msgid "Number of pixels to crop from the left most x (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:44 +msgid "Number of pixels to crop from the left most y (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:47 +msgid "Number of pixels to crop from the right most x (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:50 +msgid "Number of pixels to crop from the right most y (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:53 +msgid "" +"A file generated by ghostscript which allows each page to be individually " +"cropped `gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox file.pdf 2> bounding`" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 +msgid "Crop Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +msgid "Options to control the transformation of pdf" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:23 +msgid "" +"[options] file.pdf password\n" +"\n" +"Decrypt a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +msgid "Decrypt Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 +msgid "" +"[options] file.pdf password\n" +"\n" +"Encrypt a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +msgid "Encrypt Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 +msgid "" +"file.pdf ...\n" +"\n" +"Get info about a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 +msgid "Author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:47 +msgid "Subject" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:48 +msgid "Creator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:50 +msgid "Pages" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:51 +msgid "File Size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +msgid "PDF Version" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:25 +msgid "" +"[options] file1.pdf file2.pdf ...\n" +"\n" +"Metadata will be used from the first PDF specified.\n" +"\n" +"Merges individual PDFs.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +msgid "Merge Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:25 +msgid "" +"[options] file.pdf\n" +"\n" +"Reverse a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +msgid "Reverse Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:24 +msgid "" +"file.pdf degrees\n" +"\n" +"Rotate pages of a PDF clockwise.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +msgid "Rotate Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:25 +msgid "" +"\n" +"%prog %%name [options] file.pdf page_to_split_on ...\n" +"%prog %%name [options] file.pdf page_range_to_split_on ...\n" +"\t\n" +"Ex.\n" +"\t\n" +"%prog %%name file.pdf 6\n" +"%prog %%name file.pdf 6-12\n" +"%prog %%name file.pdf 6-12 8 10 9-20\n" +"\n" +"Split a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +msgid "Split Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:31 +msgid "" +"The unit of measure. Default is inch. Choices are %s Note: This does not " +"override the unit for margins!" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:36 +msgid "" +"The size of the paper. This size will be overridden when an output profile " +"is used. Default is letter. Choices are %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:40 +msgid "" +"Custom size of the document. Use the form widthxheight EG. `123x321` to " +"specify the width and height. This overrides any specified paper-size." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:45 +msgid "The orientation of the page. Default is portrait. Choices are %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 +msgid "Could not find pdftohtml, check it is in your PATH" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:33 +msgid "" +"Specify the character encoding of the output document. The default is cp1252." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 +msgid "" +"This RTF file has a feature calibre does not support. Convert it to HTML " +"first and then try it.\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 +msgid "" +"Specify the character encoding of the output document. The default is utf-8." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27 +msgid "" +"Specify the compression level to use. Scale 1 - 10. 1 being the lowest " +"compression but the fastest and 10 being the highest compression but the " +"slowest." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32 +msgid "" +"Run the text input through the markdown pre-processor. To learn more about " +"markdown see" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:35 +msgid "Do not insert a Table of Contents into the output text." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 +msgid "" +"Type of newline to use. Options are %s. Default is 'system'. Use 'old_mac' " +"for compatibility with Mac OS 9 and earlier. For Mac OS X use 'unix'. " +"'system' will default to the newline type used by this OS." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:30 +msgid "" +"Specify the character encoding of the output document. The default is utf-8. " +"Note: This option is not honored by all formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 +msgid "" +"The maximum number of characters per line. This splits on the first space " +"before the specified value. If no space is found the line will be broken at " +"the space after and will exceed the specified value. Also, there is a " +"minimum of 25 characters. Use 0 to disable line splitting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 +msgid "" +"Force splitting on the max-line-length value when no space is present. Also " +"allows max-line-length to be below the minimum" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 +msgid "Send file to storage card instead of main memory by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 +msgid "Confirm before deleting" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 +msgid "Toolbar icon size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +msgid "Show button labels in the toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +msgid "Main window geometry" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +msgid "Notify when a new version is available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +msgid "Use Roman numerals for series number" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +msgid "Sort tags list by popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +msgid "Number of covers to show in the cover browsing mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +msgid "Defaults for conversion to LRF" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 +msgid "Options for the LRF ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +msgid "Formats that are viewed using the internal viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +msgid "Columns to be displayed in the book list" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +msgid "Automatically launch content server on application startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +msgid "Oldest news kept in database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +msgid "Show system tray icon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +msgid "Upload downloaded news to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +msgid "Delete books from library after uploading to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +msgid "" +"Show the cover flow in a separate window instead of in the main calibre " +"window" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +msgid "Disable notifications from the system tray icon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 +msgid "Default action to perform when send to device button is clicked" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 +msgid "Maximum number of waiting worker processes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +msgid "Download social metadata (tags/rating/etc.)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 +msgid "Limit max simultaneous jobs to number of CPUs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 +msgid "Copied" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 +msgid "Copy" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 +msgid "Copy to Clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 +msgid "Choose Files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 +msgid "Searching in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 +msgid "Adding..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 +msgid "Searching in all sub-directories..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 +msgid "Path error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 +msgid "The specified directory could not be processed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 +msgid "No books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 +msgid "No books found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 +msgid "Added" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 +msgid "Adding failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 +msgid "" +"The add books process seems to have hung. Try restarting calibre and adding " +"the books in smaller increments, until you find the problem book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 +msgid "Duplicates found!" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 +msgid "" +"Books with the same title as the following already exist in the database. " +"Add them anyway?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 +msgid "Adding duplicates..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 +msgid "Saving..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 +msgid "Saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "Options specific to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +msgid "Form" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 +msgid "Catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 +msgid "" +"For settings that cannot be specified in this dialog, use the values saved " +"in a previous conversion (if they exist) instead of using the defaults " +"specified in the Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 +msgid "Bulk Convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +msgid "Options specific to the output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 +msgid "Comic Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +msgid "input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 +msgid "&Number of Colors:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 +msgid "Disable &normalize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +msgid "Keep &aspect ratio" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 +msgid "Disable &Sharpening" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 +msgid "Disable &Trimming" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 +msgid "&Wide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 +msgid "&Landscape" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 +msgid "&Right to left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 +msgid "Don't so&rt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 +msgid "De&speckle" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 +msgid "&Disable comic processing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 +msgid "&Output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 +msgid "Debug" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:21 +msgid "Debug the conversion process." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 +msgid "Choose debug folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:57 +msgid "Invalid debug directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 +msgid "Failed to create debug directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 +msgid "" +"Choose a folder to put the debug output into. If you specify a folder, " +"calibre will place a lot of debug output into it. This will be useful in " +"understanding the conversion process and figuring out the correct values for " +"conversion parameters like Table of Contents and Chapter Detection." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:267 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:269 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:180 +msgid "..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +msgid "" +"The debug process outputs the intermediate HTML generated at various stages " +"of the conversion process. This HTML can sometimes serve as a good starting " +"point for hand editing a conversion." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 +msgid "EPUB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 +msgid "Do not &split on page breaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:43 +msgid "Split files &larger than:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:44 +msgid " KB" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:45 +msgid "No default &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 +msgid "FB2 Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 +msgid "Do not insert a &Table of Contents at the beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 +msgid "FB2 Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 +msgid "&Inline TOC" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 +msgid "Font rescaling wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 +msgid "" +"

This wizard will help you choose an appropriate font size key for your " +"needs. Just enter the base font size of the input document and then enter an " +"input font size. The wizard will display what font size it will be mapped " +"to, by the font rescaling algorithm. You can adjust the algorithm by " +"adjusting the output base font size and font key below. When you find values " +"suitable for you, click OK.

\n" +"

By default, if the output base font size is zero and/or no font size key " +"is specified, calibre will use the values from the current Output Profile. " +"

\n" +"

See the User Manual " +"for a discussion of how font size rescaling works.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 +msgid "&Output document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109 +msgid "&Base font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 +msgid "Font size &key:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 +msgid " pt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 +msgid "Use &default values" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 +msgid "&Input document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 +msgid "&Font size: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 +msgid " will map to size: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 +msgid "0.0 pt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16 +msgid "Look & Feel" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 +msgid "Control the look and feel of the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 +msgid "&Disable font size rescaling" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +msgid "Base &font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 +msgid "Wizard to help you choose an appropriate font size key" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 +msgid "Line &height:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +msgid "Input character &encoding:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +msgid "Remove &spacing between paragraphs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +msgid "Indent size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +msgid "" +"

When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +msgid " em" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 +msgid "Insert &blank line" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +msgid "No text &justification" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +msgid "&Linearize tables" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +msgid "&Transliterate unicode characters to ASCII." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 +msgid "Extra &CSS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 +msgid "LRF Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116 +msgid "Enable &autorotation of wide images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117 +msgid "&Wordspace:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:119 +msgid "Minimum para. &indent:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 +msgid "Render &tables as images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 +msgid "Text size multiplier for text in rendered tables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 +msgid "Add &header" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 +msgid "Header &separation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 +msgid "Header &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 +msgid "&Embed fonts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 +msgid "&Serif font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 +msgid "S&ans-serif font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 +msgid "&Monospaced font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 +msgid "Metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:43 +msgid "" +"Set the metadata. The output file will contain as much of this metadata as " +"possible." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +msgid "Choose cover for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +msgid "Cannot read" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +msgid "You do not have permission to read the file: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +msgid "Error reading file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +msgid "

There was an error reading from file:
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +msgid " is not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +msgid "Book Cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 +msgid "Use cover from &source file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +msgid "Change &cover image:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +msgid "Browse for an image to use as the cover of this book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 +msgid "&Title: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +msgid "Change the title of this book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +msgid "&Author(s): " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 +msgid "Author So&rt:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 +msgid "" +"Change the author(s) of this book. Multiple authors should be separated by a " +"comma" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 +msgid "&Publisher: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +msgid "Ta&gs: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 +msgid "" +"Tags categorize the book. This is particularly useful while searching. " +"

They can be any words or phrases, separated by commas." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +msgid "&Series:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +msgid "List of known series. You can add new series." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 +msgid "Book " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 +msgid "MOBI Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 +msgid "&Title for Table of Contents:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 +msgid "Rescale images for &Palm devices" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 +msgid "Use author &sort for author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 +msgid "Disable compression of the file contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 +msgid "Do not add Table of Contents to book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 +msgid "Page Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:111 +msgid "&Output profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:112 +msgid "Profile description" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:113 +msgid "&Input profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:114 +msgid "Margins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 +msgid "&Left:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 +msgid "&Top:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 +msgid "&Right:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 +msgid "&Bottom:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:12 +msgid "PDB Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:43 +msgid "Treat each &line as a paragraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:44 +msgid "Assume print formatting" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:16 +msgid "PDB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 +msgid "&Format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:12 +msgid "PDF Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:39 +msgid "Line &Un-Wrapping Factor:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:40 +msgid "No &Images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:17 +msgid "PDF Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:40 +msgid "&Paper Size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:41 +msgid "&Orientation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 +msgid "RB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 +msgid "Choose the format to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +msgid "Cannot build regex using the GUI builder without a book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +msgid "No formats available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 +msgid "Open book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 +msgid "~" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:46 +msgid "Regex Builder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:47 +msgid "Preview" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:48 +msgid "Regex:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 +msgid "Convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 +msgid "Options specific to the input format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 +msgid "Dialog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 +msgid "&Input format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 +msgid "Use &saved conversion settings for individual books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 +msgid "" +"Structure\n" +"Detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:19 +msgid "" +"Fine tune the detection of chapter headings and other document structure." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:34 +msgid "Detect chapters at (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:35 +msgid "Insert page breaks before (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 +msgid "Header regular expression:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 +msgid "Footer regular expression:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 +msgid "Invalid regular expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 +msgid "Invalid regular expression: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:38 +msgid "Invalid XPath" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 +msgid "The XPath expression %s is invalid." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 +msgid "Chapter &mark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 +msgid "Remove first &image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 +msgid "Insert &metadata as page at start of book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 +msgid "&Preprocess input file to possibly improve structure detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 +msgid "Remove F&ooter" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 +msgid "Remove H&eader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 +msgid "" +"Table of\n" +"Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:18 +msgid "Control the creation/conversion of the Table of Contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:29 +msgid "Level &1 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:30 +msgid "Level &2 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:31 +msgid "Level &3 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:63 +msgid "Do not add &detected chapters to the Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:64 +msgid "Number of &links to add to Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:65 +msgid "Chapter &threshold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:66 +msgid "&Force use of auto-generated Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +msgid "TOC &Filter:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:12 +msgid "TXT Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:45 +msgid "Process using markdown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 +msgid "" +"

Markdown is a simple markup language for text files, that allows for " +"advanced formatting. To learn more visit markdown." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:47 +msgid "Do not insert Table of Contents into output text when using markdown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 +msgid "TXT Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 +msgid "&Line ending style:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 +msgid "&Maximum line length:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 +msgid "Force maximum line lenght" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:50 +msgid "TextLabel" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 +msgid "Use a wizard to help construct the XPath expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68 +msgid "Match HTML &tags with tag name:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69 +msgid "*" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 +msgid "a" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:71 +msgid "br" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 +msgid "div" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 +msgid "h1" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 +msgid "h2" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 +msgid "h3" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 +msgid "h4" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 +msgid "h5" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 +msgid "h6" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 +msgid "hr" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 +msgid "span" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 +msgid "Having the &attribute:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 +msgid "With &value:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 +msgid "(A regular expression)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 +msgid "" +"

For example, to match all h2 tags that have class=\"chapter\", set tag to " +"h2, attribute to class and value to " +"chapter.

Leaving attribute blank will match any attribute and " +"leaving value blank will match any value. Setting tag to * will match any " +"tag.

To learn more advanced usage of XPath see the XPath Tutorial." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 +msgid "No details available." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 +msgid "Device no longer connected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 +msgid "Get device information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 +msgid "Get list of books on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 +msgid "Send metadata to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 +msgid "Upload %d books to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 +msgid "Delete books from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 +msgid "Download books from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 +msgid "View book on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 +msgid "and delete from library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +msgid "Set default send to device action" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 +msgid "Email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 +msgid "Send to main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 +msgid "Send to storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +msgid "Send to storage card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 +msgid "Send specific format to main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 +msgid "Send specific format to storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 +msgid "Send specific format to storage card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 +msgid "selected to send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 +msgid "Choose format to send to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 +msgid "No device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 +msgid "Cannot send: No device is connected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 +msgid "No card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 +msgid "Cannot send: Device has no storage card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 +msgid "E-book:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 +msgid "Attached, you will find the e-book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 +msgid "by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 +msgid "in the %s format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 +msgid "Sending email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 +msgid "No suitable formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 +msgid "Auto convert the following books before sending via email?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 +msgid "Failed to email books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 +msgid "Failed to email the following books:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 +msgid "Sent by email:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +msgid "News:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 +msgid "Attached is the" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 +msgid "Sent news to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 +msgid "Auto convert the following books before uploading to the device?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 +msgid "Sending news to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 +msgid "Sending books to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 +msgid "" +"Could not upload the following books to the device, as no suitable formats " +"were found. Convert the book(s) to a format supported by your device first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +msgid "No space on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +msgid "" +"

Cannot upload books to device there is no more free space available " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:75 +msgid "Select available formats and their order for this device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +msgid "Use sub directories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +msgid "Save &template:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 +msgid "Path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +msgid "&Previous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 +msgid "&Next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 +msgid "Generate catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 +msgid "Choose Format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:34 +msgid "Set defaults for conversion of comics (CBR/CBZ files)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:49 +msgid "Set options for converting %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:92 +msgid "&Title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:93 +msgid "&Author(s):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:95 +msgid "&Profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:170 +msgid "%(plugin_type)s %(plugins)s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:171 +msgid "plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 +msgid "" +"\n" +"Customization: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "Conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "General" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "Interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 +msgid "Add/Save" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 +msgid "" +"Email\n" +"Delivery" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "Advanced" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "" +"Content\n" +"Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +msgid "Auto send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +msgid "Email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:221 +msgid "Formats to email. The first matching format will be sent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:222 +msgid "" +"If checked, downloaded news will be automatically mailed
to this email " +"address (provided it is in one of the listed formats)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:296 +msgid "new email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +msgid "Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 +msgid "Failed to install command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +msgid "Command line tools installed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +msgid "Command line tools installed in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 +msgid "" +"If you move calibre.app, you have to re-install the command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +msgid "No valid plugin path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 +msgid "%s is not a valid plugin path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 +msgid "Choose plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +msgid "Plugin cannot be disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 +msgid "The plugin: %s cannot be disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +msgid "Plugin not customizable" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 +msgid "Plugin: %s does not need customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 +msgid "Customize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +msgid "Cannot remove builtin plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 +msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 +msgid "Error log:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 +msgid "Access log:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 +msgid "Failed to start content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 +msgid "Select location for books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +msgid "Invalid size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 +msgid "The size %s is invalid. must be of the form widthxheight" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 +msgid "Invalid database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 +msgid "Invalid database location " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 +msgid "
Must be a directory." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 +msgid "Invalid database location.
Cannot write to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 +msgid "Checking database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 +msgid "Failed to check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 +msgid "Some inconsistencies found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 +msgid "" +"The following books had formats listed in the database that are not actually " +"available. The entries for the formats have been removed. You should check " +"them manually. This can happen if you manipulate the files in the library " +"folder directly." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:100 +msgid "TabWidget" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:101 +msgid "" +"Here you can control how calibre will read metadata from the files you add " +"to it. calibre can either read metadata from the contents of the file, or " +"from the filename." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:102 +msgid "Read metadata only from &file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:103 +msgid "" +"Swap the firstname and lastname of the author. This affects only metadata " +"read from file names." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:104 +msgid "&Swap author firstname and lastname" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:105 +msgid "&Configure metadata from file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +msgid "&Adding books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 +msgid "" +"Here you can control how calibre will save your books when you click the " +"Save to Disk button:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 +msgid "Save &cover separately" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 +msgid "Update &metadata in saved copies" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 +msgid "Save metadata in &OPF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 +msgid "Convert non-English characters to &English equivalents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 +msgid "Format &dates as:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 +msgid "File &formats to save:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:114 +msgid "Replace space with &underscores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 +msgid "Change paths to &lowercase" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 +msgid "&Saving books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 +msgid "" +"Here you can control how calibre will save your books when you click the " +"Send to Device button. This setting can be overriden for individual devices " +"by customizing the device interface plugins in Preferences->Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 +msgid "Sending to &device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 +msgid "Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +msgid "" +"&Location of ebooks (The ebooks are stored in folders sorted by author and " +"metadata is stored in the file metadata.db)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +msgid "Browse for the new database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +msgid "Show notification when &new version is available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +msgid "Download &social metadata (tags/ratings/etc.) by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +msgid "Default network &timeout:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +msgid "" +"Set the default timeout for network fetches (i.e. anytime we go out to the " +"internet to get information)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +msgid " seconds" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +msgid "Choose &language (requires restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +msgid "Normal" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +msgid "High" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +msgid "Low" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +msgid "Job &priority:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +msgid "Preferred &output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +msgid "Preferred &input format order:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +msgid "Use &Roman numerals for series number" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +msgid "Enable system &tray icon (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +msgid "Show ¬ifications in system tray" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +msgid "Show cover &browser in a separate window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +msgid "Search as you type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +msgid "Automatically send downloaded &news to ebook reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +msgid "&Delete news from library when it is automatically sent to reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +msgid "&Number of covers to show in browse mode (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +msgid "Toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +msgid "Large" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +msgid "Medium" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +msgid "Small" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +msgid "&Button size in toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +msgid "Show &text in toolbar buttons" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +msgid "Select visible &columns in library view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +msgid "Use internal &viewer for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +msgid "Add an email address to which to send books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +msgid "&Add email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +msgid "Make &default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +msgid "&Remove email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +msgid "calibre can send your books to you (or your reader) by email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +msgid "&Maximum number of waiting worker processes (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +msgid "&Check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +msgid "&Install command line tools" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +msgid "Open calibre &configuration directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +msgid "" +"calibre contains a network server that allows you to access your book " +"collection using a browser from anywhere in the world. Any changes to the " +"settings will only take effect after a server restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +msgid "Server &port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +msgid "&Username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +msgid "&Password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +msgid "" +"If you leave the password blank, anyone will be able to access your book " +"collection using the web interface." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +msgid "" +"The maximum size (widthxheight) for displayed covers. Larger covers are " +"resized. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +msgid "Max. &cover size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 +msgid "&Show password" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +msgid "Max. &OPDS items per query:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +msgid "&Start Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +msgid "St&op Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 +msgid "&Test Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +msgid "Run server &automatically on startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +msgid "View &server logs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 +msgid "" +"

Remember to leave calibre running as the server only runs as long as " +"calibre is running.\n" +"

Stanza should see your calibre collection automatically. If not, try " +"adding the URL http://myhostname:8080 as a new catalog in the Stanza reader " +"on your iPhone. Here myhostname should be the fully qualified hostname or " +"the IP address of the computer calibre is running on." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +msgid "" +"Here you can customize the behavior of Calibre by controlling what plugins " +"it uses." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +msgid "Enable/&Disable plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +msgid "&Customize plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +msgid "&Remove plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +msgid "Add new plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 +msgid "Plugin &file:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 +msgid "&Add" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +msgid "Getting debug information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:22 +msgid "Copy to &clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:24 +msgid "Debug device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:44 +msgid "Invalid template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:45 +msgid "The template %s is invalid:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:42 +msgid "Save &template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +msgid "" +"By adjusting the template below, you can control what folders the files are " +"saved in and what filenames they are given. You can use the / character to " +"indicate sub-folders. Available metadata variables are described below. If a " +"particular book does not have some metadata, the variable will be replaced " +"by the empty string." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +msgid "Available variables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 +msgid "Downloading social metadata, please wait..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 +msgid "Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 +msgid "&Show this warning again" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:41 +msgid "ERROR" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 +msgid "Author Sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60 +msgid "ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 +msgid "Finding metadata..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 +msgid "Could not find metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 +msgid "The metadata download seems to have stalled. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 +msgid "Warning" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 +msgid "Could not fetch metadata from:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 +msgid "No metadata found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 +msgid "" +"No metadata found, try adjusting the title and author or the ISBN key." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +msgid "Fetch metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +msgid "" +"

calibre can find metadata for your books from two locations: Google " +"Books and isbndb.com.

To use isbndb.com you must sign up for a " +"free account and enter your access key " +"below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +msgid "&Access Key:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +msgid "Fetch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 +msgid "Matches" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 +msgid "" +"Select the book that most closely matches your copy from the list below" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 +msgid "Download &social metadata (tags/rating/etc.) for the selected book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 +msgid "Details of job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:44 +msgid "Active Jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:45 +msgid "&Stop selected job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:46 +msgid "Show job &details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 +msgid "Stop &all jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +msgid "Edit Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 +msgid "Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +msgid "A&utomatically set author sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +msgid "Author s&ort: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +msgid "" +"Specify how the author(s) of this book should be sorted. For example Charles " +"Dickens should be sorted as Dickens, Charles." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +msgid "&Rating:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +msgid "Rating of this book. 0-5 stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +msgid " stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +msgid "Add ta&gs: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +msgid "Open Tag Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 +msgid "&Remove tags:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +msgid "Comma separated list of tags to remove from the books. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 +msgid "Remove &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 +msgid "&Swap title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +msgid "Not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +msgid "Choose formats for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 +msgid "Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +msgid "No permission" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +msgid "You do not have permission to read the following files:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 +msgid "No format selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 +msgid "Could not read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 +msgid "Could not read metadata from %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 +msgid "Could not read cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 +msgid "Could not read cover from %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 +msgid "The cover in the %s format is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 +msgid "Abort the editing of all remaining books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 +msgid "This ISBN number is valid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 +msgid "This ISBN number is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 +msgid "Downloading cover..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +msgid "Cannot fetch cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 +msgid "Could not fetch cover.
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 +msgid "The download timed out." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 +msgid "Could not find cover for this book. Try specifying the ISBN first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +msgid "Bad cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 +msgid "The cover is not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +msgid "There were errors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 +msgid "There were errors downloading social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 +msgid "Cannot fetch metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 +msgid "You must specify at least one of ISBN, Title, Authors or Publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 +msgid "Permission denied" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 +msgid "Could not open %s. Is it being used by another program?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 +msgid "Edit Meta Information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 +msgid "Swap the author and title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +msgid "Author S&ort: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 +msgid "" +"Automatically create the author sort entry based on the current author entry" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +msgid "Remove unused series (Series that have no books)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +msgid "IS&BN:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +msgid "Publishe&d:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +msgid "dd MMM yyyy" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +msgid "&Date:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +msgid "&Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +msgid "&Fetch metadata from server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +msgid "Available Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 +msgid "Add a new format for this book to the database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 +msgid "Remove the selected formats for this book from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 +msgid "Set the cover for the book from the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 +msgid "Update metadata from the metadata in the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +msgid "Reset cover to default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +msgid "Download &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 +msgid "Password needed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:53 +msgid "Aborting..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:117 +msgid "Need username and password" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:118 +msgid "You must provide a username and/or password to use this news source." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169 +msgid "Created by: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176 +msgid "Last downloaded: never" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:191 +msgid "%d days, %d hours and %d minutes ago" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193 +msgid "Last downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190 +msgid "Schedule news download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216 +msgid "Add a custom news source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:278 +msgid "Recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:192 +msgid "Download all scheduled recipes at once" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 +msgid "Download &all scheduled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 +msgid "blurb" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 +msgid "&Schedule for download:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 +msgid "Every " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 +msgid "day" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 +msgid "Monday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 +msgid "Tuesday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 +msgid "Wednesday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +msgid "Thursday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +msgid "Friday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +msgid "Saturday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 +msgid "Sunday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 +msgid "at" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 +msgid "" +"Interval at which to download this recipe. A value of zero means that the " +"recipe will be downloaded every hour." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 +msgid " days" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 +msgid "&Account" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 +msgid "For the scheduling to work, you must leave calibre running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 +msgid "&Schedule" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +msgid "Add &title as tag" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +msgid "&Extra tags:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +msgid "&Advanced" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +msgid "&Download now" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +msgid "" +"Delete downloaded news older than the specified number of days. Set to zero " +"to disable." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 +msgid "Delete downloaded news older than " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36 +msgid "contains" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:37 +msgid "The text to search for. It is interpreted as a regular expression." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:38 +msgid "" +"

Negate this match. That is, only return results that do not match " +"this query." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:39 +msgid "Negate" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:88 +msgid "Advanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:89 +msgid "Find entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:90 +msgid "&All these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:91 +msgid "This exact &phrase:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:92 +msgid "&One or more of these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:93 +msgid "But dont show entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:94 +msgid "Any of these &unwanted words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:95 +msgid "" +"See the User Manual for more help" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +msgid "Choose formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 +msgid "Are your sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 +msgid "" +"The following tags are used by one or more books. Are you certain you want " +"to delete them?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:123 +msgid "Tag Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:124 +msgid "A&vailable tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:125 +msgid "" +"Delete tag from database. This will unapply the tag from all books and then " +"remove it from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:127 +msgid "Apply tag to current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 +msgid "A&pplied tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 +msgid "Unapply (remove) tag from current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 +msgid "&Add tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:133 +msgid "" +"If the tag you want is not in the available list, you can add it here. " +"Accepts a comma separated list of tags." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:134 +msgid "Add tag to available tags and apply it to current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:50 +msgid "Test email settings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 +msgid "Send test mail from %s to:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +msgid "&Test" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:127 +msgid "No recipe selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:132 +msgid "The attached file: %s is a recipe to download %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:133 +msgid "Recipe for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:255 +msgid "Switch to Advanced mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:164 +msgid "Switch to Basic mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:174 +msgid "Feed must have a title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:175 +msgid "The feed must have a title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:179 +msgid "Feed must have a URL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 +msgid "The feed %s must have a URL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 +msgid "Already exists" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:186 +msgid "This feed has already been added to the recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:227 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:286 +msgid "Invalid input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:228 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:287 +msgid "

Could not create recipe. Error:
%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:290 +msgid "Replace recipe?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:291 +msgid "A custom recipe named %s already exists. Do you want to replace it?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +msgid "Pick recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +msgid "Pick the recipe to customize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:277 +msgid "Choose a recipe file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:248 +msgid "Add custom news source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:249 +msgid "Available user recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:250 +msgid "Add/Update &recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:251 +msgid "&Remove recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 +msgid "&Share recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +msgid "Customize &builtin recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +msgid "&Load recipe from file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +msgid "" +"\n" +"

Create a basic news " +"recipe, by adding RSS feeds to it.
For most feeds, you will have to " +"use the \"Advanced mode\" to further customize the fetch " +"process.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 +msgid "Recipe &title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 +msgid "&Oldest article:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:262 +msgid "The oldest article to download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:264 +msgid "&Max. number of articles per feed:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 +msgid "Maximum number of articles to download per feed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266 +msgid "Feeds in recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:268 +msgid "Remove feed from recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:274 +msgid "Add feed to recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:272 +msgid "&Feed title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273 +msgid "Feed &URL:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:275 +msgid "&Add feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:276 +msgid "" +"For help with writing advanced news recipes, please visit User Recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 +msgid "Recipe source code (python)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +msgid "" +"\n" +"\n" +"

Set a regular expression " +"pattern to use when trying to guess ebook metadata from filenames.

\n" +"

A reference on the syntax " +"of regular expressions is available.

\n" +"

Use the Test functionality below to test your regular " +"expression on a few sample filenames. The group names for the various " +"metadata entries are documented in tooltips.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +msgid "Regular &expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 +msgid "File &name:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +msgid "Test" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +msgid "Title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 +msgid "Regular expression (?P<title>)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 +msgid "No match" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +msgid "Authors:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 +msgid "Series:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 +msgid "Series index:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 +msgid "ISBN:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 +msgid "Job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 +msgid "Status" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 +msgid "Progress" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 +msgid "Running time" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:68 +msgid "There are %d running jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:94 +msgid "Unknown job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +msgid "There are %d waiting jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 +msgid "Cannot kill job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:212 +msgid "Cannot kill jobs that communicate with the device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:215 +msgid "Job has already run" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:243 +msgid "Unavailable" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:254 +msgid " - Jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 +msgid "Size (MB)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 +msgid "Date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 +msgid "Rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 +msgid "None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 +msgid "Book %s of %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 +msgid "Not allowed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 +msgid "" +"Dropping onto a device is not supported. First add the book to the calibre " +"library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 +msgid "Format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +msgid "Double click to edit me

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:47 +msgid "Configure Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:48 +msgid "Use white background" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:49 +msgid "Hyphenate" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:50 +msgid "Changes will only take effect after a restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:70 +msgid " - LRF Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +msgid "No matches for the search phrase %s were found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 +msgid "No matches found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:128 +msgid "LRF Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:129 +msgid "Parsing LRF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:130 +msgid "LRF Viewer toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 +msgid "Next Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 +msgid "Previous Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:182 +msgid "Back" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:183 +msgid "Forward" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:135 +msgid "Next match" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 +msgid "Open ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137 +msgid "Configure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 +msgid "Use the library located at the specified path." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 +msgid "Start minimized to system tray." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 +msgid "Log debugging information to console" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 +msgid "Do not check for updates" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +msgid "If you are sure it is not running" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 +msgid "Cannot Start " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +msgid "%s is already running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 +msgid "may be running in the system tray, in the" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 +msgid "upper right region of the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +msgid "lower right region of the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 +msgid "try rebooting your computer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 +msgid "try deleting the file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:331 +msgid "calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 +msgid "Advanced search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 +msgid "Alt+S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 +msgid "&Search:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 +msgid "" +"

Search the list of books by title, author, publisher, tags, comments, " +"etc.

Words separated by spaces are ANDed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 +msgid "Reset Quick Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 +msgid "Sort by &popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +msgid "Match any" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 +msgid "Match all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 +msgid "Add books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 +msgid "A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 +msgid "Remove books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 +msgid "Del" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 +msgid "Edit meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 +msgid "E" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 +msgid "Send to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 +msgid "Save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 +msgid "S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 +msgid "Fetch news" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 +msgid "F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 +msgid "Convert E-books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 +msgid "C" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 +msgid "View" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 +msgid "V" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 +msgid "Open containing folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 +msgid "Show book details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 +msgid "Books by same author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 +msgid "Books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 +msgid "Books by this publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 +msgid "Books with the same tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 +msgid "Configure calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 +msgid "Ctrl+P" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:20 +msgid "" +"Redirect console output to a dialog window (both stdout and stderr). Useful " +"on windows where GUI apps do not have a output streams." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:59 +msgid "&Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:60 +msgid "&Quit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:85 +msgid "ERROR: Unhandled exception" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 +msgid "Book has neither title nor ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 +msgid "No matches found for this book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71 +msgid "Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 +msgid "Press a key..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 +msgid "Already assigned" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 +msgid "already assigned to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid " or " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 +msgid "&Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 +msgid "Customize shortcuts for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid "Keys" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 +msgid "Double click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:67 +msgid "Frame" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 +msgid "&Custom" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 +msgid "&Shortcut:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 +msgid "Click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 +msgid "Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 +msgid "&Alternate shortcut:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 +msgid "Jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:158 +msgid "Click to see list of active jobs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 +msgid "Click to browse books by their covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 +msgid "Click to turn off Cover Browsing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 +msgid "" +"

Browsing books by their covers is disabled.
Import of pictureflow " +"module failed:
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:209 +msgid "Click to browse books by tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Publishers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:182 +msgid "Convert book %d of %d (%s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:202 +msgid "Could not convert some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:203 +msgid "" +"Could not convert %d of %d books, because no suitable source format was " +"found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:120 +msgid "Queueing books for bulk conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:181 +msgid "Queueing " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:237 +msgid "Fetch news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 +msgid "Convert existing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 +msgid "" +"The following books have already been converted to %s format. Do you wish to " +"reconvert them?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:63 +msgid "Save single format to disk..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:142 +msgid "Search (For Advanced Search click the button to the left)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:159 +msgid "Error communicating with device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:176 +msgid "&Restore" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:178 +msgid "&Donate to support calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:183 +msgid "&Restart" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:222 +msgid "

For help see the: User Manual
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:224 +msgid "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:247 +msgid "Edit metadata individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:249 +msgid "Edit metadata in bulk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:251 +msgid "Download metadata and covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:252 +msgid "Download only metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:253 +msgid "Download only covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:254 +msgid "Download only social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:257 +msgid "Add books from a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:258 +msgid "" +"Add books from directories, including sub-directories (One book per " +"directory, assumes every ebook file is the same book in a different format)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:261 +msgid "" +"Add books from directories, including sub directories (Multiple books per " +"directory, assumes every ebook file is a different book)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:264 +msgid "Add Empty book. (Book entry with no formats)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:305 +msgid "Save to disk in a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 +msgid "Save only %s format to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:315 +msgid "View specific format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:319 +msgid "Remove selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:321 +msgid "Remove files of a specific format from selected books.." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:323 +msgid "Remove all formats from selected books, except..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:325 +msgid "Remove covers from selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 +msgid "Convert individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +msgid "Bulk convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 +msgid "Run welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 +msgid "Similar books..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 +msgid "Bad database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 +msgid "Calibre Library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 +msgid "Choose a location for your ebook library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 +msgid "Browse by covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 +msgid "Device: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 +msgid " detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 +msgid "Connected " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 +msgid "Device database corrupted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 +msgid "" +"\n" +"

The database of books on the reader is corrupted. Try the " +"following:\n" +"

    \n" +"
  1. Unplug the reader. Wait for it to finish regenerating " +"the database (i.e. wait till it is ready to be used). Plug it back in. Now " +"it should work with %(app)s. If not try the next step.
  2. \n" +"
  3. Quit %(app)s. Find the file media.xml in the reader's " +"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " +"file. Re-connect it and start %(app)s.
  4. \n" +"
\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 +msgid "How many empty books?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 +msgid "How many empty books should be added?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 +msgid "Uploading books to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 +msgid "EPUB Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 +msgid "LRF Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 +msgid "HTML Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 +msgid "LIT Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 +msgid "MOBI Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 +msgid "Text books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 +msgid "PDF Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 +msgid "Comics" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 +msgid "Archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 +msgid "Supported books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 +msgid "Failed to read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 +msgid "Failed to read metadata from the following" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 +msgid "Cannot delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 +msgid "No book selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 +msgid "Choose formats to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 +msgid "Choose formats not to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 +msgid "" +"The selected books will be permanently deleted and the files removed " +"from your computer. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 +msgid "Deleting books from device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 +msgid "Cannot download metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 +msgid "No books selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +msgid "social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +msgid "covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +msgid "metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 +msgid "Downloading %s for %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 +msgid "Failed to download some metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 +msgid "Failed to download metadata for the following:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 +msgid "Failed to download metadata:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 +msgid "Cannot edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 +msgid "Cannot save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 +msgid "Choose destination directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 +msgid "Error while saving" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 +msgid "There was an error while saving." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 +msgid "Could not save some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 +msgid "Click the show details button to see which ones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 +msgid "Fetching news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 +msgid " fetched." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 +msgid "Cannot convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 +msgid "Starting conversion of %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 +msgid "Cannot view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 +msgid "Cannot open folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 +msgid "Multiple Books Selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 +msgid "" +"You are attempting to open %d books. Opening too many books at once can be " +"slow and have a negative effect on the responsiveness of your computer. Once " +"started the process cannot be stopped until complete. Do you wish to " +"continue?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 +msgid "%s has no available formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 +msgid "Cannot configure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 +msgid "Cannot configure while there are running jobs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 +msgid "No detailed info available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 +msgid "No detailed information is available for books on the device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 +msgid "Error talking to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 +msgid "" +"There was a temporary error talking to the device. Please unplug and " +"reconnect the device and or reboot." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 +msgid "Conversion Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 +msgid "" +"

Could not convert: %s

It is a DRMed book. You must " +"first remove the DRM using third party tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 +msgid "Recipe Disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 +msgid "Failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 +msgid "Invalid library location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 +msgid "Could not access %s. Using %s as the library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 +msgid "" +"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." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +msgid "There are active jobs. Are you sure you want to quit?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 +msgid "" +" is communicating with the device!
\n" +" Quitting may cause corruption on the device.
\n" +" Are you sure you want to quit?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 +msgid "WARNING: Active jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 +msgid "" +"will keep running in the system tray. To close it, choose Quit in the " +"context menu of the system tray." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 +msgid "" +"Latest version: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 +msgid "Update available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 +msgid "" +"%s has been updated to version %s. See the new features. Visit the download page?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +msgid "Edit bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +msgid "New title for bookmark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:52 +msgid "Export Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:54 +msgid "Saved Bookmarks (*.pickle)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +msgid "Import Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +msgid "Pickled Bookmarks (*.pickle)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 +msgid "Name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 +msgid "Bookmark Manager" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 +msgid "Actions" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 +msgid "Edit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 +msgid "Delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 +msgid "Reset" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 +msgid "Export" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 +msgid "Import" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +msgid "Configure Ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +msgid "&Font options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +msgid "Se&rif family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 +msgid "&Sans family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +msgid "&Monospace family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 +msgid "&Default font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 +msgid " px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +msgid "Monospace &font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +msgid "S&tandard font:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +msgid "Serif" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +msgid "Sans-serif" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +msgid "Monospace" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +msgid "Remember last used &window size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +msgid "Maximum &view width:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +msgid "H&yphenate (break line in the middle of large words)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +msgid "" +"The default language to use for hyphenation rules. If the book does not " +"specify a language, this will be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 +msgid "Default &language for hyphenation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 +msgid "&User stylesheet" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 +msgid "&General" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +msgid "Double click to change a keyboard shortcut" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 +msgid "&Keyboard shortcuts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 +msgid "No results found for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:33 +msgid "Options to customize the ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 +msgid "Remember last used window size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 +msgid "" +"Set the user CSS stylesheet. This can be used to customize the look of all " +"books." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 +msgid "Maximum width of the viewer window, in pixels." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 +msgid "Hyphenate text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +msgid "Default language for hyphenation rules" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +msgid "Font options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +msgid "The serif font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +msgid "The sans-serif font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +msgid "The monospaced font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +msgid "The standard font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +msgid "The monospaced font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +msgid "The standard font type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 +msgid "&Lookup in dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 +msgid "Scroll to the next page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:15 +msgid "Scroll to the previous page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:18 +msgid "Scroll to the next section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:21 +msgid "Scroll to the previous section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:24 +msgid "Scroll to the bottom of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:27 +msgid "Scroll to the top of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:30 +msgid "Scroll to the end of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:33 +msgid "Scroll to the start of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:36 +msgid "Scroll down" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:39 +msgid "Scroll up" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:42 +msgid "Scroll left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:45 +msgid "Scroll right" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 +msgid "Book format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 +msgid "Go to..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 +msgid "Position in book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 +msgid "Go to a reference. To get reference numbers, use the reference mode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 +msgid "Search for text in book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 +msgid "Print Preview" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 +msgid "Connecting to dict.org to lookup: %s…" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 +msgid "Choose ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 +msgid "Ebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +msgid "Add bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +msgid "Enter title for bookmark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 +msgid "No matches found for: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 +msgid "Loading flow..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 +msgid "Laying out %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 +msgid "Manage Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 +msgid "Loading ebook..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 +msgid "DRM Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 +msgid "

This book is protected by DRM" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 +msgid "Could not open ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 +msgid "Options to control the ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 +msgid "" +"If specified, viewer window will try to come to the front when started." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 +msgid "Print javascript alert and console messages to the console" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 +msgid "" +"%prog [options] file\n" +"\n" +"View an ebook.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:178 +msgid "Ebook Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 +msgid "Close dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 +msgid "toolBar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 +msgid "Next page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 +msgid "Previous page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +msgid "Font size larger" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 +msgid "Font size smaller" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 +msgid "Find next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 +msgid "Copy to clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 +msgid "Reference Mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 +msgid "Bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 +msgid "Toggle full screen" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 +msgid "Print" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 +msgid "Print eBook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 +msgid "" +"Library\n" +"%d\n" +"books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 +msgid "" +"Reader\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 +msgid "" +"Card A\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 +msgid "" +"Card B\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 +msgid "Click to see the books available on your computer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 +msgid "Click to see the books in the main memory of your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 +msgid "Click to see the books on storage card A in your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 +msgid "Click to see the books on storage card B in your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 +msgid "Change Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 +msgid "Upper Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 +msgid "Lower Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 +msgid "Swap Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 +msgid "Title Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330 +msgid "" +"If you use the WordPlayer e-book app on your Android phone, you can access " +"your calibre book collection directly on the device. To do this you have to " +"turn on the content server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:334 +msgid "" +"Remember to leave calibre running as the server only runs as long as calibre " +"is running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:336 +msgid "" +"You have to add the URL http://myhostname:8080 as your calibre library in " +"WordPlayer. Here myhostname should be the fully qualified hostname or the IP " +"address of the computer calibre is running on." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:413 +msgid "Moving library..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:430 +msgid "Failed to move library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 +msgid "Invalid database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +msgid "" +"

An invalid library already exists at %s, delete it before trying to move " +"the existing library.
Error: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:496 +msgid "Could not move library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 +msgid "welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:42 +msgid "Welcome to calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:43 +msgid "The one stop solution to all your e-book needs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:51 +msgid "" +"Choose your book reader. This will set the conversion options to produce " +"books optimized for your device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:52 +msgid "&Manufacturers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:53 +msgid "&Devices" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 +msgid "WizardPage" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +msgid "" +"

Congratulations!

You have successfully setup calibre. Press the %s " +"button to apply your settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 +msgid "" +"

Demo videos

Videos demonstrating the various features of calibre are " +"available online." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 +msgid "" +"

User Manual

A User Manual is also available online." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 +msgid "" +"

calibre can automatically send books by email to your Kindle. To do that " +"you have to setup email delivery below. The easiest way is to setup a free " +"gmail account and click the Use gmail " +"button below. You will also have to register your gmail address in your " +"Amazon account." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:45 +msgid "&Kindle email:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:52 +msgid "Choose your &language:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:53 +msgid "" +"Choose a location for your books. When you add books to calibre, they will " +"be copied here:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 +msgid "&Change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +msgid "" +"If you have an existing calibre library, it will be copied to the new " +"location. If a calibre library already exists at the new location, calibre " +"will switch to using it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +msgid "Using: %s:%s@%s:%s and %s encryption" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +msgid "Sending..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +msgid "Mail successfully sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:114 +msgid "Finish gmail setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:115 +msgid "" +"Dont forget to enter your gmail username and password. You can sign up for a " +"free gmail account at http://gmail.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:130 +msgid "Bad configuration" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 +msgid "You must set the From email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:131 +msgid "You must set the username and password for the mail server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:108 +msgid "Send email &from:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 +msgid "" +"

This is what will be present in the From: field of emails sent by " +"calibre.
Set it to your email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:110 +msgid "" +"

A mail server is useful if the service you are sending mail to only " +"accepts email from well know mail services." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:111 +msgid "Mail &Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +msgid "calibre can optionally use a server to send mail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +msgid "&Hostname:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +msgid "The hostname of your mail server. For e.g. smtp.gmail.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +msgid "&Port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +msgid "" +"The port your mail server listens for connections on. The default is 25" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +msgid "Your username on the mail server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +msgid "Your password on the mail server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +msgid "&Show" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +msgid "&Encryption:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +msgid "" +"Use TLS encryption when connecting to the mail server. This is the most " +"common." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +msgid "&TLS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +msgid "Use SSL encryption when connecting to the mail server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +msgid "&SSL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +msgid "Use Gmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +msgid "&Test email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 +msgid "" +"

If you use the Stanza e-" +"book app on your iPhone/iTouch, you can access your calibre book collection " +"directly on the device. To do this you have to turn on the calibre content " +"server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 +msgid "Turn on the &content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:8 +msgid "Settings to control the calibre content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:12 +msgid "The port on which to listen. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:14 +msgid "The server timeout in seconds. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:16 +msgid "The max number of worker threads to use. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:18 +msgid "Set a password to restrict access. By default access is unrestricted." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:20 +msgid "Username for access. By default, it is: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:24 +msgid "The maximum size for displayed covers. Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:26 +msgid "" +"The maximum number of matches to return per OPDS query. This affects Stanza, " +"WordPlayer, etc. integration." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 +msgid "" +"Include 'Titles' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:121 +msgid "" +"Path to the calibre library. Default is to use the path stored in the " +"settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:200 +msgid "" +"%prog list [options]\n" +"\n" +"List the books available in the calibre database.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:208 +msgid "" +"The fields to display when listing books in the database. Should be a comma " +"separated list of fields.\n" +"Available fields: %s\n" +"Default: %%default. The special field \"all\" can be used to select all " +"fields. Only has effect in the text output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:210 +msgid "" +"The field by which to sort the results.\n" +"Available fields: %s\n" +"Default: %%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:212 +msgid "Sort results in ascending order" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:214 +msgid "" +"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 " +"to do no filtering." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:216 +msgid "" +"The maximum width of a single line in the output. Defaults to detecting " +"screen size." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 +msgid "The string used to separate fields. Default is a space." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 +msgid "" +"The prefix for all file paths. Default is the absolute path to the library " +"folder." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:221 +msgid "" +"The format in which to output the data. Available choices: %s. Defaults is " +"text." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:234 +msgid "Invalid fields. Available fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:241 +msgid "Invalid sort field. Available fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:312 +msgid "" +"The following books were not added as they already exist in the database " +"(see --duplicates option):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:335 +msgid "" +"%prog add [options] file1 file2 file3 ...\n" +"\n" +"Add the specified files as books to the database. You can also specify " +"directories, see\n" +"the directory related options below.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:344 +msgid "" +"Assume that each directory has only a single logical book and that all files " +"in it are different e-book formats of that book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:346 +msgid "Process directories recursively" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:348 +msgid "" +"Add books to database even if they already exist. Comparison is done based " +"on book titles." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:358 +msgid "You must specify at least one file to add" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:374 +msgid "" +"%prog remove ids\n" +"\n" +"Remove the books identified by ids from the database. ids should be a comma " +"separated list of id numbers (you can get id numbers by using the list " +"command). For example, 23,34,57-85\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:389 +msgid "You must specify at least one book to remove" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:408 +msgid "" +"%prog add_format [options] id ebook_file\n" +"\n" +"Add the ebook in ebook_file to the available formats for the logical book " +"identified by id. You can get id by using the list command. If the format " +"already exists, it is replaced.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:423 +msgid "You must specify an id and an ebook file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:428 +msgid "ebook file must have an extension" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:436 +msgid "" +"\n" +"%prog remove_format [options] id fmt\n" +"\n" +"Remove the format fmt from the logical book identified by id. You can get id " +"by using the list command. fmt should be a file extension like LRF or TXT or " +"EPUB. If the logical book does not have fmt available, do nothing.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:453 +msgid "You must specify an id and a format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:471 +msgid "" +"\n" +"%prog show_metadata [options] id\n" +"\n" +"Show the metadata stored in the calibre database for the book identified by " +"id.\n" +"id is an id number from the list command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:479 +msgid "Print metadata in OPF form (XML)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:488 +msgid "You must specify an id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:501 +msgid "" +"\n" +"%prog set_metadata [options] id /path/to/metadata.opf\n" +"\n" +"Set the metadata stored in the calibre database for the book identified by " +"id\n" +"from the OPF file metadata.opf. id is an id number from the list command. " +"You\n" +"can get a quick feel for the OPF format by using the --as-opf switch to the\n" +"show_metadata command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:517 +msgid "You must specify an id and a metadata file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:537 +msgid "" +"%prog export [options] ids\n" +"\n" +"Export the books specified by ids (a comma separated list) to the " +"filesystem.\n" +"The export operation saves all formats of the book, its cover and metadata " +"(in\n" +"an opf file). You can get id numbers from the list command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:545 +msgid "Export all books in database, ignoring the list of ids." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:547 +msgid "Export books to the specified directory. Default is" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:549 +msgid "Export all books into a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:556 +msgid "Specifying this switch will turn this behavior off." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:579 +msgid "You must specify some ids or the %s option" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +msgid "Show detailed output information. Useful for debugging" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 +msgid "" +"%%prog command [options] [arguments]\n" +"\n" +"%%prog is the command line interface to the calibre books database.\n" +"\n" +"command is one of:\n" +" %s\n" +"\n" +"For help on an individual command: %%prog command --help\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 +msgid "

Migrating old database to ebook library in %s

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 +msgid "Copying %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 +msgid "Compacting database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 +msgid "Checking SQL integrity..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 +msgid "Checking for missing files." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 +msgid "Checked id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 +msgid "The title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 +msgid "The authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 +msgid "The tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 +msgid "The series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 +msgid "The series number. To get leading zeros use {series_index:0>3s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 +msgid "The rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 +msgid "The ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +msgid "The publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +msgid "The date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 +msgid "The calibre internal id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 +msgid "Options to control saving to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 +msgid "" +"Normally, calibre will update the metadata in the saved files from what is " +"in the calibre library. Makes saving to disk slower." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 +msgid "" +"Normally, calibre will write the metadata into a separate OPF file along " +"with the actual e-book files." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 +msgid "" +"Normally, calibre will save the cover in a separate file along with the " +"actual e-book file(s)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 +msgid "" +"Comma separated list of formats to save for each book. By default all " +"available books are saved." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 +msgid "" +"The template to control the filename and directory structure of the saved " +"files. Default is \"%s\" which will save books into a per-author " +"subdirectory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 +msgid "" +"The template to control the filename and directory structure of files sent " +"to the device. Default is \"%s\" which will save books into a per-author " +"directory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 +msgid "" +"Normally, calibre will convert all non English characters into English " +"equivalents for the file names. WARNING: If you turn this off, you may " +"experience errors when saving, depending on how well the filesystem you are " +"saving to supports unicode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 +msgid "" +"The format in which to display dates. %d - day, %b - month, %Y - year. " +"Default is: %b, %Y" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 +msgid "Convert paths to lowercase." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 +msgid "Replace whitespace with underscores." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 +msgid "Requested formats not available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:378 +msgid "Password to access your calibre library. Username is " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 +msgid "" +"[options]\n" +"\n" +"Start the calibre content server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 +msgid "Path to the library folder to serve with the content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 +msgid "%sUsage%s: %s\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 +msgid "Created by " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +msgid "" +"Whenever you pass arguments to %prog that have spaces in them, enclose the " +"arguments in quotation marks." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 +msgid "Path to the database in which books are stored" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 +msgid "Pattern to guess metadata from filenames" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 +msgid "Access key for isbndb.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 +msgid "Default timeout for network operations (seconds)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 +msgid "Path to directory in which your library of books is stored" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 +msgid "The language in which to display the user interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 +msgid "The default output format for ebook conversions." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 +msgid "Ordered list of formats to prefer for input." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 +msgid "Read metadata from files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 +msgid "The priority of worker processes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 +msgid "Swap author first and last names when reading metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 +msgid "Waiting..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:51 +msgid "Stopped" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +msgid "Finished" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 +msgid "Working..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:93 +msgid "Brazilian Portuguese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 +msgid "English (UK)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 +msgid "Simplified Chinese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 +msgid "Chinese (HK)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 +msgid "Traditional Chinese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 +msgid "English" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +msgid "English (Australia)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 +msgid "English (New Zealand)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 +msgid "English (Canada)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 +msgid "English (India)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +msgid "English (Thailand)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +msgid "English (Cyprus)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +msgid "English (Pakistan)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +msgid "English (Singapore)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +msgid "English (Yemen)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 +msgid "Dutch (BE)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 +msgid "URL must have the scheme sftp" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:57 +msgid "host must be of the form user@hostname" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:68 +msgid "Failed to negotiate SSH session: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71 +msgid "Failed to authenticate with server: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +msgid "Control email delivery" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:103 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:125 +msgid "Unknown feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:143 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:166 +msgid "Untitled article" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 +msgid "Download periodical content from the internet" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 +msgid "" +"Useful for recipe development. Forces max_articles_per_feed to 2 and " +"downloads at most 2 feeds." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 +msgid "Username for sites that require a login to access content." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:42 +msgid "Password for sites that require a login to access content." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:46 +msgid "" +"Do not download latest version of builtin recipes from the calibre server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 +msgid "Unknown News Source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 +msgid "The \"%s\" recipe needs a username and password." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 +msgid "Download finished" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 +msgid "Failed to download the following articles:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 +msgid "Failed to download parts of the following articles:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 +msgid " from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 +msgid "\tFailed links:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 +msgid "Could not fetch article. Run with -vv to see the reason" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 +msgid "Fetching feeds..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 +msgid "Got feeds from index page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Trying to download cover..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 +msgid "Starting download [%d thread(s)]..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 +msgid "Feeds downloaded to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 +msgid "Could not download cover: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 +msgid "Downloading cover from %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 +msgid "Untitled Article" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 +msgid "Article downloaded: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 +msgid "Article download failed: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 +msgid "Fetching feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +msgid "You" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:181 +msgid "Scheduled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:182 +msgid "Custom" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +msgid "" +"%prog URL\n" +"\n" +"Where URL is for example http://google.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +msgid "Base directory into which URL is saved. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +msgid "" +"Timeout in seconds to wait for a response from the server. Default: %default " +"s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +msgid "" +"Maximum number of levels to recurse i.e. depth of links to follow. Default " +"%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +msgid "" +"The maximum number of files to download. This only applies to files from tags. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +msgid "" +"Minimum interval in seconds between consecutive fetches. Default is %default " +"s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +msgid "" +"The character encoding for the websites you are trying to download. The " +"default is to try and guess the encoding." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +msgid "" +"Only links that match this regular expression will be followed. This option " +"can be specified multiple times, in which case as long as a link matches any " +"one regexp, it will be followed. By default all links are followed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +msgid "" +"Any link that matches this regular expression will be ignored. This option " +"can be specified multiple times, in which case as long as any regexp matches " +"a link, it will be ignored.By default, no links are ignored. If both --" +"filter-regexp and --match-regexp are specified, then --filter-regexp is " +"applied first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +msgid "Do not download CSS stylesheets." +msgstr "" diff --git a/src/calibre/translations/nb.po b/src/calibre/translations/nb.po index 59075cb312..71c44a3805 100644 --- a/src/calibre/translations/nb.po +++ b/src/calibre/translations/nb.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-23 00:18+0000\n" -"PO-Revision-Date: 2010-01-22 18:24+0000\n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-10 05:19+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-23 04:43+0000\n" +"X-Launchpad-Export-Date: 2010-02-11 05:01+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,7 +30,7 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:414 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,19 +38,19 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +65,18 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +99,10 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,26 +113,26 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1547 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1549 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1665 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 @@ -459,11 +459,11 @@ msgstr "" msgid "Communicate with the Binatone Readme eBook reader." msgstr "Kommuniser med Binatone Readme eBook leser" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Kommuniser med Blackberry smart-telefon." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -515,6 +515,10 @@ msgstr "Enhetsgrensesnitt" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Kommuniser med IRex Digital Reader 1000 eBook-leser." +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Kommuniser med Iriver Story reader" @@ -655,12 +659,12 @@ msgid "There is insufficient free space on the storage card" msgstr "Det er ikke nok ledig plass på lagringskortet" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1447 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "Nyheter" @@ -814,8 +818,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Ikke legg prosesser til bildet" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Side" @@ -1743,83 +1747,83 @@ msgstr "Monospace font familie" msgid "Comic" msgstr "Tegneserie" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Tittel" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Forfatter(e)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "Forlag" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Produsent" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Sammendrag:" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Nøkkelord" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Serie" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Språk" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "Tidstempel" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "Publisert" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "Rettigheter" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "REDAKSJONELL ANMELDELSE" @@ -2046,7 +2050,7 @@ msgstr "" "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/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Omslagside" @@ -2077,74 +2081,74 @@ msgstr "Tittel for enhver generert innlagt innholdsfortegnelse." msgid "Disable compression of the file contents." msgstr "Slå av kompresjon av filinnhold." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Alle artikler" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Tittelside" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Innholdsfortegnelse" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "Innhold" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "Ordliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "Påskjønnelse" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Litteraturliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "Kolofon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "Opphavsrettighet" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "Tilegnet" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "Epigraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "Forord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "Illustrasjonsliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "Tabell-liste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Merknader" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "Forord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Hovedtekst" @@ -2505,10 +2509,12 @@ msgstr "Spesifiser tegnsettkodene for et utdatadokument. Standard er cp1252." #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Denne RTF filen har egenskaper calibre ikke støtter. Konverter det til HTML " -"og forsøk på nytt." +"Denne RTF filen har en egenskap som ikke Calibre støtter. Konverter den til " +"HTML først og deretter forsøk den.\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2573,160 +2579,165 @@ msgstr "" "Tving deling på maks-linjelengdens verdi når ingen mellomrom er til stede. " "Tillater også maks-linjelengde å være under minimum." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" "Send en fil til et lagringskort i stedet for hovedminnet som standard" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Bekreft før sletting" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Ikonstørrelse for verktøylinjen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Vis knappebeskrivelse i verktøylinjen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Hovedvindus geometri" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Varsle dersom en ny versjon er tilgjengelig" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Bruk romerske tall for serienummer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Sorter merkelappliste etter populæritet" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "Antall omslag som skal vises ved omslagsvisningsmodus" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Standarder for konvertering til LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Valgmuligheter for LRF e-bokleser" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formater som er vist ved bruk av intern leser" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Kolonner som skal vises i e-boklisten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Start innholdsserver automatisk ved programstart" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Eldste nyheter i databasen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Vis systemikon" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Legg inn nedlastede nyheter til enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Slett bøker fra biblioteket etter at du har lagt dem inn i enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "Vis omslaget i et eget vindu istedet for i calibres hovedvindu" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Slå av varsler fra systemikonet" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "Standard oppgaver som gjøres når send til enhet-knappen er klikket" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Maksumum antall ventende arbeidsprosesser" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Last ned sosiale metadata (emneord/bedømmelser/osv.)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "Overskriv forfatter og tittel med nye metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "Begrense maksimalt antall samtidige oppgaver til antallet av CPUer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Kopiert" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Kopier" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Kopier til utklippstavlen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Velg filer" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "Søker i" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "Legger til..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "Søker i alle undermapper..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "Feil i stien" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "Det spesifiserte mappen kunne ikke prossesseres" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Ingen bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "Ingen bøker ble funnet" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "Lagt til" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "Kunne ikke legge til" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2734,11 +2745,11 @@ msgstr "" "Legg til bøker prosessen ser ut til å være låst. Forsøk å re-starte calibre " "og legg til færre bøker av gangen, til du finner problemboka." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "Duplikater funnet!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -2746,21 +2757,21 @@ msgstr "" "Bøker med den samme tittelen som den følgende finnes allerede i databasen. " "Legg dem til allikevel?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "Legger inn duplikater..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "Lagrer" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "Lagret" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" -msgstr "" +msgstr "CSV/XML Valg" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 @@ -2769,7 +2780,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2785,7 +2796,7 @@ msgstr "Valg spesifisert til" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2794,7 +2805,7 @@ msgid "output" msgstr "utdata" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2804,7 +2815,7 @@ msgstr "utdata" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2827,31 +2838,59 @@ msgstr "Form" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 msgid "Fields to include in output:" -msgstr "" +msgstr "Felt som skal inkluderes som utdata:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "" +msgid "E-book options" +msgstr "E-bok valg" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 +msgid "Catalog" +msgstr "Katalog" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" -msgstr "" +msgstr "'Ikke inkluder denne boken' merke:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" +msgstr "'Merk denne boken som lest' merke:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 +msgid "Additional note tag prefix:" +msgstr "Tilleggsnotatsmerke:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "Regex-mønsker beskriver meker som skal utelates som sjangre:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 -msgid "Additional note tag prefix:" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "Sorter tall som tekst" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" -msgstr "" +msgstr "Tab mal for katalog.ui" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" @@ -2984,12 +3023,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3343,7 +3382,7 @@ msgid "Change the title of this book" msgstr "Forandre bokens tittel" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Forfatter(e): " @@ -3361,7 +3400,7 @@ msgstr "" "adskilt av komma." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Forlegger: " @@ -3372,7 +3411,7 @@ msgid "Ta&gs: " msgstr "Ta&gger: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3382,15 +3421,15 @@ msgstr "" "

De kan være ethvert ord eller fraser, separert ved kommategn." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Serier:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3401,30 +3440,42 @@ msgstr "Liste av kjente serier. Du kan legge til nye serier." msgid "Book " msgstr "Bok " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "MOBI Utdata" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "Standard" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "&Tittel for Innholdsfortegnelse:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "Omskaler bilder for &Palm-enheter" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "Bruk forfatter &sorter etter forfatter" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "Slå av kompressjon av filinnhold" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "Ikke legg til noen innholdsforteglelse i boken" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Sideoppsett" @@ -3512,7 +3563,7 @@ msgid "RB Output" msgstr "RB Utdata" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "Velg format som skal vises" @@ -3819,7 +3870,7 @@ msgstr "" "ebook.com/user_manual/xpath.html\">XPath Tutorial
." #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Ingen detaljer tilgjengelig." @@ -4041,8 +4092,8 @@ msgstr "Lagre &mal:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Bane" @@ -4052,7 +4103,7 @@ msgstr "Bane" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -4075,7 +4126,7 @@ msgid "My Books" msgstr "Mine bøker" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "Produser katalog" @@ -4205,130 +4256,130 @@ msgstr "" msgid "new email address" msgstr "ny e-postadresse" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Feil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "Kunne ikke installere kommandolinjeverktøy." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Kommandolinjeverktøy installert" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Kommandolinjeverktøy ble installert i" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Dersom du flytter calibre.app, må du re-installere kommandolinjeverktøyene." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Ingen gyldig programtillegsbane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s er ikke en gyldig bane for programtillegget" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Velg programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Programtillegget kan ikke slåes av" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Programtillegget: %s kan ikke slåes av" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Programtillegg ikke egendefinert" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Programtillegg: %s trenger ikke å egendefineres" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Tilpass" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Kan ikke fjerne innebygget programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " kan ikke fjernes. Dette er et innebygget programtillegg. Forsøk å slå det " "av istedet." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Feil-logg:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "tilgangslogg:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Kunne ikke starte innholdsserveren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Velg lokalisasjon for bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Ugyldig størrelse" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "Størrelsen %s er ugyldig. må være i formatet breddexhøyde" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Ugyldig lokalisering av databasen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Ugyldig lokalisering av databasen " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Må være en katalog." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Ugyldig lokalisering av databasen.
Kan ikke skrive til " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Sjekker databasens integritet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Kunne ikke sjekke databasens integritet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Noen uoverensstemmelser ble funnet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4437,13 +4488,13 @@ msgstr "" msgid "Sending to &device" msgstr "Sender til &enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Innstillinger" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4451,23 +4502,27 @@ msgstr "" "&Lokalisering av e-bøker (e-bøkene er lagret i foldere sortert etter " "forfattere og metadata er lagret i filen metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Søk etter den nye databaselokaliseringen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Varsle når &ny versjon er tilgjengelig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "Last ned &sosiale metadata (emneord/bedømminger/osv.) som standard" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "Standard netttilgang &tidsavbrudd:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4475,148 +4530,148 @@ msgstr "" "Legg inn standard for tidsavbrudd for nettverkstilgang (for eksempel all den " "tid vi går på nettet for å finne informasjon)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " sekunder" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Velg &språk (krever omstart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Vanlig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Høy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Lav" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "oppgave&prioritet:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Foretrukket &utdataformat:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Foretrukket &inndataformat:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Bruk &Romerske tall for seriell numerering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "Slå på oppgave&panelikonet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Vis &varsler i oppgavepanelet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Vis omslag &søk i eget vindu (krever omstart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Søk mens du taster" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Send nedlastede &nyheter til eBokleseren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "&Slett nyheter fra biblioteket når de automatisk sendes til leseren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "&Antall omslag som skal vises i søkemodus (krever omstart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Verktøylinje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Store" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Medium" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Små" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Knappestørrelse i verktøylinjen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Vis &tekst i verktøylinjens knapper" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Velg synlige &kolonner i bibliotekvisningsmodus" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Bruk intern &leser for:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Legg til en e-postadresse til hvor du vil sende bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "&Legg til e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Lag &standard" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "&Fjern e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "Calibre kan sende bøker til deg (eller din leser) via e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "&Maximum antall ventende arbeidsprosesser (omstart behøves):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "&Sjekk databasens integritet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "&Installer kommandolinjeverktøy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "Åpne Calibre&konfigurasjonsmappen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Begrens maksimalt antall samtidige oppgaver til verdien av CPU &cores" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "Feilsøking &enhetsgjenkjenning" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4626,25 +4681,25 @@ msgstr "" "ved å benytte en nettleser fra hvilket som helst sted i verden. Enhver " "forandring av innstillingene vil taes ibruk etter en omstart av serveren." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "Server &port:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Brukernavn:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Passord:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4652,7 +4707,7 @@ msgstr "" "Dersom du lar passordet stå tomt, vil enhver kunne gå inn i din boksamling " "ved å benytte web-brukergrensesnittet." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4660,41 +4715,41 @@ msgstr "" "Maksimal størrelse (breddexhøyde) for å vise omslag. Større omslag vil bli " "re-dimensjonert. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Maks. &omslagsstørrelse:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Vis passord" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "Maksimum &OPDS enheter per spørring:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "&Start server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "St&op server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Test server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Kjør server &automatisk ved oppstart" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Vis &serverlogger" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4711,7 +4766,7 @@ msgstr "" "din iPhone. Her skal myhostname være fullt kvalifisert vertsnavn eller IP-" "adressen til datamaskinen Calibre kjører på." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4719,27 +4774,27 @@ msgstr "" "Her kan du skreddersy Calibres atferd ved å kontrollere hvilke " "programtillegg som skal benyttes." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Slå på/&Slå av programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "&Skreddersy programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "&Fjern programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Legg til nytt programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Programtillegg &fil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Legg til" @@ -4809,43 +4864,43 @@ msgstr "Forfatter Sorter" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Finner metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Kunne ikke finne metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" "Nedlastingen av metadata ser ut til å ha låst seg. Forsøk igjen senere." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Advarsel" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Kunne ikke finne metadata fra:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Ingen metadata funnet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Ingen metadata funnet. Forsøk å justere tittel og forfatter, eller ISBN-" "nøkkelen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Finn metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4857,28 +4912,32 @@ msgstr "" "først registrere deg med engratis " "konto og legge inn din aksessnøkkel under." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "&Aksessnøkkel" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Hent" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Treff" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "Velg boken som samsvarer mest med ditt eksemplar fra listen under" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Last ned &sosiale metadata (emneord/bedømminger/osv.) for den valgte boken" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Oppgavedetaljer" @@ -4899,24 +4958,24 @@ msgstr "Vis oppgave&detaljer" msgid "Stop &all jobs" msgstr "Stopp &alle jobber" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Rediger metainformasjon" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Metainformasjon" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "A&utomatisk forfattersortering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "Forfatter s&orter: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -4925,47 +4984,51 @@ msgstr "" "Spesifiser hvordan forfatter(e) av denne boken skal sorteres. For eksempel " "Charles Dickens skal sorteres som Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Bedømning" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Bedømning av denne boken. 0-5 stjerner" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "Ingen endring" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " stjerner" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Legg til ta&gger: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Åpne Tagg-redigering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "&Fjern emneord:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "Kommaseparert liste av emneord som skal fjernes fra bøkene. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Fjern &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "&Bytt mellom tittel og forfatter" @@ -5020,68 +5083,68 @@ msgstr "Omslaget i %s format er ikke gyldig" msgid "Abort the editing of all remaining books" msgstr "Avbryt redigering av alle gjenværende bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "Dette ISBN-nummeret er gyldig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "Dette ISBN-nummeret er ugyldig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "Laster ned omslag..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "Kan ikke hente omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "Kunne ikke hente omslag.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "Tidsavbrudd for nedlasting." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "Kunne ikke finne omslaget for denne boken. Forsøk å spesifisere ISBN først." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Dårlig omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "Omslaget har ikke gyldig bilde" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "Det oppsto feil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "Det oppsto feil ved nedlastingen av sosiale metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "Kan ikke hente metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "Du må spesifisere minst en av ISBN, Tittel, Forfatter eller Forlag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "Ingen adgang" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "Kunne ikke åpne %s. Blir den benyttet i et annet program?" @@ -5802,23 +5865,23 @@ msgstr "Ikke tilgjengelig" msgid " - Jobs" msgstr " - Oppgave" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Størrelse (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Dato" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Rangering" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5826,15 +5889,15 @@ msgstr "Rangering" msgid "None" msgstr "Ingen" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "Bok %s of %s." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "Ikke tillatt" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -5842,11 +5905,11 @@ msgstr "" "Legger inn på en enhet som ikke er støttet. Legg først boken til " "Calibrebiblioteket." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "Format" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "Dobbelklikk til rediger me

" @@ -5875,7 +5938,7 @@ msgid "No matches for the search phrase %s were found." msgstr "Ingen treff for søkefrasen %s ble funnet." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "Ingen treff" @@ -5922,52 +5985,52 @@ msgstr "Åpne e-bok" msgid "Configure" msgstr "Konfigurer" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Bruk biblioteket lokalisert ved en spesifikk sti." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Start minimalisert til systemstatusfeltet." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Logg debugging informasjon til konsollen" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Ikke søk etter oppdateringer" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Er du sikker på at den ikke kjører" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Kan ikke Starte " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s kjører allerede." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "kan kjøre i systemfeltet, i" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "øvre høyre område av skjermen." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "nedre høyre område av skjermen." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "forsøk å re-starte datamaskinen" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "forsøk å slette filen" @@ -6127,11 +6190,11 @@ msgstr "&Avslutt" msgid "ERROR: Unhandled exception" msgstr "FEIL: Ubehandlet unntak" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Boken har verken tittel eller ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Ingen treff ble funnet for denne boken" @@ -6266,11 +6329,11 @@ msgstr "Kø " msgid "Fetch news from " msgstr "Skaff nyheter fra " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "Konverter eksisterende" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6363,7 +6426,7 @@ msgid "Save to disk in a single directory" 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:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "Lagre kun %s format til disken" @@ -6397,7 +6460,7 @@ msgstr "Samlet konvertering" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 msgid "Create catalog of books in your calibre library" -msgstr "" +msgstr "Lag en katalog av bøker i calibre-biblioteket ditt" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" @@ -6418,13 +6481,13 @@ msgid "Calibre Library" msgstr "Calibre-bibliotek" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "Velg en lokalisering for ditt e-bokbibliotek" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 msgid "Calibre Quick Start Guide" -msgstr "" +msgstr "Calibre hurtigstart-guide" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" @@ -6527,33 +6590,33 @@ msgstr "Arkiver" msgid "Supported books" msgstr "Støttede bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Kunne ikke lese metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Kunne ikke lese metadata fra følgende" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "Kan ikke fjerne" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "Ingen bøker ble valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "Velg formater som skal fjernes" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "Velg formatet ikke til å slettes" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6561,131 +6624,137 @@ msgstr "" "De valgte bøkene vil bli slettet permanent og filene vil bli fjernet " "fra datamaskinen din. Er du sikker?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Sletter bøker fra enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Kan ikke laste ned metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "Ingen bøker ble valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "sosiale metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "Omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Laster ned %s for %d bok(bøker)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Klarte ikke å laste ned en del av metadataene" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Kunne ikke laste ned metadata for følgende:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Kunne ikke laste ned metadata:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Kan ikke redigere metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Kan ikke lagre til disk" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Velg mottaksmappe" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Feil ved lagring" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "En feil oppsto ved lagring" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Kunne ikke lagre enkelte bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "Klikk vis detaljer knappen for å se hvilke." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "Ingen bøker ble valgt for å produsere kataloger" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "Produserer %s katalog..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "Katalog produsert." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" -msgstr "" +msgstr "Eksporter katalogdirektorat" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" -msgstr "" +msgstr "Velg plassering for %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "Skaffer nyheter fra " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr " funnet." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "Kan ikke konvertere" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "Starter konverteringen av %d boken(bøkene)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "Kan ikke vise" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "Kan ikke åpne folder" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "Flere bøker ble valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6697,32 +6766,32 @@ msgstr "" "startet denne prosessen, kan den ikke stanses før den er fullført. Ønsker du " "å fortsette?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "%s har ikke tilgjengelig formater." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "Kan ikke konfigurere" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "Kan ikke konfigurere samtidig som en oppgave kjører." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "Ingen detaljert informasjon er tilgjengelig" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" "Ingen detaljert informasjon er tilgjengelig for bøker på denne enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "Feil ved komminikasjonen med enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6730,12 +6799,12 @@ msgstr "" "En midlertidig feil oppsto ved kommunikasjonen med enheten. Vennligst plugg " "ut og plugg inn igjen enheten, eller ta en omstart." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "Feil ved konverteringen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6744,23 +6813,23 @@ msgstr "" "Du må først fjerne DRM beskyttelsen ved å benytte et 3.parts program med " "slike egenskaper." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "Beskrivelse Slettet" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "Feilet" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "Ugylding biblioteklokalisering" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "Kunne ikke koble til %s. Ved bruk av %s som bibliotek." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." @@ -6768,11 +6837,11 @@ msgstr "" "er resultatet av innsatsen til mange frivillige fra hele verden. Dersom du " "synes programmet er godt, vennligst bidra med støtte til videre utvikling." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 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?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6782,11 +6851,11 @@ msgstr "" " Å avslutte kan føre til feil på enheten.
\n" " Er du sikker på at du ønsker å avslutte?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "ADVARSEL: Aktive oppgaver" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6794,7 +6863,7 @@ msgstr "" "vil fortsette å kjøre i systemstatusfeltet. For å stenge programmet, velg " "Stopp innholdslisten i systemstatusfeltet." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" @@ -6802,11 +6871,11 @@ msgstr "" "Siste versjon: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "Oppdatering tilgjengelig" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6946,7 +7015,7 @@ msgstr "Standard &språk for orddeling:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 msgid "&Resize images larger than the viewer window (needs restart)" -msgstr "" +msgstr "&Gjør bilder større enn visningsområdet (krever omstart)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" @@ -6973,7 +7042,7 @@ msgid "Options to customize the ebook viewer" msgstr "Valgmuligheter for å egendefinere e-bokleseren" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "Husk sist brukte vindustørrelse" @@ -6993,6 +7062,7 @@ msgstr "Største bredde på leserens vindu, i piksler." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" +"Tilpass bilder ved å øke størrelsen til å passe innenfor visningsområded" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Hyphenate text" @@ -7030,7 +7100,7 @@ msgstr "Monospace fontstørrelse i piksler" msgid "The standard font type" msgstr "Standard tegnsetttype" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "&Slå opp i ordboken" @@ -7090,90 +7160,90 @@ msgstr "Bokformat" msgid "Go to..." msgstr "Gå til..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "Posisjon i boken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" "Gå til referanser. For å finne referansenummer, benytt referansemodus." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "Søk etter tekst i boken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "Forhåndsvisning av utskrift" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "Kobler til dict.org for å slå opp:%s…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "Velg e-bok" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "E-bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "Legg til bokmerke" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "Legg inn tittel for bokmerke:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "Ingen treff ble funnet for: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "Lastingsflyt..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "Legger ut %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "Behandle bokmerker" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "Laster e-bok..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "DRM Feil" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "

Denne boken er beskyttet av DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "Kunne ikke åpne e-boken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "Valgmuligheter for å kontrollere e-bokleseren" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Om spesifisert, vil leservinduet forsøke å legge seg foran når den starter." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "Skriv ut javascriptadvarsel og konsollmeldinger til konsollen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7671,7 +7741,7 @@ msgstr "" "Maksimum antall treff som resultat per OPDS spørring. Dette affekterer " "Stanza, WordPlayer osv integrering." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7679,8 +7749,13 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Feltene for utdata ved katalogisering av bøker i databasen. Må være en " +"kommaseparert liste av felt.\n" +"Tilgjengelige felt: %s.\n" +"Standard: '%%standard'\n" +"Gjelder: CSC, XML utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7693,21 +7768,41 @@ msgstr "" "Standard: '%default'\n" "Gjelder: CSV, XML utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Tittel for generert katalog benyttet som tittel i metadata.\n" +"Standard: '%default'\n" +"Gjelder: ePub, MOBI utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Lagre utdata fra forskjellige trinn av koverteringsplanen for et spesifisert " +"direktorat. Benyttes om du er usikker på hvilket trinn av " +"konverteringsprosessen en feil skjer.\n" +"Standard: '%default'Ingen\n" +"Gjelder: ePub, MOBI utdata-formater" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Regex beskriver emneord som skal utelates som sjangere.\n" +"Standard: '%default' utelater emneord i braketter, f.eks. '[]'\n" +"Gjelder: ePub, MOBI utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:249 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7715,22 +7810,52 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Kommaseparert liste over emneord som indikerer bøker som utelates fra " +"utdata. Berører ikke fastlagt standard.\n" +"--exclude-tags=hopp over som vil samsvare med 'utelat denne boken' og " +"'utelat tilsvarende'.\n" +"Standard: '%default'\n" +"Gjelder: ePub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Merk prefiks for brukernotater, f.eks. '*Det er mulig Grethe vil like å lese " +"dette'.\n" +"Standard; '%default'\n" +"Gjelder: ePub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:267 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Sorter titler med ledende tall, som ved tekst f.eks..\n" +"'2001: A Space Odyssey' sorteres som \n" +"Standard: '%default'\n" +"Gjelder: ePub, MOBI utdataformater" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7739,6 +7864,22 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Spesifiserer utdataprofil. I enkelte tilfeller vil en utdataprofil være " +"nødvendig for å forbedre katalogen for enheten. F.eks. 'kindle' eller " +"'kindle_dx' lager en strukturert tabell av innhold med seksjoner og " +"artikler.\n" +"Standard: '%default'\n" +"Gjelder: ePub, MOBI utdataformater" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Den merkede boken er lest.\n" +"Standard; '%default'\n" +"Gjelder: ePub, MOBI utdataformater" #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" @@ -8042,6 +8183,9 @@ msgid "" "If declared, --search is ignored.\n" "Default: all" msgstr "" +"Kommaseparert liste over database ID som skal katalogiseres.\n" +"Om deklarert, --search er utelatt.\n" +"Standard: alle" #: /home/kovid/work/calibre/src/calibre/library/cli.py:652 msgid "" @@ -8062,7 +8206,7 @@ msgstr "Vis detaljert utdatainformasjon. Benyttes for feilsøking" msgid "Error: You must specify a catalog output file" msgstr "Feilmelding: Du må spesifisere en katalog for utdata-fil" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8082,32 +8226,27 @@ msgstr "" "\n" "For hjelp til en individuell kommando: %%prog kommando --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1429 -msgid "Catalog" -msgstr "Katalog" - -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1691 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "

Migrerer gammel database til e-bokbiblioteket i %s
" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1720 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "Kopierer %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1737 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "Komprimerer databasen" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1830 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "Sjekker for SQL integritet..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1867 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "Sjekker etter savnede filer." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1889 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "Sjekker ID" @@ -8251,7 +8390,7 @@ msgstr "Konverter baner til små bokstaver." msgid "Replace whitespace with underscores." msgstr "Bytt ut mellomrom med underlinje." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:255 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "Etterspurt format er ikke tilgjengelig" @@ -8259,7 +8398,7 @@ msgstr "Etterspurt format er ikke tilgjengelig" msgid "Password to access your calibre library. Username is " msgstr "Passord for tilgang til ditt Calibrebibliotek. Brukernavn er " -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" @@ -8269,7 +8408,7 @@ msgstr "" "\n" "Start Calibres innholdserver." -#: /home/kovid/work/calibre/src/calibre/library/server.py:858 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "Sti til bibliotekfolderen som fungerer som innholdsserver" @@ -8345,7 +8484,7 @@ msgstr "Stoppet" msgid "Finished" msgstr "Fullført" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "Arbeider …" @@ -8407,7 +8546,7 @@ msgstr "Engelsk (Singapor)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Yemen)" -msgstr "" +msgstr "Engels (Yemen)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "German (AT)" @@ -8483,75 +8622,83 @@ msgstr "" msgid "Unknown News Source" msgstr "Ukjent nyhetskilde" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "\"%s\"kvitteringen trenger et brukernavn og et pasord." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "Nedlasting ferdig" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "Klarte ikke å laste ned følgende artikler:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "Kunne ikke laste ned deler av den følgende artikklene" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr " fra " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "\tUgyldige lenker:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "Kunne ikke hente artikkel. Kjør med -vv for å finne årsaken" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "Henter matinger..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "Funnet matinger fra indeksside" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "Forsøker å laste ned omslag..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "Genererer mastetopp..." + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "Starter nedlasting [%d thread(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "Matinger er lastet ned til %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "Kunne ikke laste ned omslag: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "Laster ned omslag fra %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "Mastetopp-bilde er lastet ned" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "Utittelert artikkel" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "Artikkelen har blitt lastet ned: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "Artikkelen kunne ikke lastes ned: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "Henter mating" @@ -9215,6 +9362,13 @@ msgstr "Ikke last ned CSS stilsett" #~ msgid "Produce more human-readable XML output." #~ msgstr "Produser en mer bedre lesbart XML utdatafil." +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Denne RTF filen har egenskaper calibre ikke støtter. Konverter det til HTML " +#~ "og forsøk på nytt." + #~ msgid "Frequently used directories" #~ msgstr "Ofte benyttede kataloger" @@ -9275,9 +9429,6 @@ msgstr "Ikke last ned CSS stilsett" #~ msgid "You must set a username and password for %s" #~ msgstr "Du må legge inn brukernavn og passord for %s" -#~ msgid "Default" -#~ msgstr "Standard" - #~ msgid "" #~ "

Demo videos

Videos demonstrating the various features of calibre are " #~ "available \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:45+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-31 21:36+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 @@ -172,9 +172,9 @@ msgid "" "linked files. This plugin is run every time you add an HTML file to the " "library." msgstr "" -"Volg alle plaatselijke links in een HTML-bestand en maak een ZIP-bestand met " -"alle gelinkte bestanden. Deze plug-in wordt elke keer u een HTML-bestand aan " -"de bibliotheek toevoegt, uitgevoerd." +"Volg alle lokale links in een HTML-bestand en maak een ZIP-bestand met alle " +"gelinkte bestanden. Deze plug-in wordt elke keer wanneer u een HTML-bestand " +"aan de bibliotheek toevoegt uitgevoerd." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 msgid "" @@ -196,7 +196,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87 msgid "Extract cover from comic files" -msgstr "Cover uit stripverhalen uithalen" +msgstr "Haal de cover uit stripverhalen" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:108 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 @@ -245,8 +245,8 @@ msgid "" "useful for documents that do not declare an encoding or that have erroneous " "encoding declarations." msgstr "" -"Specifieer de tekenencodering van het invoerbestand. Als deze optie " -"ingesteld wordt, zal de encodering die het document zelf bevat genegeerd " +"Specificeer de tekenencodering van het invoerbestand. Als deze optie " +"ingesteld is, zal de encodering die het document zelf bevat genegeerd " "worden. Voornamelijk nuttig voor documenten die geen encodering ingesteld " "hebben, of die een foutieve coderingsdeclaratie hebben." @@ -259,9 +259,9 @@ msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." msgstr "" -"Indien ingesteld, zal de uitvoerplugin proberen om de uitvoer te maken die " -"zo menselijk mogelijk leesbaar is als mogelijk. Kan zijn dat sommige " -"uitvoerplugins geen enkel effect hiervan ondervinden." +"Indien ingesteld, zal de uitvoerplugin proberen om uitvoer te maken die zo " +"leesbaar voor mensen is als mogelijk is. Kan zijn dat sommige uitvoerplugins " +"geen enkel effect hiervan ondervinden." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:44 msgid "Input profile" @@ -304,7 +304,7 @@ msgstr "Dit profiel is bedoeld voor de Mobipocket boeken." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 msgid "This profile is intended for the Hanlin V3 and its clones." -msgstr "Dit profiel is bedoeld voor de Hanlin V3 en zijn klonen." +msgstr "Dit profiel is bedoeld voor de Hanlin V3 en afgeleiden." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 @@ -1835,7 +1835,7 @@ msgstr "Gepubliceerd" msgid "Rights" msgstr "Rechten" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "REDACTIONELE BEOORDELING" @@ -2866,11 +2866,11 @@ msgid "Fields to include in output:" msgstr "Velden te gebruiken in uitvoer:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "E-Boek Opties" +msgid "E-book options" +msgstr "E-Boek opties" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7773,7 +7773,7 @@ msgstr "" "Standaard: '%default'\n" "Betrekking op: CSV, XML uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -7783,7 +7783,7 @@ msgstr "" "Standaard: '%default'\n" "Betrekking tot: ePub, MOBI uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7791,8 +7791,13 @@ msgid "" "Default: '%default'None\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Bewaar de uitvoer van verschillende stadia van het conversie proces in de " +"opgegeven folder. Handig als je niet zeker weet wanneer fouten optreden " +"tijdens de conversie.\n" +"Standaard: '%default'None\n" +"Betrekking tot: ePub, MOBI uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" @@ -7803,7 +7808,7 @@ msgstr "" "Standaard: '%default' uitgezonderd labels in haken, b.v. '[ tags. Default is %default" @@ -8734,7 +8742,7 @@ msgstr "" "Het maximum aantal bestanden te downloaden. Dit is alleen van toepassing op " "bestanden in labels. Standaard is %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8742,7 +8750,7 @@ msgstr "" "Minimum inteval in seconden tussen aaneensluitende downloads. Standaard is " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8750,7 +8758,7 @@ msgstr "" "De karakter codering voor de websites die je probeert te downloaden. " "Standaard zal er worden geprobeerd om de codering te raden." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8761,7 +8769,7 @@ msgstr "" "link zal worden gevolgd als deze overeenkomt met ten minste een reguliere " "expressie. Standaard zullen alle links worden gevolgd." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8775,7 +8783,7 @@ msgstr "" "geen enkele link overgeslagen. indien zowel --filter-regexp en --match-" "regexp worden gebruikt, dan zal --filter-regexp allereerst worden toegepast." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Download geen CSS stylesheets" @@ -9892,3 +9900,6 @@ msgstr "Download geen CSS stylesheets" #~ "timestamp, title, uuid.\n" #~ "Standaard: '%default'\n" #~ "Betreft: CSV, XML uitvoer formaten" + +#~ msgid "E-book Options" +#~ msgstr "E-Boek Opties" diff --git a/src/calibre/translations/pl.po b/src/calibre/translations/pl.po index c96b89bbde..ef4e16e052 100644 --- a/src/calibre/translations/pl.po +++ b/src/calibre/translations/pl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:46+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-31 21:39+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -160,7 +160,7 @@ msgstr "Zapisywacz metadanych" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 msgid "Catalog generator" -msgstr "Generator katalogowy" +msgstr "Generator katalogów" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" @@ -186,9 +186,9 @@ msgid "" "directory pmlname_img or images. This plugin is run every time you add a PML " "file to the library." msgstr "" -"Tworzenie archiwum PMLZ zawierającą plik PML i wszystkie obrazy w " -"pmlname_img lub images. Plugin ten jest uruchamiany przy każdym dodaniu PML " -"pliku do biblioteki." +"Stwórz archiwum PMLZ zawierające plik PML i wszystkie obrazy z katalogu " +"pmlname_img lub images. Plugin ten jest uruchamiany przy każdym dodaniu " +"pliku PML do biblioteki." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87 msgid "Extract cover from comic files" @@ -245,6 +245,10 @@ msgid "" "useful for documents that do not declare an encoding or that have erroneous " "encoding declarations." msgstr "" +"Określ kodowanie znaków dokumentu wejściowego. Jeśli ta opcja zostanie " +"wybrana, zastąpi dowolne kodowanie zadeklarowane przez sam dokument. " +"Szczególnie przydatne w przypadku dokumentów, które nie deklarują kodowania " +"lub które mają błędne deklaracje kodowania." #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" @@ -677,7 +681,7 @@ msgstr "Odczytaj dane meta z książek na urządzeniu" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 msgid "Template to control how books are saved" -msgstr "" +msgstr "Szablon do kontrolowania sposobu, w jaki książki są zapisywane" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 @@ -1115,6 +1119,8 @@ msgid "" "Insert the book metadata at the start of the book. This is useful if your " "ebook reader does not support displaying/searching metadata directly." msgstr "" +"Wstaw metadane książki na początku książki. Jest to przydatne, jeśli czytnik " +"ebook nie obsługuje wyświetlania / wyszukiwanie metadanych bezpośrednio." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 msgid "" @@ -1681,7 +1687,7 @@ msgstr "Opublikowana" msgid "Rights" msgstr "Uprawnienia" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2573,11 +2579,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -3700,7 +3706,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 msgid "Sending catalogs to device." -msgstr "" +msgstr "Trwa wysyłanie katalogów do urządzenia" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." @@ -3777,28 +3783,29 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 msgid "Generate catalog" -msgstr "" +msgstr "Wygeneruj katalog" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 msgid "Catalog &format:" -msgstr "" +msgstr "&Format katalogu:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 msgid "" "Catalog &title (existing catalog with the same title will be replaced):" msgstr "" +"&Tytuł katalogu (istniejący katalog o tej samej nazwie zostanie nadpisany):" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 msgid "&Send catalog to device automatically" -msgstr "" +msgstr "Automatycznie wyślij katalog do urządzenia" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 msgid "Catalog options" -msgstr "" +msgstr "Opcje katalogu" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 msgid "Generate catalog for {0} books" -msgstr "" +msgstr "Wygeneruj katalog dla {0} książek" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" @@ -6018,7 +6025,7 @@ msgstr "Masowa konwersja" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 msgid "Create catalog of books in your calibre library" -msgstr "" +msgstr "Stwórz katalog książek w Twojej bibliotece calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" @@ -6146,7 +6153,7 @@ msgstr "Nie można było odczytać metadanych z nastepujących" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 msgid "Cannot delete" -msgstr "" +msgstr "Usunięcie niemożliwe." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 @@ -7239,14 +7246,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7255,14 +7262,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7271,21 +7278,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7538,14 +7545,14 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" "Pokazuj szczegółowową informację wyjściową. Przydatne przy debugowaniu." #: /home/kovid/work/calibre/src/calibre/library/cli.py:671 msgid "Error: You must specify a catalog output file" -msgstr "" +msgstr "Błąd: musisz podać plik wyjściowy katalogu" #: /home/kovid/work/calibre/src/calibre/library/cli.py:689 msgid "" @@ -7936,75 +7943,75 @@ msgstr "" msgid "Unknown News Source" msgstr "Nieznane źródło informacji" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Pobranie zakończone" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Nie udało się pobrać następujących artykułów:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Nie udało się pobrać części następujących artykułów:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " z " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" -msgstr "" +msgstr "Nie udało się pobrać artykułu. Użyj -vv, by zobaczyć przyczynę" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Próbuję pobrać okładkę..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "Rozpoczynam pobieranie [%d wątek(ków)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "Źródła pobrano do %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "Nie można pobrać okładki: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Pobieranie okładki z %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Artykuł bez tytułu" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Artykuł pobrany: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "Pobieranie artykułu nie powiodło się: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -8023,7 +8030,7 @@ msgstr "Zaplanowano" msgid "Custom" msgstr "Dostosuj" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8033,23 +8040,23 @@ msgstr "" "\n" "Gdzie URL to na przykład http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "Czas oczekiwania na odpowiedź serwera. Domyślnie: %default sek." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8057,7 +8064,7 @@ msgstr "" "Maksymalna liczba plików do pobrania. Stosowane jedynie do plików z etykiet " ". Wartość domyślna: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8065,20 +8072,20 @@ msgstr "" "Minimalny odstęp w sekundach pomiędzy kolejnymi pobraniami. Domyślnie to " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8087,7 +8094,7 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Nie pobieraj arkuszy styli CSS." diff --git a/src/calibre/translations/pt_BR.po b/src/calibre/translations/pt_BR.po index da994bb885..5cbcd4cfe0 100644 --- a/src/calibre/translations/pt_BR.po +++ b/src/calibre/translations/pt_BR.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" "PO-Revision-Date: 2010-01-25 02:47+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:51+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1756,7 +1756,7 @@ msgstr "Publicado" msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2654,11 +2654,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7251,14 +7251,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7267,14 +7267,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7283,21 +7283,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7555,7 +7555,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -7937,75 +7937,75 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Download concluído" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Falha ao baixar os seguintes artigos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Falha ao baixar partes do artigos a seguir:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " de " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Tentando obter capa..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Artigo sem título" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Artigo transferido: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -8024,55 +8024,55 @@ msgstr "" msgid "Custom" msgstr "Personalizado" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8081,7 +8081,7 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Não baixar folhas de estilo CSS." diff --git a/src/calibre/translations/ru.po b/src/calibre/translations/ru.po index 29a23b0149..53e0670558 100644 --- a/src/calibre/translations/ru.po +++ b/src/calibre/translations/ru.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.55\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:30+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-09 05:37+0000\n" +"Last-Translator: Boris Rybalkin \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-02-10 04:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Language: Russian\n" @@ -34,7 +34,7 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -42,19 +42,19 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -69,18 +69,18 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -103,10 +103,10 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -117,23 +117,23 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -482,19 +482,19 @@ msgstr "Соединяться с ESlick." #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 msgid "Communicate with Hanlin V3 eBook readers." -msgstr "" +msgstr "Соединяться с Hanlin V3" #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 msgid "Communicate with Hanlin V5 eBook readers." -msgstr "" +msgstr "Соединяться с Hanlin V5" #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 msgid "Communicate with the BOOX eBook reader." -msgstr "" +msgstr "Соединяться с BOOX" #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 msgid "Communicate with the Hanvon N520 eBook reader." -msgstr "" +msgstr "Communicate with the Hanvon N520" #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." @@ -514,6 +514,10 @@ msgstr "Интерфейс устройства" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Соединяться с iRex Digital Reader 1000." +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Соединяться с Iriver Story." @@ -581,6 +585,8 @@ msgid "" "Comma separated list of metadata fields to turn into collections on the " "device. Possibilities include: " msgstr "" +"Разделенный запятыми список полей метаданных преобразовать в коллекции на " +"устройстве. Возможности включают: " #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 @@ -603,7 +609,7 @@ msgstr "Отправляю метаданные на устройство..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 msgid "Communicate with the Sony PRS-600/700/900 eBook reader." -msgstr "" +msgstr "Соединяться с Sony PRS-600/700/900" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." @@ -652,12 +658,12 @@ msgid "There is insufficient free space on the storage card" msgstr "Не хватает свободного места на карте памяти" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "Новости" @@ -810,8 +816,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Не обрабатывать изображения" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Страница" @@ -1437,6 +1443,8 @@ msgid "" "Average line length for line breaking if the HTML is from a previous partial " "conversion of a PDF file. Default is %default which disables this." msgstr "" +"Средняя длина строки для переноса строк, если HTML из предыдущей частичной " +"конвертации PDF файла. Значение по умолчанию %default." #: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." @@ -1731,83 +1739,83 @@ msgstr "Набор шрифтов для использования серии \ msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Заголовок" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Автор(ы)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "Издатель" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Спонсор" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Комментарии" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Теги" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Серия" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Язык" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "Временная метка" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "Опубликовано" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "Права" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "ПРОСМОТР РЕДАКТИРОВАНИЯ" @@ -1854,20 +1862,24 @@ msgid "" "The version of the title to be used for sorting. If unspecified, and the " "title is specified, it will be auto-generated from the title." msgstr "" +"Версия заголовка для сортировки. Если не указан, а заголовок указан, будет " +"авто-сгенерирован из заголовока." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:47 msgid "" "String to be used when sorting by author. If unspecified, and the author(s) " "are specified, it will be auto-generated from the author(s)." msgstr "" +"Срока для сортировки по автору. Если не указана, а авторы указаны, будет " +"авто-сгенерирована из списка авторов." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:57 msgid "Set the book category." -msgstr "" +msgstr "Установить категорию книги" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 msgid "Get the cover from the ebook and save it at as the specified file." -msgstr "" +msgstr "Получить обложку из книги и сохранить её в указанном файле." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77 msgid "" @@ -1900,7 +1912,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" -msgstr "" +msgstr "OPF создан в" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" @@ -1916,7 +1928,7 @@ msgstr "Загрузка метаданных" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 msgid "ratings" -msgstr "" +msgstr "рейтинги" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 msgid "tags" @@ -1924,7 +1936,7 @@ msgstr "теги" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 msgid "description/reviews" -msgstr "" +msgstr "описание/обзоры" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 msgid "Download %s from %s" @@ -1963,6 +1975,16 @@ msgid "" "isbndb.com.\n" "\n" msgstr "" +"\n" +"%prog [опции] ключ\n" +"\n" +"Получить метаданные для книг с isndb.com. Вы можете указать либо\n" +"ISBN номер или название и автора. Вы можете получить более одной книги,\n" +"если вы указываете название и автора.\n" +"\n" +"Ключ это ключ учетной записи (account key), сгенерированный при бесплатной " +"регистрации на isbndb.com.\n" +"\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:105 msgid "The ISBN ID of the book you want metadata for." @@ -2014,7 +2036,7 @@ msgstr "" "LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Обложка" @@ -2043,74 +2065,74 @@ msgstr "Заголовок для любых сгенерированных in-l msgid "Disable compression of the file contents." msgstr "Отказаться от сжатия содержимого файла." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Все статьи" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Титульная страница" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Содержание" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "Индекс" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "Глоссарий" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "Подтверждения" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Библиография" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "эмблема издательства" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "Копирайт" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "Посвящение" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "Эпиграф" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "Предисловие" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "Список иллюстраций" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "Оглавление" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Заметки" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "Введение" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Основной текст" @@ -2120,7 +2142,7 @@ msgstr "%s формат книг не поддерживается" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 msgid "HTML TOC generation options." -msgstr "" +msgstr "Варианты создания HTML содержания" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 msgid "Book Jacket" @@ -2138,16 +2160,18 @@ msgstr "Безымянный" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 msgid "OPF/NCX/etc. generation options." -msgstr "" +msgstr "Варианты создания OPF/NCX/др." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:35 msgid "OPF version to generate. Default is %default." -msgstr "" +msgstr "OPF вариант для создания. По умолчанию %default." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:37 msgid "" "Generate an Adobe \"page-map\" file if pagination information is available." msgstr "" +"Создать Adobe \"page-map\" файл если доступна информация о разбиении на " +"страницы." #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126 msgid "Footnotes" @@ -2164,6 +2188,8 @@ msgid "" "Normally calibre treats blank lines as paragraph markers. With this option " "it will assume that every line represents a paragraph instead." msgstr "" +"Обычно calible воспринимает пустые строки как разделители абзацев. С этой " +"установкой каждый перенос будет воспринят как новый абзац." #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 @@ -2184,10 +2210,12 @@ msgid "" "Specify the character encoding of the output document. The default is " "cp1252. Note: This option is not honored by all formats." msgstr "" +"Укажите кодировку исходящего документа. Кодировка по умолчанию cp1252. " +"Примечание: Этот параметр учитывается не всеми форматами." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 msgid "Do not extract images from the document" -msgstr "" +msgstr "Не извлекать изображения из документа" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 msgid "" @@ -2198,7 +2226,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 msgid "Use the new PDF conversion engine." -msgstr "" +msgstr "Использовать новый PDF конвертер." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/cli.py:31 msgid "" @@ -2211,6 +2239,14 @@ msgid "" "\n" "Manipulate a PDF.\n" msgstr "" +"команда ...\n" +"\n" +"доступные команды:\n" +"[%%commands]\n" +"\n" +"Используйте %prog команда --help для получения помощи по конкретной команде\n" +"\n" +"Управление PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:29 msgid "" @@ -2218,6 +2254,9 @@ msgid "" "\n" "Crop a PDF file.\n" msgstr "" +"[опции] файл.pdf\n" +"\n" +"Обрезать PDF файл.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:38 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:32 @@ -2234,25 +2273,28 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:41 msgid "Number of pixels to crop from the left most x (default is %s)" -msgstr "" +msgstr "Количество точек для обрезания от самой левой x (по умолчанию: %s)" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:44 msgid "Number of pixels to crop from the left most y (default is %s)" -msgstr "" +msgstr "Количество точек для обрезания от самой левой y (по умолчанию: %s)" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:47 msgid "Number of pixels to crop from the right most x (default is %s)" -msgstr "" +msgstr "Количество точек для обрезания от самой правой x (по умолчанию: %s)" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:50 msgid "Number of pixels to crop from the right most y (default is %s)" -msgstr "" +msgstr "Количество точек для обрезания от самой правой y (по умолчанию: %s)" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:53 msgid "" "A file generated by ghostscript which allows each page to be individually " "cropped `gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox file.pdf 2> bounding`" msgstr "" +"Файл, созданный с помощью ghostscript, который позволит уникально обрезать " +"каждую страницу `gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox file.pdf 2> " +"bounding`" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 msgid "Crop Options:" @@ -2274,10 +2316,13 @@ msgid "" "\n" "Decrypt a PDF.\n" msgstr "" +"[опции] файл.pdf пароль\n" +"\n" +"Дешифровать PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 msgid "Decrypt Options:" -msgstr "" +msgstr "Параметры дешифрования:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 msgid "" @@ -2285,10 +2330,13 @@ msgid "" "\n" "Encrypt a PDF.\n" msgstr "" +"[опции] файл.pdf пароль\n" +"\n" +"Шифровать PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 msgid "Encrypt Options:" -msgstr "" +msgstr "Параметры шифрования:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 msgid "" @@ -2296,6 +2344,9 @@ msgid "" "\n" "Get info about a PDF.\n" msgstr "" +"файл.pdf ...\n" +"\n" +"Получить информацию о PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 msgid "Author" @@ -2329,6 +2380,11 @@ msgid "" "\n" "Merges individual PDFs.\n" msgstr "" +"[опции] файл1.pdf файл2.pdf ...\n" +"\n" +"Метаданные первого указанного файла будут использованы.\n" +"\n" +"Объединение отдельных PDF файлов.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 msgid "Merge Options:" @@ -2351,6 +2407,9 @@ msgid "" "\n" "Rotate pages of a PDF clockwise.\n" msgstr "" +"файл.pdf градус\n" +"\n" +"Повернуть по часовой стрелке страницы PDF файла.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 msgid "Rotate Options:" @@ -2370,6 +2429,17 @@ msgid "" "\n" "Split a PDF.\n" msgstr "" +"\n" +"%prog %%name [опции] файл.pdf страница_по_которой_разбить ...\n" +"%prog %%name [опции] файл.pdf диапазон_страниц_по_которым_разбить ...\n" +"\t\n" +"Пример:\n" +"\t\n" +"%prog %%name файл.pdf 6\n" +"%prog %%name файл.pdf 6-12\n" +"%prog %%name файл.pdf 6-12 8 10 9-20\n" +"\n" +"Разбить PDF файл.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Split Options:" @@ -2380,6 +2450,8 @@ msgid "" "The unit of measure. Default is inch. Choices are %s Note: This does not " "override the unit for margins!" msgstr "" +"Единица измерения. По умолчанию дюйм. Варианты: %s Примечание: Данная " +"установка не переопределит единицу измерения для полей!" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:36 msgid "" @@ -2394,6 +2466,9 @@ msgid "" "Custom size of the document. Use the form widthxheight EG. `123x321` to " "specify the width and height. This overrides any specified paper-size." msgstr "" +"Произвольный размер документа. Используйте следующую форму, например: " +"`123x321` для указания ширины и высоты. Данная установка переопределяет " +"любой определенный формат бумаги." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:45 msgid "The orientation of the page. Default is portrait. Choices are %s" @@ -2406,18 +2481,19 @@ msgstr "Не могу найти pdftohtml, проверьте наличе по #: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:33 msgid "" "Specify the character encoding of the output document. The default is cp1252." -msgstr "" +msgstr "Укажите кодировку для создаваемого документа. По умолчанию cp1252." #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" "Specify the character encoding of the output document. The default is utf-8." -msgstr "" +msgstr "Укажите кодировку для создаваемого документа. По умолчанию utf-8." #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27 msgid "" @@ -2425,6 +2501,8 @@ msgid "" "compression but the fastest and 10 being the highest compression but the " "slowest." msgstr "" +"Укажите степень сжатия. По шкале от 1 до 10, где 1 это минимальное сжатие на " +"высокой скорости, а 10 это максимальное сжатие на низкой скорости." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32 msgid "" @@ -2434,7 +2512,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:35 msgid "Do not insert a Table of Contents into the output text." -msgstr "" +msgstr "Не вставлять Содержимое в резултирующий текст." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 msgid "" @@ -2442,12 +2520,17 @@ msgid "" "for compatibility with Mac OS 9 and earlier. For Mac OS X use 'unix'. " "'system' will default to the newline type used by this OS." msgstr "" +"Тип переноса строк. Варианты: %s. По умолчанию 'system'. Используйте " +"'old_mac' для совместимости с Mac OS 9 и раньше. Для Mac OS X используйте " +"'unix'. 'system' будет использовать тип переноса по умолчанию для этой ОС." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:30 msgid "" "Specify the character encoding of the output document. The default is utf-8. " "Note: This option is not honored by all formats." msgstr "" +"Укажите кодировку для результирующего документа. По умолчанию utf-8. " +"Примечание: Это параметр учитывают не все форматы." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 msgid "" @@ -2463,189 +2546,199 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "По умолчанию, отправлять файл в карту памяти, вместо основной памяти" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Подтвердить перед удалением" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Размер иконок рабочей панели" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Показать название кнопок на рабочей панали" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Геометрия основного окна" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Сообщить, если доступна новая версия" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Использовать Римские цифры для нумерации" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Сортировать список эпилогов по популярности" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "Количество обложек показываемых в режиме просмотра обложек" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "По умолчанию преобразование в LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Опции для просмотра электронной книги LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Форматы для просмотра во встроенной программе" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Показывать колонки в списке книг" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Автоматически запускать сервер конента при запуске приложения" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "В базе данных содержатся старые новости" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Показывать иконку в панели задач" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Загрузить в устройство закаченные новости" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Удалить книги из библиотеки после загрузки в устройство" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "Показать обложку в отдельном окне вместо основного окна calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Отключить уведомления от иконки в трее" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "Действие по умолчанию по нажатию кнопки \"отправить в устройство\"" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" +msgstr "Скачать социальные метаданные (тэги/рейтинги/и т.д.)" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" +"Ограничить максимальное количество одновременных задач количеством " +"процессоров CPU" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Скопирована" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Копировать" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Копирования в буфер обмена" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Выберите файлы" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "Поиск" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "Добавление..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." -msgstr "" +msgstr "Ищем во всех под-каталогах ..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" -msgstr "" +msgstr "Ошибка пути" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." -msgstr "" +msgstr "Специальных каталог не может быть обработан." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Нет книг" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "Книги не найдены" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "Добавлена" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" -msgstr "" +msgstr "Ошибка при добавлении" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" +"Добавление книг видимо зависло. Попробуйте перезапустить calibre и добавить " +"книги меньшими порциями до тех пор пока не найдете проблемную книгу." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "Есть повторения!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" +"Книги со следующими названиями уже имеются в базе. Все равно добавить их?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." -msgstr "" +msgstr "Добавляем дубликаты ..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "Сохранение..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "Сохранено" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" -msgstr "" +msgstr "CVS/XML Параметры" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 @@ -2654,7 +2747,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2663,14 +2756,14 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 msgid "Options specific to" -msgstr "" +msgstr "Параметры относящиеся к" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2679,7 +2772,7 @@ msgid "output" msgstr "вывод" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2689,7 +2782,7 @@ msgstr "вывод" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2712,35 +2805,56 @@ msgstr "Форма" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 msgid "Fields to include in output:" -msgstr "" +msgstr "Поля для добавления к результату:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "" +msgid "E-book options" +msgstr "Параметры книг" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -2751,15 +2865,18 @@ msgid "" "in a previous conversion (if they exist) instead of using the defaults " "specified in the Preferences" msgstr "" +"Для настроек, которые не могут быть указаны в этом диалоге, использовать " +"сохраненные во время предыдущей конвертиции (если таковые есть) вместо " +"значений по умолчанию указанных в основном окне настроек." #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 msgid "Bulk Convert" -msgstr "" +msgstr "Массовое конвертирование" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." -msgstr "" +msgstr "Параметры для определенного формата вывода." #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 msgid "Comic Input" @@ -2771,7 +2888,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 msgid "input" -msgstr "" +msgstr "ввод" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 @@ -2825,7 +2942,7 @@ msgstr "Конт&раст" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" -msgstr "" +msgstr "Отключить обработку комиксов" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 @@ -2860,6 +2977,11 @@ msgid "" "understanding the conversion process and figuring out the correct values for " "conversion parameters like Table of Contents and Chapter Detection." msgstr "" +"Выберите каталог для сохранения отладочной информации. Если вы укажете " +"каталог, calibre будет сохранять туда большой объем информации для отладки. " +"Она может быть использована для понимания процесса конвертации и для подбора " +"подходящих значений параметров конвертирования, например таких как " +"Содержание и Распознавание Глав." #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 @@ -2868,12 +2990,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2904,10 +3026,13 @@ msgid "" "of the conversion process. This HTML can sometimes serve as a good starting " "point for hand editing a conversion." msgstr "" +"Процесс отладки сохраняет промежуточный HTML созданный на различных стадиях " +"процесса конвертации. Этот HTML иногда может быть использован как хороший " +"материал для ручного редактирования конвертации." #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 msgid "EPUB Output" -msgstr "" +msgstr "EPUB Вывод" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" @@ -2923,15 +3048,15 @@ msgstr " кб" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:45 msgid "No default &cover" -msgstr "" +msgstr "Без &обложки по умолчанию" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 msgid "FB2 Input" -msgstr "" +msgstr "FB2 Ввод" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 msgid "Do not insert a &Table of Contents at the beginning of the book." -msgstr "" +msgstr "Не вставлять &Содержание в начало книги." #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 msgid "FB2 Output" @@ -2946,7 +3071,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 msgid "Font rescaling wizard" -msgstr "" +msgstr "Мастер масштабирования шрифта" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 msgid "" @@ -2995,7 +3120,7 @@ msgstr " тчк." #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 msgid "Use &default values" -msgstr "" +msgstr "Использовать &значения по умолчанию" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 msgid "&Input document" @@ -3019,11 +3144,11 @@ msgstr "Вид и функции" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 msgid "Control the look and feel of the output" -msgstr "" +msgstr "Изменить внешний вид документа" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 msgid "&Disable font size rescaling" -msgstr "" +msgstr "&Отключить масштабирование шрифта" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 msgid "Base &font size:" @@ -3205,7 +3330,7 @@ msgid "Change the title of this book" msgstr "Изменить заголовок книги" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Автор(ы) " @@ -3222,7 +3347,7 @@ msgstr "" "Измените Автора(ов) книги. Несколько авторов должны быть разделены запятой." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Издательство: " @@ -3233,7 +3358,7 @@ msgid "Ta&gs: " msgstr "Пометки: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3243,15 +3368,15 @@ msgstr "" "

Вы можете разделить слова и фразы запятыми." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "Серии:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3262,30 +3387,42 @@ msgstr "Список известных серий. Вы можете добов msgid "Book " msgstr "Книга " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "Отключить сжатие содержимого файла" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "Не добавлять содержание в книгу" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Настройка страницы" @@ -3373,7 +3510,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "Выберете для просмотра формат" @@ -3666,7 +3803,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -3882,8 +4019,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Путь" @@ -3893,7 +4030,7 @@ msgstr "Путь" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -3916,7 +4053,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -4044,128 +4181,128 @@ msgstr "" msgid "new email address" msgstr "новый email адрес" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Ошибка" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Неверный путь к плагинам" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s - неверный путь к плагинам" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Использовать плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Плагин не может быть выключен" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Плагин %s не может быть выключен" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Плагин не настраиваемый" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Плагин: %s не требует настройки" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Настроить" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Не могу удалить встроеный плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " не может быть удален. Это встроенный плагин. Попробуйте отключить его." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Лог ошибок:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Лог доступа:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Сбой запуска контент-сервера" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Неверный размер" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "Размер %s указан неверно. Должен быть задан в виде [ширина]x[высота]" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Неправильное расположение базы данных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Неправильное расположение базы данных " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Должна быть дирректория." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Неправильное расположение базы данных.
Немогу записать " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Проверка целостности базы данных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Не удалось проверить целостность базы данных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4204,7 +4341,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 msgid "&Adding books" -msgstr "" +msgstr "&Добавление книг" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 msgid "" @@ -4259,35 +4396,39 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Настройки" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "&Расположение книг" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Просмотреть расположение новой базы данных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Сообщить о выходе &новой версии." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "&Задержка сети по умолчанию:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4295,149 +4436,149 @@ msgstr "" "Установить задержку по умолчанию для сетевых вызовов (т.е. в любое время вы " "выходите в интернет для получения информации)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " секунд" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Выбрать &язык (необходим рестарт):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Обычный" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Высокий" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Низкий" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "&Приоритет задачи" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Использовать &Римские цифры для нумерации" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "использовать иконку в трее (необходим перезапуск)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Показывать уведомления в трее" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Показывать обложку в отдельном окне (нужен перезапуск)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Отправлять автоматически закаченные новости в устройство для чтения" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "Количество обложек показываемых в режиме просмотра (нужна перезагрузка " "calibre)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Панель инструментов" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Большой" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Средний" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Маленький" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Размер кнопок на панеле инструментов" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Показать надписи на кнопках панели инструментов" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Выбрать видимые &столбцы в просмотре библиотеки" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Использовать внутренний вьювер для:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Добавить email адрес получателя" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "Добавить email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "По умолчанию" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "Удалить email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "calibre может отправить Ваши книги Вам (или Вашим читателям) email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "Проверка целостности базы данных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4447,25 +4588,25 @@ msgstr "" "коллекции ваших книг из любой точки мира с помощью браузера. Любые изменения " "в настройках вступят в силу после перезапуска сервера." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "&Порт сервера:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Пользователь:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Пароль:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4473,7 +4614,7 @@ msgstr "" "Если вы не установили свой пароль, то кто угодно сможет получить доступ к " "вашим книгам через веб-интерфейс." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4481,41 +4622,41 @@ msgstr "" "Максимальный размер ([ширина]x[высота]) обложек при отображении. Более " "крупные обложки подгоняются по размеру. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Макс. размер обложки:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Показать пароль" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "&Запустить сервер" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "Ост&ановить сервер" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Проверить сервер" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Запустить сервер авт&оматически после загрузки" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Просмотреть логи &сервера" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4526,34 +4667,34 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" "Здесь можно настроить поведение Calibre, указав какие плагины он использует." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Включить/Выключить плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "Настроить плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "Удалить плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Добавить новый плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Файл плагина:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "Добавить" @@ -4618,41 +4759,41 @@ msgstr "Сортировка по Автору" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Поиск матаданных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Не могу найти матаданные" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "Загрузка метаданных похоже остановилась. Попробуйте позже." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Предупреждение" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Не могу извлечь метаданные из:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Нет метаданных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Нет метаданных, попробуйте откорректировать заглавие и автора или ISBN ключ." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Получение метаданных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4664,27 +4805,31 @@ msgstr "" "href=\"http://www.isbndb.com\">бесплатный эккаунт и прописать полученный " "ключ ниже." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "Пароль доступа:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Получить" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Совпадения" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "Из списка выберете книгу, которая более соответствует вашей." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Рабочее уточнение" @@ -4705,24 +4850,24 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Редактировать мета информацию" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Мета информация" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "Автоматически выставить сортировку по автору" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -4731,47 +4876,51 @@ msgstr "" "Выставить, как автор(ы) этой книги будут отсортированы. Для примера Чарльз " "Дикенс будет сортироваться, как Дикенс, Чарлз." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "Оценка:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Оценка этой книги. 0-5 звезды" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " звезды" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Добавить теги: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Открыть редактор описания" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "Удалить тэги:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "Запятая разделяет список описаний удаляемых из книги. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Удалить формат:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4826,67 +4975,67 @@ msgstr "Обложка в формате %s неправильная" msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "Загрузка обложки..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "Не могу получить обложку" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "Не могу получить обложку.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "Таймаут загрузки" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Плохая обложка" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "Обложка с неправильной картинкой" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "Произошли ошибки" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "Не могу доставить метаданные" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "Нужно указаить ISBN, название, автора или издателя" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "Доступ запрещён" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -5586,23 +5735,23 @@ msgstr "Недоступен" msgid " - Jobs" msgstr " - Работы" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Размер (МБ)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Дата" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Рейтинг" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5610,15 +5759,15 @@ msgstr "Рейтинг" msgid "None" msgstr "Ничего" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "Книга %s из %s." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "Запрещено" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -5626,11 +5775,11 @@ msgstr "" "Сброс на устройство не поддерживается. Сначала добавьте книгу в библиотеку " "calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "Формат" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "Дважды кликните по редактировать

" @@ -5659,7 +5808,7 @@ msgid "No matches for the search phrase %s were found." msgstr "Нет совпадений для искомой фразы %s ." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "Совпадений не найдено" @@ -5706,52 +5855,52 @@ msgstr "Открыть книгу" msgid "Configure" msgstr "Настроить" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Использовать библиотеку по указанному пути." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Старт минимизированным в трей" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Выводить отладочную информацию на консоль" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Не проверять наличие обновлений" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s уже запущен." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "попробуйте перезагрузить ваш компьютер" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "попробуйте удалить файл" @@ -5910,11 +6059,11 @@ msgstr "&Выход" msgid "ERROR: Unhandled exception" msgstr "ОШИБКА: Необработанное исключение" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "У книги нет ни названия, ни ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Нет совпадений в этой книге" @@ -6047,11 +6196,11 @@ msgstr "" msgid "Fetch news from " msgstr "Выбрать новости из " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6143,7 +6292,7 @@ msgid "Save to disk in a single directory" msgstr "Сохранить на диск в одну директорию" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "Сохранять на диск только формат %s" @@ -6198,7 +6347,7 @@ msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "Выбрите расположение Вашей библиотеки электронных книг." @@ -6309,33 +6458,33 @@ msgstr "Архивы" msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Сбой чтения метаданных" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "Нет выбранных книг" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6343,131 +6492,137 @@ msgstr "" "Выбранные книги будут навсегда удалены вместе с файлами с Вашего " "компьютера. Вы уверены?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Удаляются книги из устройства." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Не удалось загрузить метаданные" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "Нет Выбранных книг" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "обложек" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "метаданных" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Загрузка %s для %d книг(и)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Не удалось загрузить некоторые метаданные" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Не удалось загрузить метаданные:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Невозможно редактировать метаданные" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Невозможно сохранить на диск" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Выберете директорию получателя" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Ошибка при сохранении" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Произошла ошибка при сохранении." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Не удалось сохранить некоторые книги" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "Вызвать новость из " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr " загружено." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "Не преобразуется" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "Невозможно просмотреть" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "Не могу открыть папку" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "Выбраны несколько книг" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6475,31 +6630,31 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "%s неизвестный формат." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "Невозможно настроить" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "Пока запущено задание, не могу настроить" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "Нет доступной подробной информации" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "Не доступна подробная информация книг на устройстве" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "Ошибка согласования устройства" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6507,34 +6662,34 @@ msgstr "" "Была временная ошибка общения с устройством. Пожалуста, переподключите " "устройство или перегрузите его." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "Ошибка преобразования" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "Неверное расположение библиотеки" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "Нет доступа к %s. Использование %s в качестве библиотеки." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." @@ -6542,22 +6697,22 @@ msgstr "" "является результато труда многих добровольцев по всему миру. Если Вы сочли " "его полезным, будьте добры пожертвовать на его развитие." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Имеется активное задание. Вы все равно хотите выйти?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "ПРЕДУПРЕЖДЕНИЕ: Активные задания" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6565,7 +6720,7 @@ msgstr "" "продолжит работать в трее. Для завершения работы выберитеQuit в " "контекстном меню трея." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" @@ -6573,11 +6728,11 @@ msgstr "" "Последняя версия: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "Доступно обновление" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6742,7 +6897,7 @@ msgid "Options to customize the ebook viewer" msgstr "Опции настроек ebook вьювера" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "" @@ -6798,7 +6953,7 @@ msgstr "Размер Моноширного шрифта в px" msgid "The standard font type" msgstr "Стандартный шрифт" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "" @@ -6858,90 +7013,90 @@ msgstr "" msgid "Go to..." msgstr "Перейти..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "Позиция в книге" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" "Идти по ссылке. Для получения номеров ссылок используйте ссылочный режим." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "Поиск текста в книге" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "Предварительный просмотр" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "Выбрать электронную книгу" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "Электронная книга" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "Добавить закладку" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "Введите название закладки" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "Нет соответствий для: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "Загрузить поток..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "Разметка %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "Управление закладками" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "Загружается электронная книга..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "Ошибка DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "

Книга защищена DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "Не могу открыть электронную книгу" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "Опции управления ebook вьювером" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Если указано, окно вьювера будт пытаться всплыть наверх при открытии." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7394,7 +7549,7 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7403,7 +7558,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7411,14 +7566,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7427,14 +7582,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7443,21 +7598,37 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7467,6 +7638,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7778,7 +7956,7 @@ msgstr "Показать детальную информацию. Использ msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7798,27 +7976,27 @@ msgstr "" "\n" "Для справки: %%prog команда --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "

Миграция старой базы данных в %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "Копирование %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "Сжатие базы данных" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "" @@ -8030,7 +8208,7 @@ msgstr "" msgid "Finished" msgstr "Закончил" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -8165,75 +8343,83 @@ msgstr "" msgid "Unknown News Source" msgstr "Неизвестный новостной ресурс" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "Закачка завершена" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "Неудачная загрузка следующих статей:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "Неудачная загрузка частей следующих статей:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr " из " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "\tБитые ссылки:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "Не может быть вызвана статья. Запустите с -w чтобы увидеть причину." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "Вызываются заготовки..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "Получить заготовки для оглавления" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "Попытка скачать обложку..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "Начало загрузки [%d поток(и)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "Заготовки закачиватся в %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "Невозможно скачать обложку: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "Скачивается обложка из %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "Статья без названия" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "Статья скачена: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "Ошибка загрузки статьи: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "Доставляется материал" diff --git a/src/calibre/translations/sq.po b/src/calibre/translations/sq.po index 0a32469551..144ab60526 100644 --- a/src/calibre/translations/sq.po +++ b/src/calibre/translations/sq.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:45+0000\n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-09 05:42+0000\n" "Last-Translator: Besnik \n" "Language-Team: Albanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-02-10 04:41+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,7 +30,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,19 +38,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +65,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +99,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,23 +113,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -480,6 +480,10 @@ msgstr "" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "" @@ -616,12 +620,12 @@ msgid "There is insufficient free space on the storage card" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "Lajme" @@ -753,8 +757,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Faqe" @@ -1502,83 +1506,83 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Titull" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Autor(ë)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "Botues" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Komente" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Etiketa" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Seri" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Gjuhë" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "Vulë kohore" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "Botuar" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "Të drejta" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -1762,7 +1766,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Kapak" @@ -1789,74 +1793,74 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Krejt artikujt" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Faqe Titulli" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Tryeza e Lëndës" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "Tregues" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Bibliografi" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "Të drejta kopjimi" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "Listë e ilustrimeve" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "Listë Tabelash" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Shënime" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Teksti Kryesor" @@ -2152,7 +2156,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2204,183 +2209,188 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "Gabim shtegu" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "" @@ -2395,7 +2405,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2411,7 +2421,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2420,7 +2430,7 @@ msgid "output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2430,7 +2440,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2456,32 +2466,53 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -2609,12 +2640,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2946,7 +2977,7 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "" @@ -2962,7 +2993,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Botues: " @@ -2973,7 +3004,7 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -2981,15 +3012,15 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3000,30 +3031,42 @@ msgstr "" msgid "Book " msgstr "Libër " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "" @@ -3111,7 +3154,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "" @@ -3404,7 +3447,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -3619,8 +3662,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Shteg" @@ -3630,7 +3673,7 @@ msgstr "Shteg" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -3653,7 +3696,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -3774,127 +3817,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Gabim" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Zgjidhni shtojcë" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Personalizojeni" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Regjistrim gabimesh:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Madhësi e pavlefshme" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -3988,252 +4031,256 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " sekonda" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Panel" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4244,33 +4291,33 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "" @@ -4335,40 +4382,40 @@ msgstr "" msgid "ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Sinjalizim" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4376,27 +4423,31 @@ msgid "" "below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "" @@ -4417,71 +4468,75 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " yje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Hap Përpunuesin e Etiketave" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4536,67 +4591,67 @@ msgstr "" msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "Shkarkimit i mbaroi koha." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Kapak i Prishur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "Kapaku s'është pamje e vlefshme" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "Pati gabime" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "Leje e mohuar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -5265,23 +5320,23 @@ msgstr "" msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Vlerësim" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5289,25 +5344,25 @@ msgstr "Vlerësim" msgid "None" msgstr "Asnjë" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "Format" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "" @@ -5336,7 +5391,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "Nuk u gjetën përputhje" @@ -5383,52 +5438,52 @@ msgstr "" msgid "Configure" msgstr "Formësoni" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Përdor biblioteknë e treguar te shtegu i dhënë." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Mos kontrollo për përditësime" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5584,11 +5639,11 @@ msgstr "&Mbylle" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" @@ -5719,11 +5774,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5810,7 +5865,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "" @@ -5865,7 +5920,7 @@ msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "" @@ -5962,163 +6017,169 @@ msgstr "" msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6126,101 +6187,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6383,7 +6444,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "" @@ -6438,7 +6499,7 @@ msgstr "" msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "" @@ -6498,88 +6559,88 @@ msgstr "" msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7015,7 +7076,7 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7024,7 +7085,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7032,14 +7093,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7048,14 +7109,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7064,21 +7125,37 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7088,6 +7165,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7337,7 +7421,7 @@ msgstr "" msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7349,27 +7433,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "" @@ -7578,7 +7662,7 @@ msgstr "" msgid "Finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -7711,75 +7795,83 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "" diff --git a/src/calibre/translations/sv.po b/src/calibre/translations/sv.po index f0b9f5d030..e036fac003 100644 --- a/src/calibre/translations/sv.po +++ b/src/calibre/translations/sv.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-24 14:40+0000\n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-11 00:29+0000\n" "Last-Translator: Merarom \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-02-12 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,7 +30,7 @@ msgstr "Gör ingenting" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,19 +38,19 @@ msgstr "Gör ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +65,18 @@ msgstr "Gör ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +99,10 @@ msgstr "Gör ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,23 +113,23 @@ msgstr "Gör ingenting" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -514,6 +514,10 @@ msgstr "Enhetsgränssnitt" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Kommunicera med IRex Digital Reader 1000 e-boksläsare." +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "Kommunicera med iRex Digital Reader 800" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Kommunicera med Iriver Story e-boksläsare." @@ -654,12 +658,12 @@ msgid "There is insufficient free space on the storage card" msgstr "Det finns tillräckligt mycket ledigt utrymme på minneskortet" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "Nyheter" @@ -812,8 +816,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Uför inte på någon bearbetning av bilden" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Sida" @@ -1734,83 +1738,83 @@ msgstr "Monospace familjen av teckensnitt för att bädda in" msgid "Comic" msgstr "Serietidning" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Titel" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "Författare" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "Förlag" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Producent" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Kommentarer" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Etiketter" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Serier" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "Språk" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "Tidsstämpel" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "Utgiven" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "Rättigheter" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "Redigeringsgranskning" @@ -2033,7 +2037,7 @@ msgstr "" "Hämta ett omslag för boken som identifieras med ISBN från LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "Omslag" @@ -2063,74 +2067,74 @@ msgstr "Titel för all infogad innehållsförteckning." msgid "Disable compression of the file contents." msgstr "Inaktivera komprimering av filens innehåll." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Alla artiklar" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Titelsida" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Innehållsförteckning" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "Översikt" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "Ordförklaringar" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "Erkännande" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "Litteraturförteckning" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "Kolofon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "Upphovsrätt" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "Tillägnan" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "Epigraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "Förord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "Illustrationslista" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "Tabellista" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "Anteckningar" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "Förord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "Huvudtext" @@ -2499,10 +2503,12 @@ msgstr "Ange vilken teckenkodning för utdokumentet. Standard är cp1252." #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Denna RTF-fil har en funktion som calibre inte stöder. Konvertera det till " -"HTML och sedan prova den." +"Detta RTF-fil har en funktion kaliber inte stöder. Konvertera det till HTML " +"och sedan prova det.\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2570,80 +2576,80 @@ msgstr "" "Tvingaduppdelning på max-radlängds värdet när inget utrymme finns. Även " "tillåter max-radlängd att vara under den minsta" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" "Skicka fil till lagring på kort istället för primärminne som standard" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Bekräfta innan borttagning" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Toolbar ikonstorlek" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Visa knappbeteckningar i verktygsfältet" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Huvudfönstrets geometri" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Meddela när en ny version finns tillgänglig" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Använd romerska siffror för serienummer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Sortera taglista efter popularitet" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "Antal omslag att visas på omslagsbläddringsvy" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Standardvärden för konvertering till LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Alternativ för LRF e-bokläsaren" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Format som visas med den intern läsare" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Antal kolumner som ska visas i boklistan" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Automatiskt starta mediaservern vid programuppstart" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Äldsta nyheter som finns i databasen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Visa systemfältsikonen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Ladda upp nerladdade nyheter till enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Ta bort böcker från biblioteket efter uppladdning till enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" @@ -2651,82 +2657,87 @@ msgstr "" "Visa omslagsbäddring i ett separat fönster istället för i calibre's " "huvudfönster" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Inaktivera meddelande från systemfältsikonen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Standard åtgärd att utföra när 'skicka till enheten' knappen klickas" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Maximalt antal väntande bearbetningsprocesser" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Hämta social metadata (taggar/betyg/m.m.)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "Skriv över författare och titel med nya metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "Övre maximumgräns på samtidiga jobb till antalet CPUer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Kopierad" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Kopiera" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Kopiera till klippbordet" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Välj filer" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "Söker i" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "Lägger till..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "Söker i all underkataloger..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "Sökvägsfel" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "Den angivna katalogen kunde inte behandlas." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Inga böcker" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "Inga böcker funna" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "Tillagd" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "Lägga till misslyckades" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2735,11 +2746,11 @@ msgstr "" "calibre och lägg till böcker i mindre steg, tills du hittar boken som ger " "problemet." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "Dubbletter hittades!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -2747,15 +2758,15 @@ msgstr "" "Böcker med samma titel som följande finns redan i databasen. Lägga till dem " "i alla fall?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "Lägger till dubbletter ..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "Sparar..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "Sparad" @@ -2770,7 +2781,7 @@ msgstr "CSV/XML alternativ" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2786,7 +2797,7 @@ msgstr "Alternativ specifika för" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2795,7 +2806,7 @@ msgid "output" msgstr "utdata" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2805,7 +2816,7 @@ msgstr "utdata" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2831,32 +2842,58 @@ msgid "Fields to include in output:" msgstr "Fält för att inkludera i utdata::" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "E-book alternativ" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "Katalog" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "Taggar att utesluta som genrer (regex):" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "\"Inkludera inte in den här boken\" etikett:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "\"Markera den här boken som läst\" etikett:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "Kompletterande märketikettsprefix:" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "Regex mönster beskriver etiketter för att utesluta genrer:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" +"Regex tips:\n" +"- Standard regex - \\ [[\\ w] * \\] - utesluter genre etiketter form [tag], " +"t.ex. [Amazon Freebie]\n" +"- Ett reguljärt mönster av en enda punkt utesluter alla genre etiketter, " +"alstra inget Genre avsnitt" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "Inkludera \"titlar\" avsnitt" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "Inkludera \"Nyligen tillagda\" avsnitt" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "Sortera tal som text" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "Tab mall för catalog.ui" @@ -2992,12 +3029,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3349,7 +3386,7 @@ msgid "Change the title of this book" msgstr "Ändra titeln på denna bok" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "Författare: " @@ -3367,7 +3404,7 @@ msgstr "" "kommatecken" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "Förlag: " @@ -3378,7 +3415,7 @@ msgid "Ta&gs: " msgstr "Taggar: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3388,15 +3425,15 @@ msgstr "" "
De kan vara alla ord eller fraser, separerade med kommatecken." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Serier:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3407,30 +3444,42 @@ msgstr "Lista över kända serier. Du kan lägga till nya serie." msgid "Book " msgstr "Bok " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "MOBI utdata" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "Grundinställning" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "&Titel för Innehållsförteckning:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "Omskala bilder för &Palm-enheter" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "Använd författare &sortera efter författare" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "Inaktivera komprimering av filens innehåll" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "Lägg inte till innehållsförteckningen för boken" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "Kindle alternativ" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "Masthead typsnitt:" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Sidinställning" @@ -3518,7 +3567,7 @@ msgid "RB Output" msgstr "RB utdata" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "Välj format för visning" @@ -3824,7 +3873,7 @@ msgstr "" "/a>." #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Inga detaljer tillgängliga." @@ -4047,8 +4096,8 @@ msgstr "Spara mall:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Sökväg" @@ -4058,7 +4107,7 @@ msgstr "Sökväg" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -4081,7 +4130,7 @@ msgid "My Books" msgstr "Mina böcker" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "Generera katalog" @@ -4212,130 +4261,130 @@ msgstr "" msgid "new email address" msgstr "ny e-postadress" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Fel" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "Misslyckades med att installera kommandoradsverktygen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Kommandoradsverktygen installerade" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Kommandoradsverktygen installerade i" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Om du flyttar calibre.app, måste du ominstallera kommandoradsverktygen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Ingen giltig sökväg för instickmodulen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s är ingen giltig sökväg för instickmodulen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Välj instickmodul" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Instickmodulen kan inte inaktiveras" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Instickmodulen: %s kan inte inaktiveras" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Instickmodulen går inte att anpassa" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Instickmodulen: %s behöver inte anpassas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Anpassa" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Kan inte ta bort inbyggd instickmodul" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " kan inte tas bort. Det är en inbyggd instickmodul. Försök att inaktivera " "den istället." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Fellogg:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Åtkomstlogg:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Misslyckades med att starta innehållsservern" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Välj plats för böcker" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Ogiltig storlek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "Storleken %s är ogiltig. måste vara av formen bredd x höjd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Ogiltig plats för databas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Ogiltig plats för databas " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Måste vara en katalog." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Ogiltig plats för databas.
Kan inte skriva till " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Kontrollar databas integritet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Misslyckades att kontrolla databas integritet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Några inkonsekvenser funna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4443,13 +4492,13 @@ msgstr "" msgid "Sending to &device" msgstr "Skickar till enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Inställningar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4457,23 +4506,27 @@ msgstr "" "&Lokalisering av e-böcker (de e-böcker som lagras i mappar sorterade efter " "författare och metadata lagras i filen metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Bläddra fram till den nya databasen platsen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Visa meddelande när &ny version finns tillgänglig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "Ladda ner &social metadata (etiketter / omdömen / etc.) Som standard" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "&Skriv över författare och titel som standard när hämtar metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "Grundinställning av &tidbegränsning för nätverk:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4481,148 +4534,148 @@ msgstr "" "Ange standard tidbegränsning för nätverkshämtning (dvs. som helst går vi ut " "på Internet för att få information)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " sekunder" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Välj språk (kräver omstart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Normal" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Hög" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Låg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "Jobb&prioritet:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Önskat &utformat:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Önskat &informatsordning:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Använd &romerska siffror för serienummer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "Aktivera systemfälts&ikonen (kräver omstart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "&Visa meddelanden i systemfältet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Visa omslag &bläddrare i ett separat fönster (kräver omstart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Sök &medan du skriver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Automatiskt skicka hämtade &nyheter till e-boksläsare" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" "Ra&dera nyheter från biblioteket när de skickas automatiskt till läsaren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "A&ntal omslag att visa i bläddringsläget (kräver omstart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Verktygsrad" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Stor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Medel" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Liten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Bildknappstorlek i verktygsfältet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Visa &text på bildknappar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Välj synliga &kolumnerna i biblioteketsvy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Använda interna läsare för:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Lägg till en e-postadress som du vill skicka böcker till" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "Lägg till e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Ange som grundinställning" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "Ta bort e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "calibre kan skicka böcker till dig (eller dina läsare) via e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "&Maximalt antal väntar arbetstagare processer (kräver omstart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "&Kontrollera databasintegritet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "&Installera kommandoradsverktyg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "Öppna &calibre inställningsmapp" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "Begränsa max. samtidiga jobb till lediga &CPU-kärnor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "Felsök enhets&detektion" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4632,25 +4685,25 @@ msgstr "" "boksamling med en webbläsare från hela världen. Eventuella ändringar i " "inställningarna träder i kraft först efter en serveromstart." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "Server&port:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "Användarnamn:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "Lösenord:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4658,7 +4711,7 @@ msgstr "" "Om du lämnar lösenordet tomt, kan vem som helst komma åt din boksamling med " "webbgränssnittet." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4666,41 +4719,41 @@ msgstr "" "Den maximala storleken (bredd x höjd) för att visas täcker. Större täcker " "ändrar storlek. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Max. omslagsstorlek:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "Vi&sa lösenord" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "Max. &OPDS poster per fråga:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "&Starta Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "St&oppa Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Testserver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Kör server och &automatiskt vid start" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Visa &serverloggar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4717,7 +4770,7 @@ msgstr "" "läsaren på din iPhone. Här värddatornamn bör vara fullständigt värdnamn " "eller IP-adressen för datorn calibre körs på." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4725,27 +4778,27 @@ msgstr "" "Här kan du anpassa beteendet hos Calibre genom att kontrollera vilka " "instickmoduler den använder." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Aktivera Avaktivera instickmodul" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "Anpassa instickmodul" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "Ta bort instickfil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Lägg till ny instickmodul" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Insticks&fil:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "Lägg till" @@ -4814,41 +4867,41 @@ msgstr "Författarsortering" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Söker metadata..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Kunde inte hitta metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "Metadata hämtning tycks ha avstannat. Försök igen senare." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Varning" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Kunde inte hämta metadata från:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Ingen metadata funnen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Ingen metadata funnen. Försök ändra titel och författare eller ISBN numret." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Hämtar metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4860,27 +4913,31 @@ msgstr "" "registrera dig för ett gratis konto " "och skriva in din behörighetskod nedan." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "Behörighetskod" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Hämta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Träffar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "Välj den bok som bäst passar din kopia från listan nedan" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "Ladda ner &social metadata (tags / betyg / etc.) För den valda boken" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "Skriv överförfattare och titel med författare och titel utvalda bok" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Jobbdetaljer" @@ -4901,24 +4958,24 @@ msgstr "Visa jobb&detaljer" msgid "Stop &all jobs" msgstr "Avsluta &alla jobb" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Redigera metainformation" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Metainformation" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "A&utomatiskt ange författaresortering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "Författares&ortering " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -4927,47 +4984,51 @@ msgstr "" "Ange hur författaren (er) av denna bok ska sorteras. Till exempel Charles " "Dickens ska sorteras som Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "Betyg:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Betyg på boken: 0-5 stjärnor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "Ingen ändring" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " stjärnor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Lägg till ta&ggar: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Öppna taggredigering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "Ta bo&rt taggar:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "Kommaseparerad lista med taggar för att ta bort från böckerna. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Ta bort &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "Växla mellan titel och författare" @@ -5022,67 +5083,67 @@ msgstr "Omslaget i %s format är ogiltigt" msgid "Abort the editing of all remaining books" msgstr "Avbryt redigering av alla kvarvarande böcker" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "Detta ISBN-nummer är giltigt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "Denna ISBN-nummer är ogiltigt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "Hämtar omslag..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "Kan inte hämta omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "Kunde inte hämta omslag.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "Hämtningen avbröts" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "Kunde inte hitta omslag för denna bok. Försök ange ISBN först." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "Dåligt omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "Omslaget är inte en giltig bild" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "Där fanns fel" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "Där fanns fel vid hämtningen av social metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "Kunde inte hämta metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "Du måste ange minst en av ISBN, titel, författare eller förlag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "Åtkomst nekad" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "Kunde inte öppna %s. Kanske det används av ett annat program?" @@ -5803,23 +5864,23 @@ msgstr "Otillgänglig" msgid " - Jobs" msgstr " -Jobb" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Storlek (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Datum" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "Betyg" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5827,26 +5888,26 @@ msgstr "Betyg" msgid "None" msgstr "Ingen" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "Bok %s av %s." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "Inte tillåten" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" "Släppa på en enhet stöds inte. Först lägga till boken i calibre biblioteket." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "Format" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "Dubbelklicka redigera me

" @@ -5875,7 +5936,7 @@ msgid "No matches for the search phrase %s were found." msgstr " Inga träffar för sökfrasen %s hittades." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "Inga träffar hittades" @@ -5922,52 +5983,52 @@ msgstr "Öppna e-bok" msgid "Configure" msgstr "Anpassa" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Använd biblioteket som ligger på den angivna sökvägen." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Start minimerad till aktivitetsfältet." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Logga felsökningsinformation till konsol" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Sök inte efter uppdateringar" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Om du är säker på att det inte kör" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Kan inte starta " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s kör redan." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "kan köras i systemfältet i" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "övre högra området på skärmen." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "nedre högra området på skärmen." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "försök starta om datorn." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "försök ta bort filen" @@ -6127,11 +6188,11 @@ msgstr "Avsluta" msgid "ERROR: Unhandled exception" msgstr "FEL: Ohanterat undantag" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Boken har varken titel eller ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Inga träffar hittades för den här boken" @@ -6266,11 +6327,11 @@ msgstr "Köar " msgid "Fetch news from " msgstr "Hämta nyheter från " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "Konvertering finns" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6363,7 +6424,7 @@ msgid "Save to disk in a single directory" msgstr "Spara till disk i en enda katalog" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "Spara bara %s-format på disk" @@ -6418,7 +6479,7 @@ msgid "Calibre Library" msgstr "Calibre bibliotek" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "Välj en plats för ditt e-bokbibliotek" @@ -6527,33 +6588,33 @@ msgstr "Arkiv" msgid "Supported books" msgstr "Stödd böcker" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Misslyckades läsa metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Misslyckades läsa metadat från följande" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "Kan inte ta bort" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "Inga böcker valda" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "Välj format som ska tas bort" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "Välj format inte som ska raderas" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6561,131 +6622,139 @@ msgstr "" "De utvalda böckerna tas permanent bort och filer tas bort från " "datorn. Är du säker?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Tar bort böcker från enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Kan inte hämta metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "Inga böcker valda" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "social metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Hämtar %s för %d böcker" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Misslyckades hämta någon metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Misslyckades hämta metadata för följande:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Misslyckades hämta metadata:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Kan inte redigera metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Kan inte spara till disk" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Välj målkatalog" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Fel uppstod vid sparning" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Fel uppstod vid sparning." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Kunde inte spara några böcker" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "Klicka på \"Visa detaljer\" knappen för att se vilken." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "Inga böcker valda för att skapa katalogen för" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "Skapar %s katalog..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" +"Inga böcker till katalog\n" +"Kontrollera uteslutna taggar" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "Katalog genererad." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "Export katalogen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" msgstr "Välj destination för %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "Hämtar nyheter från " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr " hämtade." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "Kan inte omvandla" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "Påbörja omvandling av %d böcker" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "Kan inte visa" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "Kan inte öppna mapp" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "Flera böcker valda" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6697,32 +6766,32 @@ msgstr "" "väl process startats kan den inte stoppas förrän den är klar. Vill du " "fortsätta?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "%s har inga tillgängliga format." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "Kan inte konfigurera" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "Kan inte konfigurera när det finns jobb som körs" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "Ingen detaljinformation tillgänglig" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" "Ingen detaljerad information finns tillgänglig för böcker på enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "Misslyckades kommunicera med enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6730,12 +6799,12 @@ msgstr "" "Det uppstod ett temporärt fel under kommunikation med enheten. Vänligen " "koppla ur och återkoppla enheten och / eller starta om." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "Omvandling misslyckades" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6743,23 +6812,23 @@ msgstr "" "

Kunde inte konvertera: %s

Det är en DRM skyddad " "bok. Du måste först ta bort DRM mha tredjepartsverktyg." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "Recept inaktiverat" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "Misslyckades" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "Ogiltig biblioteksplats" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "Kunde inte komma åt %s. Använder %s som biblioteket." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." @@ -6768,11 +6837,11 @@ msgstr "" "tycker att det är bra, vänligen överväg att donera till stöd för dess " "utveckling." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Det finns aktiva jobb. Är du säker på att du vill sluta?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6782,11 +6851,11 @@ msgstr "" " Avsluta kan orsaka skador på enheten.
\n" " Är du säker på att du vill sluta?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "VARNING: Aktiva jobb" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6794,7 +6863,7 @@ msgstr "" "fortsätter att köra i systemfältet. FÖr att stänga det, välj Avsluta " " i snabbmenyn systemfältet." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" @@ -6802,11 +6871,11 @@ msgstr "" "Senaste version: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "Nyare version hittad" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6974,7 +7043,7 @@ msgid "Options to customize the ebook viewer" msgstr "Möjligheter att anpassa e-bokläsaren" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "Kom ihåg senast använd fönsterstorlek" @@ -7032,7 +7101,7 @@ msgstr "Typsnitt monospaced textstorlek i px" msgid "The standard font type" msgstr "Standard typsnitt" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "&Leta i ordlista" @@ -7092,89 +7161,89 @@ msgstr "Bokformat" msgid "Go to..." msgstr "Gå till ..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "Plats i bok" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" "Gå till en referens. För att få referensnummer, använd referens läge." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "Sök text i bok" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "Förhandsgranska" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "Ansluta till dict.org att slå upp: %s…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "Välj e-bok" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "E-böcker" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "Lägg till bokmärke" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "ANge titel för bokmärke:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "Inga träffar funna för: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "Hämtar flöde..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "Formar ut %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "Hantera bokmärken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "Laddar e-bok...." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "DRM fel" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "

här boken är skyddat av DRM " -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "Kunde inte öppna e-bok" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "Alternativ för att styra e-bokläsare" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "Om angivet, kommer läsfönstret försöka lägga sig främst vid start." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "Skriv javaskript notifiering- och konsolmeddelanden till konsolen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7673,7 +7742,7 @@ msgstr "" "Det maximala antalet matcher att återvända per OPDS fråga. Detta påverkar " "Stanza, WordPlayer osv integration." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7687,7 +7756,7 @@ msgstr "" "Grundinställning: '%%default'\n" "Gäller: CSV, XML utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7699,7 +7768,7 @@ msgstr "" "Grundinställning: \"%default\"\n" "Gäller: CSV, XML utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -7709,7 +7778,7 @@ msgstr "" "Grundinställning: '%default'\n" "Gäller: ePub, MOBI utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7717,8 +7786,13 @@ msgid "" "Default: '%default'None\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Spara utdata från olika stadier av den stegvisa omvandling till den angivna " +"katalogen. Användbart om du är osäker på vilket stadium i " +"omvandlingsprocessen en bugg sker.\n" +"Grundinställning: '%default'None\n" +"Gäller: ePub, MOBI utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" @@ -7729,7 +7803,7 @@ msgstr "" "'[]'\n" "Gäller: ePub, MOBI utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7744,17 +7818,27 @@ msgstr "" "Grundinställning: '%default'\n" "Gäller: ePub, MOBI utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -"Tag visar boken har blivit läst.\n" -"Grundinställning: '%default'\n" -"Gäller: ePub, MOBI utformats" +"Inkludera \"titlar\" avsnittet i katalogen.\n" +"Grundinställning: \"%default\"\n" +"Gäller: Epub, MOBI utdataformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Inkludera \"Nyligen tillagda avsnittet i katalogen.\n" +"Grundinställning: \"%default\"\n" +"Gäller: Epub, MOBI utdataformat" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -7765,7 +7849,21 @@ msgstr "" "Grundinställning: '%default'\n" "Gäller: ePub, MOBI utformats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Sortera titlar med ledande tal som text, t.ex.,\n" +"\"2001: A Space Odyssey\" sorter som\n" +"\"Two Thousand One: A Space Odyssey\".\n" +"Grundinställning: \"%default\"\n" +"Gäller: Epub, MOBI utdataformat" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7780,6 +7878,16 @@ msgstr "" "Grundinställning: '%default'\n" "Gäller: ePub, MOBI utformats" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Tag visar boken har blivit läst.\n" +"Grundinställning: '%default'\n" +"Gäller: ePub, MOBI utformats" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -8113,7 +8221,7 @@ msgstr "Visa detaljerad utdata. Användbart för felsökning" msgid "Error: You must specify a catalog output file" msgstr "Fel: Du måste ange en katalog utfil" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8133,27 +8241,27 @@ msgstr "" "\n" "For help on an individual command: %%prog command --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "

Migrera gamla databasen med e-bokbibliotek i%s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "Kopiering %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "Komprimerande databas" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "Kontrollerar SQL integritet ..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "Kontroll av saknade filer." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "Kontrollerad id" @@ -8393,7 +8501,7 @@ msgstr "Stoppad" msgid "Finished" msgstr "Klar" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "Arbetar..." @@ -8532,75 +8640,83 @@ msgstr "Hämta inte senaste versionen av inbyggda recept från calibre-servern" msgid "Unknown News Source" msgstr "Okänd nyhetskälla" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "\"%s\" receptet behöver ett användarnamn och lösenord." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "Hämtningen är färdig" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "Misslyckades med att hämta följande artiklar:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "Misslyckades med att hämta delar av följande artiklar:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr " från " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "\tMisslyckade länkar:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "Kunde inte hämta artikel. Kör med-vv för att se orsaken" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "Hämtar flöden..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "Fick flöden från indexsidan" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "Försöker hämta omslaget ..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "Skapar masthead..." + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "Påbörjar hämtning [%d thread(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "Flöden ner laddningade till %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "Kunde inte ladda ner omslag: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "Laddar ner omslag från %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "Masthead bild hämtad" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "Namnlös Artikel" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "Artikel nerladdad: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "Artikelnerladdning misslyckades: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "Hämtar flöde" @@ -8728,6 +8844,13 @@ msgstr "Ladda inte ner CSS stilmallar." #~ msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" #~ msgstr "Användning: e-boksonvertera INFIL UTFIL [ALTERNATIV ..]" +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Denna RTF-fil har en funktion som calibre inte stöder. Konvertera det till " +#~ "HTML och sedan prova den." + #~ msgid "The author sort string" #~ msgstr "Författaresorterasträngen" @@ -8750,3 +8873,9 @@ msgstr "Ladda inte ner CSS stilmallar." #~ "tidsstämpel, titel, UUID.\n" #~ "Grundinställning: \"%default\"\n" #~ "Gäller: CSV, XML utformat" + +#~ msgid "E-book Options" +#~ msgstr "E-book alternativ" + +#~ msgid "Tags to exclude as genres (regex):" +#~ msgstr "Taggar att utesluta som genrer (regex):" diff --git a/src/calibre/translations/tr.po b/src/calibre/translations/tr.po index fb8379ab01..73777cdd34 100644 --- a/src/calibre/translations/tr.po +++ b/src/calibre/translations/tr.po @@ -7,19 +7,19 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:29+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-09 05:38+0000\n" +"Last-Translator: Yiğit Ateş \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-02-10 04:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" -msgstr "" +msgstr "Hiçbir şey yapmaz" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 @@ -30,7 +30,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,19 +38,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +65,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +99,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,23 +113,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -500,7 +500,7 @@ msgstr "IRex Iliad eBook reader ile bağlantı kur" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 msgid "John Schember" -msgstr "" +msgstr "John Schember" #: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 msgid "Device Interface" @@ -510,6 +510,10 @@ msgstr "Araç arayüzü" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "IRex Digital Reader 1000 eBook reader ile bağlantı kur" +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Iriver Story reader ile bağlantı kur" @@ -611,11 +615,11 @@ msgstr "%s bağlantı noktası bulunamadı. Yeniden başlatmayı deneyin." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." -msgstr "" +msgstr "%s disk sürücüsü bulunamıyor." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." -msgstr "" +msgstr "Bağlama yardımcısı bulunamıyor: %s." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 msgid "" @@ -625,7 +629,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 msgid "Unable to mount main memory (Error code: %d)" -msgstr "" +msgstr "Ana hafıza monte edilemiyor (Hata kodu: %d)" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 @@ -646,22 +650,22 @@ msgid "There is insufficient free space on the storage card" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" -msgstr "" +msgstr "Haberler" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" -msgstr "" +msgstr "Aygıtı Yapılandır" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" -msgstr "" +msgstr "aygıt sürücüleri için ayarlar" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" @@ -683,7 +687,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 msgid "Extra customization" -msgstr "" +msgstr "Ekstra kişiselleştirme" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 msgid "Communicate with an eBook reader." @@ -691,7 +695,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 msgid "Get device information..." -msgstr "" +msgstr "Aygıt bilgisini al..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 @@ -783,8 +787,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "" @@ -1532,83 +1536,83 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "Eser Adı" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -1792,7 +1796,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "" @@ -1819,74 +1823,74 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "Başlık Sayfası" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "" @@ -2182,7 +2186,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2234,183 +2239,188 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Araç çubuğu simge boyutu" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "" @@ -2425,7 +2435,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2441,7 +2451,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2450,7 +2460,7 @@ msgid "output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2460,7 +2470,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2486,32 +2496,53 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -2639,12 +2670,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2976,7 +3007,7 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "" @@ -2992,7 +3023,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "" @@ -3003,7 +3034,7 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3011,15 +3042,15 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3030,30 +3061,42 @@ msgstr "" msgid "Book " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "" @@ -3141,7 +3184,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "" @@ -3434,7 +3477,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -3649,8 +3692,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "" @@ -3660,7 +3703,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -3683,7 +3726,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -3804,127 +3847,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4018,252 +4061,256 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Tercihler" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4274,33 +4321,33 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "" @@ -4365,40 +4412,40 @@ msgstr "" msgid "ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4406,27 +4453,31 @@ msgid "" "below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "" @@ -4447,71 +4498,75 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4566,67 +4621,67 @@ msgstr "" msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -5295,23 +5350,23 @@ msgstr "" msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "Boyut (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "Tarih" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5319,25 +5374,25 @@ msgstr "" msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "" @@ -5366,7 +5421,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "" @@ -5413,52 +5468,52 @@ msgstr "E-kitap aç" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5614,11 +5669,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" @@ -5749,11 +5804,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5840,7 +5895,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "" @@ -5895,7 +5950,7 @@ msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "" @@ -5992,163 +6047,169 @@ msgstr "" msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Disk'e kayıt edilemiyor" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6156,101 +6217,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6413,7 +6474,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "" @@ -6468,7 +6529,7 @@ msgstr "" msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "" @@ -6528,88 +6589,88 @@ msgstr "" msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7045,7 +7106,7 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7054,7 +7115,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7062,14 +7123,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7078,14 +7139,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7094,21 +7155,37 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7118,6 +7195,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7367,7 +7451,7 @@ msgstr "" msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7379,27 +7463,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "" @@ -7608,7 +7692,7 @@ msgstr "" msgid "Finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -7741,75 +7825,83 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "Başlıksız Yazı" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "" diff --git a/src/calibre/translations/zh_TW.po b/src/calibre/translations/zh_TW.po index 9fa50f080d..16636c27fc 100644 --- a/src/calibre/translations/zh_TW.po +++ b/src/calibre/translations/zh_TW.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:28+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-02-10 04:36+0000\n" +"PO-Revision-Date: 2010-02-09 05:47+0000\n" +"Last-Translator: Chien Cheng Wei \n" "Language-Team: Traditional Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-02-10 04:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,7 +30,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -38,19 +38,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 -#: /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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:229 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:263 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 #: /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/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:221 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +65,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:907 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:912 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:978 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +99,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,23 +113,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /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/database2.py:703 #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1144 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1559 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1561 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1677 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 #: /home/kovid/work/calibre/src/calibre/library/server.py:721 #: /home/kovid/work/calibre/src/calibre/library/server.py:768 @@ -148,7 +148,7 @@ msgstr "基本" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" -msgstr "文件類型" +msgstr "檔案類型" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" @@ -480,6 +480,10 @@ msgstr "裝置介面" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "與 IRex Digital Reader 1000 eBook reader 通訊。" +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +msgid "Communicate with the IRex Digital Reader 800" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "" @@ -616,12 +620,12 @@ msgid "There is insufficient free space on the storage card" msgstr "記憶卡可用空間不足" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1459 msgid "News" msgstr "新聞" @@ -756,8 +760,8 @@ msgstr "转换的电子书中所含图像格式。您可以试验几种格式, msgid "Apply no processing to the image" msgstr "不对图片进行处理" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "頁" @@ -1513,83 +1517,83 @@ msgstr "" msgid "Comic" msgstr "漫画" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1120 msgid "Title" msgstr "标题" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1121 msgid "Author(s)" msgstr "作者" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 msgid "Publisher" msgstr "出版社" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "製作人" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "评论" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1124 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "标签" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "系列" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 msgid "Language" msgstr "語言" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1063 msgid "Timestamp" msgstr "時間戳記" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:381 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 msgid "Published" msgstr "已發佈" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:383 msgid "Rights" msgstr "所有權" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -1773,7 +1777,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Cover" msgstr "" @@ -1800,74 +1804,74 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 msgid "Main Text" msgstr "" @@ -2163,7 +2167,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2215,183 +2220,188 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1399 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:297 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:301 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 msgid "Saved" msgstr "" @@ -2406,7 +2416,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 @@ -2422,7 +2432,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 @@ -2431,7 +2441,7 @@ msgid "output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2441,7 +2451,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 @@ -2467,32 +2477,53 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1423 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1437 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "" +"Regex tips:\n" +"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " +"e.g., [Amazon Freebie]\n" +"- A regex pattern of a single dot excludes all genre tags, generating no " +"Genre Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Include 'Titles' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Include 'Recently Added' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "Sort numbers as text" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -2620,12 +2651,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2957,7 +2988,7 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "" @@ -2973,7 +3004,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "" @@ -2984,7 +3015,7 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -2992,15 +3023,15 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3011,30 +3042,42 @@ msgstr "" msgid "Book " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +msgid "Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 msgid "Do not add Table of Contents to book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +msgid "Kindle options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 +msgid "Masthead font:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "" @@ -3122,7 +3165,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 msgid "Choose the format to view" msgstr "" @@ -3415,7 +3458,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -3630,8 +3673,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1059 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "" @@ -3641,7 +3684,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" @@ -3664,7 +3707,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -3785,127 +3828,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -3999,252 +4042,256 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4255,33 +4302,33 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "" @@ -4346,40 +4393,40 @@ msgstr "" msgid "ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4387,27 +4434,31 @@ msgid "" "below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite author and title with author and title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "" @@ -4428,71 +4479,75 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4547,67 +4602,67 @@ msgstr "" msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:413 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:416 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:536 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:530 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:543 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:605 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -5276,23 +5331,23 @@ msgstr "" msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1122 msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1123 msgid "Date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 msgid "Rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 @@ -5300,25 +5355,25 @@ msgstr "" msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:882 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:883 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1058 msgid "Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Double click to edit me

" msgstr "" @@ -5347,7 +5402,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:431 msgid "No matches found" msgstr "" @@ -5394,52 +5449,52 @@ msgstr "" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5595,11 +5650,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" @@ -5730,11 +5785,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5821,7 +5876,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 msgid "Save only %s format to disk" msgstr "" @@ -5876,7 +5931,7 @@ msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1908 msgid "Choose a location for your ebook library." msgstr "" @@ -5973,163 +6028,169 @@ msgstr "" msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1657 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1494 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1400 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1410 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1413 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1414 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1428 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1442 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1493 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1522 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1638 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1694 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1656 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1678 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1679 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6137,101 +6198,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1695 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1736 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1737 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1780 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1837 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1860 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1888 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1861 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1874 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1889 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1917 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1918 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1996 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2000 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2052 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2071 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2079 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2080 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6394,7 +6455,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:669 msgid "Remember last used window size" msgstr "" @@ -6449,7 +6510,7 @@ msgstr "" msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 msgid "&Lookup in dictionary" msgstr "" @@ -6509,88 +6570,88 @@ msgstr "" msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:261 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:391 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:392 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:432 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:472 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:508 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:537 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:572 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:659 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:671 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "" "%prog [options] file\n" "\n" @@ -7026,7 +7087,7 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7035,7 +7096,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7043,14 +7104,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7059,14 +7120,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7075,21 +7136,37 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:304 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7099,6 +7176,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:310 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7348,7 +7432,7 @@ msgstr "" msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7360,27 +7444,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1703 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1732 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1749 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1879 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1901 msgid "Checked id" msgstr "" @@ -7589,7 +7673,7 @@ msgstr "" msgid "Finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -7722,75 +7806,83 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:639 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:649 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:730 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:751 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:756 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:764 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:858 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:868 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:880 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:915 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1150 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1221 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1232 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 msgid "Fetching feed" msgstr "" diff --git a/src/calibre/utils/config.py b/src/calibre/utils/config.py index 22e31c3005..4bde124c40 100644 --- a/src/calibre/utils/config.py +++ b/src/calibre/utils/config.py @@ -676,6 +676,27 @@ def _prefs(): prefs = ConfigProxy(_prefs()) +# Read tweaks +def read_tweaks(): + make_config_dir() + default_tweaks = P('default_tweaks.py', data=True) + tweaks_file = os.path.join(config_dir, 'tweaks.py') + if not os.path.exists(tweaks_file): + with open(tweaks_file, 'wb') as f: + f.write(default_tweaks) + l, g = {}, {} + try: + exec open(tweaks_file, 'rb') in g, l + except: + print 'Failed to load custom tweaks file' + traceback.print_exc() + dl, dg = {}, {} + exec default_tweaks in dg, dl + dl.update(l) + return dl + +tweaks = read_tweaks() + def migrate(): if hasattr(os, 'geteuid') and os.geteuid() == 0: return diff --git a/src/calibre/utils/date.py b/src/calibre/utils/date.py new file mode 100644 index 0000000000..9a433e3a6d --- /dev/null +++ b/src/calibre/utils/date.py @@ -0,0 +1,100 @@ +#!/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__ = '2010, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + +from datetime import datetime + +from dateutil.parser import parse +from dateutil.tz import tzlocal, tzutc + +class SafeLocalTimeZone(tzlocal): + ''' + Assume DST was not in effect for historical dates, if DST + data for the local timezone is not present in the operating system. + ''' + + def _isdst(self, dt): + try: + return tzlocal._isdst(self, dt) + except ValueError: + pass + return False + +utc_tz = _utc_tz = tzutc() +local_tz = _local_tz = SafeLocalTimeZone() + +def parse_date(date_string, assume_utc=False, as_utc=True, default=None): + ''' + Parse a date/time string into a timezone aware datetime object. The timezone + is always either UTC or the local timezone. + + :param assume_utc: If True and date_string does not specify a timezone, + assume UTC, otherwise assume local timezone. + + :param as_utc: If True, return a UTC datetime + + :param default: Missing fields are filled in from default. If None, the + current date is used. + ''' + if default is None: + func = datetime.utcnow if assume_utc else datetime.now + default = func().replace(hour=0, minute=0, second=0, microsecond=0, + tzinfo=_utc_tz if assume_utc else _local_tz) + dt = parse(date_string, default=default) + if dt.tzinfo is None: + dt = dt.replace(tzinfo=_utc_tz if assume_utc else _local_tz) + return dt.astimezone(_utc_tz if as_utc else _local_tz) + +def strptime(val, fmt, assume_utc=False, as_utc=True): + dt = datetime.strptime(val, fmt) + if dt.tzinfo is None: + dt = dt.replace(tzinfo=_utc_tz if assume_utc else _local_tz) + return dt.astimezone(_utc_tz if as_utc else _local_tz) + +def dt_factory(time_t, assume_utc=False, as_utc=True): + dt = datetime(*(time_t[0:6])) + if dt.tzinfo is None: + dt = dt.replace(tzinfo=_utc_tz if assume_utc else _local_tz) + return dt.astimezone(_utc_tz if as_utc else _local_tz) + +def qt_to_dt(qdate_or_qdatetime, as_utc=True): + from PyQt4.Qt import Qt + o = qdate_or_qdatetime + if hasattr(o, 'toUTC'): + # QDateTime + o = unicode(o.toUTC().toString(Qt.ISODate)) + return parse_date(o, assume_utc=True, as_utc=as_utc) + dt = datetime(o.year(), o.month(), o.day()).replace(tzinfo=_local_tz) + return dt.astimezone(_utc_tz if as_utc else _local_tz) + +def fromtimestamp(ctime, as_utc=True): + dt = datetime.utcfromtimestamp().replace(tzinfo=_utc_tz) + if not as_utc: + dt = dt.astimezone(_local_tz) + return dt + +def fromordinal(day, as_utc=True): + return datetime.fromordinal(day).replace( + tzinfo=_utc_tz if as_utc else _local_tz) + +def isoformat(date_time, assume_utc=False, as_utc=True, sep='T'): + if not hasattr(date_time, 'tzinfo'): + return unicode(date_time.isoformat()) + if date_time.tzinfo is None: + date_time = date_time.replace(tzinfo=_utc_tz if assume_utc else + _local_tz) + date_time = date_time.astimezone(_utc_tz if as_utc else _local_tz) + return unicode(date_time.isoformat(sep)) + +def now(): + return datetime.now().replace(tzinfo=_local_tz) + +def utcnow(): + return datetime.utcnow().replace(tzinfo=_utc_tz) + +def utcfromtimestamp(stamp): + return datetime.utcfromtimestamp(stamp).replace(tzinfo=_utc_tz) diff --git a/src/calibre/utils/genshi/__init__.py b/src/calibre/utils/genshi/__init__.py index 51843d2b69..813a3e4c99 100644 --- a/src/calibre/utils/genshi/__init__.py +++ b/src/calibre/utils/genshi/__init__.py @@ -20,10 +20,7 @@ independently of where or how they are produced. """ __docformat__ = 'restructuredtext en' -try: - __version__ = __import__('pkg_resources').get_distribution('Genshi').version -except: - pass +__version__ = '0.5.0' from calibre.utils.genshi.core import * from calibre.utils.genshi.input import ParseError, XML, HTML diff --git a/src/calibre/utils/mdns.py b/src/calibre/utils/mdns.py index 033b903e11..74547b9573 100644 --- a/src/calibre/utils/mdns.py +++ b/src/calibre/utils/mdns.py @@ -3,46 +3,66 @@ __license__ = 'GPL 3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import socket +import socket, time, atexit _server = None -def get_external_ip(): +def _get_external_ip(): 'Get IP address of interface used to connect to the outside world' try: ipaddr = socket.gethostbyname(socket.gethostname()) except: ipaddr = '127.0.0.1' if ipaddr == '127.0.0.1': - try: - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - s.connect(('google.com', 0)) - ipaddr = s.getsockname()[0] - except: - pass + for addr in ('192.0.2.0', '198.51.100.0', 'google.com'): + try: + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.connect((addr, 0)) + ipaddr = s.getsockname()[0] + if ipaddr != '127.0.0.1': + return ipaddr + except: + time.sleep(0.3) return ipaddr +_ext_ip = None +def get_external_ip(): + global _ext_ip + if _ext_ip is None: + _ext_ip = _get_external_ip() + return _ext_ip + def start_server(): global _server if _server is None: from calibre.utils.Zeroconf import Zeroconf - _server = Zeroconf() + try: + _server = Zeroconf() + except: + time.sleep(0.2) + _server = Zeroconf() + + atexit.register(stop_server) + return _server def publish(desc, type, port, properties=None, add_hostname=True): ''' Publish a service. - + :param desc: Description of service :param type: Name and type of service. For example _stanza._tcp :param port: Port the service listens on - :param properties: An optional dictionary whose keys and values will be put - into the TXT record. + :param properties: An optional dictionary whose keys and values will be put + into the TXT record. ''' port = int(port) server = start_server() - hostname = socket.gethostname().partition('.')[0] if add_hostname: + try: + hostname = socket.gethostname().partition('.')[0] + except: + hostname = 'Unknown' desc += ' (on %s)'%hostname local_ip = get_external_ip() type = type+'.local.' @@ -53,8 +73,11 @@ def publish(desc, type, port, properties=None, add_hostname=True): properties=properties, server=hostname+'.local.') server.registerService(service) - + def stop_server(): global _server if _server is not None: - _server.close() + try: + _server.close() + finally: + _server = None diff --git a/src/calibre/utils/zipfile.py b/src/calibre/utils/zipfile.py index 56e96ee8eb..9943119968 100644 --- a/src/calibre/utils/zipfile.py +++ b/src/calibre/utils/zipfile.py @@ -3,10 +3,14 @@ Read and write ZIP files. Modified by Kovid Goyal to support replacing files in a zip archive. """ from __future__ import with_statement -from calibre.ptempfile import TemporaryDirectory -from calibre import sanitize_file_name import struct, os, time, sys, shutil import binascii, cStringIO +from contextlib import closing +from tempfile import SpooledTemporaryFile + +from calibre import sanitize_file_name +from calibre.constants import filesystem_encoding +from calibre.ebooks.chardet import detect try: import zlib # We may need its compression method @@ -132,6 +136,16 @@ _CD64_NUMBER_ENTRIES_TOTAL = 7 _CD64_DIRECTORY_SIZE = 8 _CD64_OFFSET_START_CENTDIR = 9 +def decode_arcname(name): + if not isinstance(name, unicode): + encoding = detect(name)['encoding'] + try: + name = name.decode(encoding) + except: + name = name.decode('utf-8', 'replace') + return name.encode(filesystem_encoding, 'replace') + + def is_zipfile(filename): """Quickly see if file is a ZIP file by checking the magic number.""" try: @@ -222,7 +236,8 @@ def _EndRecData(fpin): endrec = list(struct.unpack(structEndArchive, recData)) comment = data[start+sizeEndCentDir:] # check that comment length is correct - if endrec[_ECD_COMMENT_SIZE] == len(comment): + # Kovid: Added == 0 check as some zip files apparently dont set this + if endrec[_ECD_COMMENT_SIZE] == 0 or endrec[_ECD_COMMENT_SIZE] == len(comment): # Append the archive comment and start offset endrec.append(comment) endrec.append(maxCommentStart + start) @@ -452,6 +467,7 @@ class ZipExtFile: def __init__(self, fileobj, zipinfo, decrypt=None): self.fileobj = fileobj + self.orig_pos = fileobj.tell() self.decrypter = decrypt self.bytes_read = 0L self.rawbuffer = '' @@ -567,6 +583,20 @@ class ZipExtFile: result.append(line) return result + def read_raw(self): + pos = self.fileobj.tell() + self.fileobj.seek(self.orig_pos) + bytes_to_read = self.compress_size + if self.decrypter is not None: + bytes_to_read -= 12 + raw = b'' + + if bytes_to_read > 0: + raw = self.fileobj.read(bytes_to_read) + self.fileobj.seek(pos) + return raw + + def read(self, size = None): # act like file() obj and return empty string if size is 0 if size == 0: @@ -675,6 +705,7 @@ class ZipFile: self.debug = 0 # Level of printing: 0 through 3 self.NameToInfo = {} # Find file info given name self.filelist = [] # List of ZipInfo instances for archive + self.extract_mapping = {} self.compression = compression # Method of compression self.mode = key = mode.replace('b', '')[0] self.pwd = None @@ -909,6 +940,11 @@ class ZipFile: """Return file bytes (as a string) for name.""" return self.open(name, "r", pwd).read() + def read_raw(self, name, mode="r", pwd=None): + """Return the raw bytes in the zipfile corresponding to name.""" + zef = self.open(name, mode=mode, pwd=pwd) + return zef.read_raw() + def open(self, name, mode="r", pwd=None): """Return file-like object for 'name'.""" if mode not in ("r", "U", "rU"): @@ -1023,10 +1059,10 @@ class ZipFile: targetpath = targetpath[:-1] # don't include leading "/" from file name if present - if os.path.isabs(member.filename): - targetpath = os.path.join(targetpath, member.filename[1:]) - else: - targetpath = os.path.join(targetpath, member.filename) + fname = decode_arcname(member.filename) + if fname.startswith('/'): + fname = fname[1:] + targetpath = os.path.join(targetpath, fname) targetpath = os.path.normpath(targetpath) @@ -1037,17 +1073,16 @@ class ZipFile: if upperdirs and not os.path.exists(upperdirs): os.makedirs(upperdirs) - source = self.open(member, pwd=pwd) if not os.path.exists(targetpath): # Could be a previously automatically created directory - try: - target = open(targetpath, "wb") - except IOError: - targetpath = sanitize_file_name(targetpath) - target = open(targetpath, "wb") - shutil.copyfileobj(source, target) - source.close() - target.close() - + with closing(self.open(member, pwd=pwd)) as source: + try: + with open(targetpath, 'wb') as target: + shutil.copyfileobj(source, target) + except: + targetpath = sanitize_file_name(targetpath) + with open(targetpath, 'wb') as target: + shutil.copyfileobj(source, target) + self.extract_mapping[member.filename] = targetpath return targetpath def _writecheck(self, zinfo): @@ -1144,10 +1179,13 @@ class ZipFile: self.filelist.append(zinfo) self.NameToInfo[zinfo.filename] = zinfo - def writestr(self, zinfo_or_arcname, bytes, permissions=0600, compression=ZIP_DEFLATED): + def writestr(self, zinfo_or_arcname, bytes, permissions=0600, + compression=ZIP_DEFLATED, raw_bytes=False): """Write a file into the archive. The contents is the string 'bytes'. 'zinfo_or_arcname' is either a ZipInfo instance or the name of the file in the archive.""" + assert not raw_bytes or (raw_bytes and + isinstance(zinfo_or_arcname, ZipInfo)) if not isinstance(zinfo_or_arcname, ZipInfo): if isinstance(zinfo_or_arcname, unicode): zinfo_or_arcname = zinfo_or_arcname.encode('utf-8') @@ -1162,18 +1200,20 @@ class ZipFile: raise RuntimeError( "Attempt to write to ZIP archive that was already closed") - zinfo.file_size = len(bytes) # Uncompressed size + if not raw_bytes: + zinfo.file_size = len(bytes) # Uncompressed size zinfo.header_offset = self.fp.tell() # Start of header bytes self._writecheck(zinfo) self._didModify = True - zinfo.CRC = crc32(bytes) & 0xffffffff # CRC-32 checksum - if zinfo.compress_type == ZIP_DEFLATED: - co = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION, - zlib.DEFLATED, -15) - bytes = co.compress(bytes) + co.flush() - zinfo.compress_size = len(bytes) # Compressed size - else: - zinfo.compress_size = zinfo.file_size + if not raw_bytes: + zinfo.CRC = crc32(bytes) & 0xffffffff # CRC-32 checksum + if zinfo.compress_type == ZIP_DEFLATED: + co = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION, + zlib.DEFLATED, -15) + bytes = co.compress(bytes) + co.flush() + zinfo.compress_size = len(bytes) # Compressed size + else: + zinfo.compress_size = zinfo.file_size zinfo.header_offset = self.fp.tell() # Start of header bytes self.fp.write(zinfo.FileHeader()) self.fp.write(bytes) @@ -1317,7 +1357,7 @@ class ZipFile: def safe_replace(zipstream, name, datastream): ''' Replace a file in a zip file in a safe manner. This proceeds by extracting - and re-creating the zipfile. This is neccessary because :method:`ZipFile.replace` + and re-creating the zipfile. This is necessary because :method:`ZipFile.replace` sometimes created corrupted zip files. :param zipstream: Stream from a zip file @@ -1325,21 +1365,20 @@ def safe_replace(zipstream, name, datastream): :param datastream: The data to replace the file with. ''' z = ZipFile(zipstream, 'r') - names = z.infolist() - with TemporaryDirectory('_zipfile_replace') as tdir: - z.extractall(path=tdir) + with SpooledTemporaryFile(max_size=100*1024*1024) as temp: + ztemp = ZipFile(temp, 'w') + for obj in z.infolist(): + if obj.filename == name: + ztemp.writestr(obj, datastream.read()) + else: + ztemp.writestr(obj, z.read_raw(obj), raw_bytes=True) + ztemp.close() + z.close() + temp.seek(0) zipstream.seek(0) zipstream.truncate() - z = ZipFile(zipstream, 'w') - path = os.path.join(tdir, *name.split('/')) - shutil.copyfileobj(datastream, open(path, 'wb')) - for info in names: - current = os.path.join(tdir, *info.filename.split('/')) - if os.path.isdir(current): - z.writestr(info.filename+'/', '', 0700) - else: - z.write(current, info.filename, compress_type=info.compress_type) - z.close() + shutil.copyfileobj(temp, zipstream) + zipstream.flush() class PyZipFile(ZipFile): """Class to create ZIP archives with Python library files and packages.""" diff --git a/src/calibre/web/feeds/__init__.py b/src/calibre/web/feeds/__init__.py index 886a825846..bf2c72be1a 100644 --- a/src/calibre/web/feeds/__init__.py +++ b/src/calibre/web/feeds/__init__.py @@ -6,17 +6,16 @@ __copyright__ = '2008, Kovid Goyal ' Contains the logic for parsing feeds. ''' import time, traceback, copy, re -from datetime import datetime + +from lxml import html from calibre.web.feeds.feedparser import parse from calibre.utils.logging import default_log from calibre import entity_to_unicode -from lxml import html +from calibre.utils.date import dt_factory, utcnow, local_tz class Article(object): - time_offset = datetime.now() - datetime.utcnow() - def __init__(self, id, title, url, author, summary, published, content): self.downloaded = False self.id = id @@ -48,8 +47,8 @@ class Article(object): self.author = author self.content = content self.date = published - self.utctime = datetime(*self.date[:6]) - self.localtime = self.utctime + self.time_offset + self.utctime = dt_factory(self.date, assume_utc=True, as_utc=True) + self.localtime = self.utctime.astimezone(local_tz) @dynamic_property def title(self): @@ -146,7 +145,7 @@ class Feed(object): content = item.get('content', '') author = item.get('author', '') article = Article(id, title, link, author, description, published, content) - delta = datetime.utcnow() - article.utctime + delta = utcnow() - article.utctime if delta.days*24*3600 + delta.seconds <= 24*3600*self.oldest_article: self.articles.append(article) else: @@ -183,7 +182,7 @@ class Feed(object): if not link and not content: return article = Article(id, title, link, author, description, published, content) - delta = datetime.utcnow() - article.utctime + delta = utcnow() - article.utctime if delta.days*24*3600 + delta.seconds <= 24*3600*self.oldest_article: self.articles.append(article) else: diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index d182d856d8..6e9c72de26 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -11,7 +11,6 @@ import os, time, traceback, re, urlparse, sys from collections import defaultdict from functools import partial from contextlib import nested, closing -from datetime import datetime from calibre import browser, __appname__, iswindows, \ @@ -29,7 +28,7 @@ from calibre.web.fetch.simple import RecursiveFetcher from calibre.utils.threadpool import WorkRequest, ThreadPool, NoResultsPending from calibre.ptempfile import PersistentTemporaryFile, \ PersistentTemporaryDirectory - +from calibre.utils.date import now as nowf class BasicNewsRecipe(Recipe): ''' @@ -615,10 +614,12 @@ class BasicNewsRecipe(Recipe): del o['onload'] for script in list(soup.findAll('noscript')): - script.extract() + script.extract() for attr in self.remove_attributes: for x in soup.findAll(attrs={attr:True}): del x[attr] + for base in list(soup.findAll('base')): + base.extract() return self.postprocess_html(soup, first_fetch) @@ -761,14 +762,19 @@ class BasicNewsRecipe(Recipe): self.download_cover() self.report_progress(0, _('Generating masthead...')) self.masthead_path = None + try: murl = self.get_masthead_url() except: self.log.exception('Failed to get masthead url') murl = None + if murl is not None: + # Try downloading the user-supplied masthead_url + # Failure sets self.masthead_path to None self.download_masthead(murl) if self.masthead_path is None: + self.log.info("Synthesizing mastheadImage") self.masthead_path = os.path.join(self.output_dir, 'mastheadImage.jpg') try: self.default_masthead_image(self.masthead_path) @@ -916,7 +922,7 @@ class BasicNewsRecipe(Recipe): try: self._download_masthead(url) except: - self.log.exception("Failed to download supplied masthead_url, synthesizing") + self.log.exception("Failed to download supplied masthead_url") def default_cover(self, cover_file): ''' @@ -989,6 +995,22 @@ class BasicNewsRecipe(Recipe): MI_HEIGHT = 60 def default_masthead_image(self, out_path): + from calibre.ebooks.conversion.config import load_defaults + from calibre.utils.fonts import fontconfig + font_path = default_font = P('fonts/liberation/LiberationSerif-Bold.ttf') + recs = load_defaults('mobi_output') + masthead_font_family = recs.get('masthead_font', 'Default') + + if masthead_font_family != 'Default': + masthead_font = fontconfig.files_for_family(masthead_font_family) + # Assume 'normal' always in dict, else use default + # {'normal': (path_to_font, friendly name)} + if 'normal' in masthead_font: + font_path = masthead_font['normal'][0] + + if not font_path or not os.access(font_path, os.R_OK): + font_path = default_font + try: from PIL import Image, ImageDraw, ImageFont Image, ImageDraw, ImageFont @@ -997,7 +1019,10 @@ class BasicNewsRecipe(Recipe): img = Image.new('RGB', (self.MI_WIDTH, self.MI_HEIGHT), 'white') draw = ImageDraw.Draw(img) - font = ImageFont.truetype(P('fonts/liberation/LiberationSerif-Bold.ttf'), 48) + try: + font = ImageFont.truetype(font_path, 48) + except: + font = ImageFont.truetype(default_font, 48) text = self.get_masthead_title().encode('utf-8') width, height = draw.textsize(text, font=font) left = max(int((self.MI_WIDTH - width)/2.), 0) @@ -1054,11 +1079,11 @@ class BasicNewsRecipe(Recipe): mi.publisher = __appname__ mi.author_sort = __appname__ mi.publication_type = 'periodical:'+self.publication_type - mi.timestamp = datetime.now() + mi.timestamp = nowf() mi.comments = self.description if not isinstance(mi.comments, unicode): mi.comments = mi.comments.decode('utf-8', 'replace') - mi.pubdate = datetime.now() + mi.pubdate = nowf() opf_path = os.path.join(dir, 'index.opf') ncx_path = os.path.join(dir, 'index.ncx') diff --git a/src/calibre/web/feeds/recipes/collection.py b/src/calibre/web/feeds/recipes/collection.py index 478947fcd9..b2b01b00e5 100644 --- a/src/calibre/web/feeds/recipes/collection.py +++ b/src/calibre/web/feeds/recipes/collection.py @@ -8,13 +8,14 @@ __docformat__ = 'restructuredtext en' import os, calendar from threading import RLock -from datetime import datetime, timedelta +from datetime import timedelta from lxml import etree from lxml.builder import ElementMaker -from dateutil import parser from calibre import browser +from calibre.utils.date import parse_date, now as nowf, utcnow, tzlocal, \ + isoformat, fromordinal NS = 'http://calibre-ebook.com/recipe_collection' E = ElementMaker(namespace=NS, nsmap={None:NS}) @@ -125,7 +126,12 @@ class SchedulerConfig(object): self.lock = RLock() if os.access(self.conf_path, os.R_OK): with ExclusiveFile(self.conf_path) as f: - self.root = etree.fromstring(f.read()) + try: + self.root = etree.fromstring(f.read()) + except: + print 'Failed to read recipe scheduler config' + import traceback + traceback.print_exc() elif os.path.exists(old_conf_path): self.migrate_old_conf(old_conf_path) @@ -151,17 +157,17 @@ class SchedulerConfig(object): ld = x.get('last_downloaded', None) if ld and last_downloaded is None: try: - last_downloaded = parser.parse(ld) + last_downloaded = parse_date(ld) except: pass self.root.remove(x) break if last_downloaded is None: - last_downloaded = datetime.fromordinal(1) + last_downloaded = fromordinal(1) sr = E.scheduled_recipe({ 'id' : recipe.get('id'), 'title': recipe.get('title'), - 'last_downloaded':last_downloaded.isoformat(), + 'last_downloaded':isoformat(last_downloaded), }, self.serialize_schedule(schedule_type, schedule)) self.root.append(sr) self.write_scheduler_file() @@ -189,7 +195,7 @@ class SchedulerConfig(object): def update_last_downloaded(self, recipe_id): with self.lock: - now = datetime.utcnow() + now = utcnow() for x in self.iter_recipes(): if x.get('id', False) == recipe_id: typ, sch, last_downloaded = self.un_serialize_schedule(x) @@ -199,7 +205,7 @@ class SchedulerConfig(object): if abs(actual_interval - nominal_interval) < \ timedelta(hours=1): now = last_downloaded + nominal_interval - x.set('last_downloaded', now.isoformat()) + x.set('last_downloaded', isoformat(now)) break self.write_scheduler_file() @@ -243,20 +249,18 @@ class SchedulerConfig(object): sch = float(sch) elif typ == 'day/time': sch = list(map(int, sch.split(':'))) - return typ, sch, parser.parse(recipe.get('last_downloaded')) + return typ, sch, parse_date(recipe.get('last_downloaded')) def recipe_needs_to_be_downloaded(self, recipe): try: typ, sch, ld = self.un_serialize_schedule(recipe) except: return False - utcnow = datetime.utcnow() if typ == 'interval': - return utcnow - ld > timedelta(sch) + return utcnow() - ld > timedelta(sch) elif typ == 'day/time': - now = datetime.now() - offset = now - utcnow - ld_local = ld + offset + now = nowf() + ld_local = ld.astimezone(tzlocal()) day, hour, minute = sch is_today = day < 0 or day > 6 or \ diff --git a/src/calibre/web/fetch/simple.py b/src/calibre/web/fetch/simple.py index f97382190d..fc87e7fdcd 100644 --- a/src/calibre/web/fetch/simple.py +++ b/src/calibre/web/fetch/simple.py @@ -305,8 +305,6 @@ class RecursiveFetcher(object): iurl = tag['src'] if callable(self.image_url_processor): iurl = self.image_url_processor(baseurl, iurl) - ext = os.path.splitext(iurl)[1] - ext = ext[:5] if not urlparse.urlsplit(iurl).scheme: iurl = urlparse.urljoin(baseurl, iurl, False) with self.imagemap_lock: @@ -319,7 +317,7 @@ class RecursiveFetcher(object): self.log.exception('Could not fetch image %s'% iurl) continue c += 1 - fname = ascii_filename('img'+str(c)+ext) + fname = ascii_filename('img'+str(c)) if isinstance(fname, unicode): fname = fname.encode('ascii', 'replace') imgpath = os.path.join(diskpath, fname+'.jpg') diff --git a/src/cssutils/__init__.py b/src/cssutils/__init__.py deleted file mode 100644 index b3daf82688..0000000000 --- a/src/cssutils/__init__.py +++ /dev/null @@ -1,416 +0,0 @@ -#!/usr/bin/env python -"""cssutils - CSS Cascading Style Sheets library for Python - - Copyright (C) 2004-2009 Christof Hoeke - - cssutils is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . - - -A Python package to parse and build CSS Cascading Style Sheets. DOM only, not -any rendering facilities! - -Based upon and partly implementing the following specifications : - -`CSS 2.1 `__ - General CSS rules and properties are defined here -`CSS 2.1 Errata `__ - A few errata, mainly the definition of CHARSET_SYM tokens -`CSS3 Module: Syntax `__ - Used in parts since cssutils 0.9.4. cssutils tries to use the features from - CSS 2.1 and CSS 3 with preference to CSS3 but as this is not final yet some - parts are from CSS 2.1 -`MediaQueries `__ - MediaQueries are part of ``stylesheets.MediaList`` since v0.9.4, used in - @import and @media rules. -`Namespaces `__ - Added in v0.9.1, updated to definition in CSSOM in v0.9.4, updated in 0.9.5 - for dev version -`Selectors `__ - The selector syntax defined here (and not in CSS 2.1) should be parsable - with cssutils (*should* mind though ;) ) - -`DOM Level 2 Style CSS `__ - DOM for package css -`DOM Level 2 Style Stylesheets `__ - DOM for package stylesheets -`CSSOM `__ - A few details (mainly the NamespaceRule DOM) is taken from here. Plan is - to move implementation to the stuff defined here which is newer but still - no REC so might change anytime... - - -The cssutils tokenizer is a customized implementation of `CSS3 Module: Syntax -(W3C Working Draft 13 August 2003) `__ which -itself is based on the CSS 2.1 tokenizer. It tries to be as compliant as -possible but uses some (helpful) parts of the CSS 2.1 tokenizer. - -I guess cssutils is neither CSS 2.1 nor CSS 3 compliant but tries to at least -be able to parse both grammars including some more real world cases (some CSS -hacks are actually parsed and serialized). Both official grammars are not final -nor bugfree but still feasible. cssutils aim is not to be fully compliant to -any CSS specification (the specifications seem to be in a constant flow anyway) -but cssutils *should* be able to read and write as many as possible CSS -stylesheets "in the wild" while at the same time implement the official APIs -which are well documented. Some minor extensions are provided as well. - -Please visit http://cthedot.de/cssutils/ for more details. - - -Tested with Python 2.6 on Windows 7 mainly. - - -This library may be used ``from cssutils import *`` which -import subpackages ``css`` and ``stylesheets``, CSSParser and -CSSSerializer classes only. - -Usage may be:: - - >>> from cssutils import * - >>> parser = CSSParser() - >>> sheet = parser.parseString(u'a { color: red}') - >>> print sheet.cssText - a { - color: red - } - -""" -__all__ = ['css', 'stylesheets', 'CSSParser', 'CSSSerializer'] -__docformat__ = 'restructuredtext' -__author__ = 'Christof Hoeke with contributions by Walter Doerwald' -__date__ = '$LastChangedDate:: 2009-11-26 16:31:32 -0700 #$:' - -VERSION = '0.9.7a1' - -__version__ = '%s $Id: __init__.py 1892 2009-11-26 23:31:32Z cthedot $' % VERSION - -import codec -import os.path -import urllib -import urlparse -import xml.dom - -# order of imports is important (partly circular) -from helper import Deprecated -import errorhandler -log = errorhandler.ErrorHandler() - -import css -import stylesheets -import util -from parse import CSSParser - -from serialize import CSSSerializer -ser = CSSSerializer() - -from profiles import Profiles -profile = Profiles(log=log) - -# used by Selector defining namespace prefix '*' -_ANYNS = -1 - -class DOMImplementationCSS(object): - """This interface allows the DOM user to create a CSSStyleSheet - outside the context of a document. There is no way to associate - the new CSSStyleSheet with a document in DOM Level 2. - - This class is its *own factory*, as it is given to - xml.dom.registerDOMImplementation which simply calls it and receives - an instance of this class then. - """ - _features = [ - ('css', '1.0'), - ('css', '2.0'), - ('stylesheets', '1.0'), - ('stylesheets', '2.0') - ] - - def createCSSStyleSheet(self, title, media): - """ - Creates a new CSSStyleSheet. - - title of type DOMString - The advisory title. See also the Style Sheet Interfaces - section. - media of type DOMString - The comma-separated list of media associated with the new style - sheet. See also the Style Sheet Interfaces section. - - returns - CSSStyleSheet: A new CSS style sheet. - - TODO: DOMException - SYNTAX_ERR: Raised if the specified media string value has a - syntax error and is unparsable. - """ - return css.CSSStyleSheet(title=title, media=media) - - def createDocument(self, *args): - # not needed to HTML, also not for CSS? - raise NotImplementedError - - def createDocumentType(self, *args): - # not needed to HTML, also not for CSS? - raise NotImplementedError - - def hasFeature(self, feature, version): - return (feature.lower(), unicode(version)) in self._features - -xml.dom.registerDOMImplementation('cssutils', DOMImplementationCSS) - - -def parseString(*a, **k): - return CSSParser().parseString(*a, **k) -parseString.__doc__ = CSSParser.parseString.__doc__ - -def parseFile(*a, **k): - return CSSParser().parseFile(*a, **k) -parseFile.__doc__ = CSSParser.parseFile.__doc__ - -def parseUrl(*a, **k): - return CSSParser().parseUrl(*a, **k) -parseUrl.__doc__ = CSSParser.parseUrl.__doc__ - -@Deprecated('Use cssutils.parseFile() instead.') -def parse(*a, **k): - return parseFile(*a, **k) -parse.__doc__ = CSSParser.parse.__doc__ - -def parseStyle(cssText, encoding='utf-8'): - """Parse given `cssText` which is assumed to be the content of - a HTML style attribute. - - :param cssText: - CSS string to parse - :param encoding: - It will be used to decode `cssText` if given as a (byte) - string. - :returns: - :class:`~cssutils.css.CSSStyleDeclaration` - """ - if isinstance(cssText, str): - cssText = cssText.decode(encoding) - style = css.CSSStyleDeclaration() - style.cssText = cssText - return style - -# set "ser", default serializer -def setSerializer(serializer): - """Set the global serializer used by all class in cssutils.""" - global ser - ser = serializer - -def getUrls(sheet): - """Retrieve all ``url(urlstring)`` values (in e.g. - :class:`cssutils.css.CSSImportRule` or :class:`cssutils.css.CSSValue` - objects of given `sheet`. - - :param sheet: - :class:`cssutils.css.CSSStyleSheet` object whose URLs are yielded - - This function is a generator. The generated URL values exclude ``url(`` and - ``)`` and surrounding single or double quotes. - """ - for importrule in (r for r in sheet if r.type == r.IMPORT_RULE): - yield importrule.href - - def getUrl(v): - if v.CSS_PRIMITIVE_VALUE == v.cssValueType and\ - v.CSS_URI == v.primitiveType: - return v.getStringValue() - - def styleDeclarations(base): - "recursive generator to find all CSSStyleDeclarations" - if hasattr(base, 'cssRules'): - for rule in base.cssRules: - for s in styleDeclarations(rule): - yield s - elif hasattr(base, 'style'): - yield base.style - - for style in styleDeclarations(sheet): - for p in style.getProperties(all=True): - v = p.cssValue - if v.CSS_VALUE_LIST == v.cssValueType: - for item in v: - u = getUrl(item) - if u is not None: - yield u - elif v.CSS_PRIMITIVE_VALUE == v.cssValueType: - u = getUrl(v) - if u is not None: - yield u - -def replaceUrls(sheet, replacer, ignoreImportRules=False): - """Replace all URLs in :class:`cssutils.css.CSSImportRule` or - :class:`cssutils.css.CSSValue` objects of given `sheet`. - - :param sheet: - :class:`cssutils.css.CSSStyleSheet` which is changed - :param replacer: - a function which is called with a single argument `urlstring` which - is the current value of each url() excluding ``url(`` and ``)`` and - surrounding single or double quotes. - :param ignoreImportRules: - if ``True`` does not call `replacer` with URLs from @import rules. - """ - if not ignoreImportRules: - for importrule in (r for r in sheet if r.type == r.IMPORT_RULE): - importrule.href = replacer(importrule.href) - - def setProperty(v): - if v.CSS_PRIMITIVE_VALUE == v.cssValueType and\ - v.CSS_URI == v.primitiveType: - v.setStringValue(v.CSS_URI, - replacer(v.getStringValue())) - - def styleDeclarations(base): - "recursive generator to find all CSSStyleDeclarations" - if hasattr(base, 'cssRules'): - for rule in base.cssRules: - for s in styleDeclarations(rule): - yield s - elif hasattr(base, 'style'): - yield base.style - - for style in styleDeclarations(sheet): - for p in style.getProperties(all=True): - v = p.cssValue - if v.CSS_VALUE_LIST == v.cssValueType: - for item in v: - setProperty(item) - elif v.CSS_PRIMITIVE_VALUE == v.cssValueType: - setProperty(v) - -def resolveImports(sheet, target=None): - """Recurcively combine all rules in given `sheet` into a `target` sheet. - @import rules which use media information are tried to be wrapped into - @media rules so keeping the media information. This may not work in - all instances (if e.g. an @import rule itself contains an @import rule - with different media infos or if it contains rules which may not be - used inside an @media block like @namespace rules.). In these cases - the @import rule is kept as in the original sheet and a WARNING is issued. - - :param sheet: - in this given :class:`cssutils.css.CSSStyleSheet` all import rules are - resolved and added to a resulting *flat* sheet. - :param target: - A :class:`cssutils.css.CSSStyleSheet` object which will be the - resulting *flat* sheet if given - :returns: given `target` or a new :class:`cssutils.css.CSSStyleSheet` - object - """ - if not target: - target = css.CSSStyleSheet(href=sheet.href, - media=sheet.media, - title=sheet.title) - - def getReplacer(targetbase): - "Return a replacer which uses base to return adjusted URLs" - basesch, baseloc, basepath, basequery, basefrag = urlparse.urlsplit(targetbase) - basepath, basepathfilename = os.path.split(basepath) - - def replacer(url): - scheme, location, path, query, fragment = urlparse.urlsplit(url) - if not scheme and not location and not path.startswith(u'/'): - # relative - path, filename = os.path.split(path) - combined = os.path.normpath(os.path.join(basepath, path, filename)) - return urllib.pathname2url(combined) - else: - # keep anything absolute - return url - - return replacer - - for rule in sheet.cssRules: - if rule.type == rule.CHARSET_RULE: - pass - elif rule.type == rule.IMPORT_RULE: - log.info(u'Processing @import %r' % rule.href, neverraise=True) - - if rule.styleSheet: - # add all rules of @import to current sheet - target.add(css.CSSComment(cssText=u'/* START @import "%s" */' - % rule.href)) - - try: - # nested imports - importedSheet = resolveImports(rule.styleSheet) - except xml.dom.HierarchyRequestErr, e: - log.warn(u'@import: Cannot resolve target, keeping rule: %s' - % e, neverraise=True) - target.add(rule) - else: - # adjust relative URI references - log.info(u'@import: Adjusting paths for %r' % rule.href, - neverraise=True) - replaceUrls(importedSheet, - getReplacer(rule.href), - ignoreImportRules=True) - - # might have to wrap rules in @media if media given - if rule.media.mediaText == u'all': - mediaproxy = None - else: - keepimport = False - for r in importedSheet: - # check if rules present which may not be - # combined with media - if r.type not in (r.COMMENT, - r.STYLE_RULE, - r.IMPORT_RULE): - keepimport = True - break - if keepimport: - log.warn(u'Cannot combine imported sheet with' - u' given media as other rules then' - u' comments or stylerules found %r,' - u' keeping %r' % (r, - rule.cssText), - neverraise=True) - target.add(rule) - continue - - # wrap in @media if media is not `all` - log.info(u'@import: Wrapping some rules in @media ' - u' to keep media: %s' - % rule.media.mediaText, neverraise=True) - mediaproxy = css.CSSMediaRule(rule.media.mediaText) - - for r in importedSheet: - if mediaproxy: - mediaproxy.add(r) - else: - # add to top sheet directly but are difficult anyway - target.add(r) - - if mediaproxy: - target.add(mediaproxy) - - else: - # keep @import as it is - log.error(u'Cannot get referenced stylesheet %r, keeping rule' - % rule.href, neverraise=True) - target.add(rule) - - - - else: - target.add(rule) - - return target - - -if __name__ == '__main__': - print __doc__ diff --git a/src/cssutils/_fetch.py b/src/cssutils/_fetch.py deleted file mode 100644 index af18bc5640..0000000000 --- a/src/cssutils/_fetch.py +++ /dev/null @@ -1,44 +0,0 @@ -"""Default URL reading functions""" -__all__ = ['_defaultFetcher'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: tokenize2.py 1547 2008-12-10 20:42:26Z cthedot $' - -from cssutils import VERSION -import encutils -import errorhandler -import urllib2 -import util - -log = errorhandler.ErrorHandler() - -def _defaultFetcher(url): - """Retrieve data from ``url``. cssutils default implementation of fetch - URL function. - - Returns ``(encoding, string)`` or ``None`` - """ - request = urllib2.Request(url) - request.add_header('User-agent', - 'cssutils %s (http://www.cthedot.de/cssutils/)' % VERSION) - try: - res = urllib2.urlopen(request) - except OSError, e: - # e.g if file URL and not found - log.warn(e, error=OSError) - except (OSError, ValueError), e: - # invalid url, e.g. "1" - log.warn(u'ValueError, %s' % e.args[0], error=ValueError) - except urllib2.HTTPError, e: - # http error, e.g. 404, e can be raised - log.warn(u'HTTPError opening url=%r: %s %s' % - (url, e.code, e.msg), error=e) - except urllib2.URLError, e: - # URLError like mailto: or other IO errors, e can be raised - log.warn(u'URLError, %s' % e.reason, error=e) - else: - if res: - mimeType, encoding = encutils.getHTTPInfo(res) - if mimeType != u'text/css': - log.error(u'Expected "text/css" mime type for url=%r but found: %r' % - (url, mimeType), error=ValueError) - return encoding, res.read() diff --git a/src/cssutils/_fetchgae.py b/src/cssutils/_fetchgae.py deleted file mode 100644 index 7760ac6c6b..0000000000 --- a/src/cssutils/_fetchgae.py +++ /dev/null @@ -1,68 +0,0 @@ -"""GAE specific URL reading functions""" -__all__ = ['_defaultFetcher'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: tokenize2.py 1547 2008-12-10 20:42:26Z cthedot $' - -# raises ImportError of not on GAE -from google.appengine.api import urlfetch -import cgi -import errorhandler -import util - -log = errorhandler.ErrorHandler() - -def _defaultFetcher(url): - """ - uses GoogleAppEngine (GAE) - fetch(url, payload=None, method=GET, headers={}, allow_truncated=False) - - Response - content - The body content of the response. - content_was_truncated - True if the allow_truncated parameter to fetch() was True and - the response exceeded the maximum response size. In this case, - the content attribute contains the truncated response. - status_code - The HTTP status code. - headers - The HTTP response headers, as a mapping of names to values. - - Exceptions - exception InvalidURLError() - The URL of the request was not a valid URL, or it used an - unsupported method. Only http and https URLs are supported. - exception DownloadError() - There was an error retrieving the data. - - This exception is not raised if the server returns an HTTP - error code: In that case, the response data comes back intact, - including the error code. - - exception ResponseTooLargeError() - The response data exceeded the maximum allowed size, and the - allow_truncated parameter passed to fetch() was False. - """ - #from google.appengine.api import urlfetch - try: - r = urlfetch.fetch(url, method=urlfetch.GET) - except urlfetch.Error, e: - log.warn(u'Error opening url=%r: %s' % (url, e), - error=IOError) - else: - if r.status_code == 200: - # find mimetype and encoding - mimetype = 'application/octet-stream' - try: - mimetype, params = cgi.parse_header(r.headers['content-type']) - encoding = params['charset'] - except KeyError: - encoding = None - if mimetype != u'text/css': - log.error(u'Expected "text/css" mime type for url %r but found: %r' % - (url, mimetype), error=ValueError) - return encoding, r.content - else: - # TODO: 301 etc - log.warn(u'Error opening url=%r: HTTP status %s' % - (url, r.status_code), error=IOError) diff --git a/src/cssutils/codec.py b/src/cssutils/codec.py deleted file mode 100644 index c6e9823ef6..0000000000 --- a/src/cssutils/codec.py +++ /dev/null @@ -1,582 +0,0 @@ -#!/usr/bin/env python -"""Python codec for CSS.""" -__docformat__ = 'restructuredtext' -__author__ = 'Walter Doerwald' -__version__ = '$Id: util.py 1114 2008-03-05 13:22:59Z cthedot $' - -import codecs -import marshal - -# We're using bits to store all possible candidate encodings (or variants, i.e. -# we have two bits for the variants of UTF-16 and two for the -# variants of UTF-32). -# -# Prefixes for various CSS encodings -# UTF-8-SIG xEF xBB xBF -# UTF-16 (LE) xFF xFE ~x00|~x00 -# UTF-16 (BE) xFE xFF -# UTF-16-LE @ x00 @ x00 -# UTF-16-BE x00 @ -# UTF-32 (LE) xFF xFE x00 x00 -# UTF-32 (BE) x00 x00 xFE xFF -# UTF-32-LE @ x00 x00 x00 -# UTF-32-BE x00 x00 x00 @ -# CHARSET @ c h a ... - - -def detectencoding_str(input, final=False): - """ - Detect the encoding of the byte string ``input``, which contains the - beginning of a CSS file. This function returns the detected encoding (or - ``None`` if it hasn't got enough data), and a flag that indicates whether - that encoding has been detected explicitely or implicitely. To detect the - encoding the first few bytes are used (or if ``input`` is ASCII compatible - and starts with a charset rule the encoding name from the rule). "Explicit" - detection means that the bytes start with a BOM or a charset rule. - - If the encoding can't be detected yet, ``None`` is returned as the encoding. - ``final`` specifies whether more data will be available in later calls or - not. If ``final`` is true, ``detectencoding_str()`` will never return - ``None`` as the encoding. - """ - - # A bit for every candidate - CANDIDATE_UTF_8_SIG = 1 - CANDIDATE_UTF_16_AS_LE = 2 - CANDIDATE_UTF_16_AS_BE = 4 - CANDIDATE_UTF_16_LE = 8 - CANDIDATE_UTF_16_BE = 16 - CANDIDATE_UTF_32_AS_LE = 32 - CANDIDATE_UTF_32_AS_BE = 64 - CANDIDATE_UTF_32_LE = 128 - CANDIDATE_UTF_32_BE = 256 - CANDIDATE_CHARSET = 512 - - candidates = 1023 # all candidates - - li = len(input) - if li>=1: - # Check first byte - c = input[0] - if c != "\xef": - candidates &= ~CANDIDATE_UTF_8_SIG - if c != "\xff": - candidates &= ~(CANDIDATE_UTF_32_AS_LE|CANDIDATE_UTF_16_AS_LE) - if c != "\xfe": - candidates &= ~CANDIDATE_UTF_16_AS_BE - if c != "@": - candidates &= ~(CANDIDATE_UTF_32_LE|CANDIDATE_UTF_16_LE|CANDIDATE_CHARSET) - if c != "\x00": - candidates &= ~(CANDIDATE_UTF_32_AS_BE|CANDIDATE_UTF_32_BE|CANDIDATE_UTF_16_BE) - if li>=2: - # Check second byte - c = input[1] - if c != "\xbb": - candidates &= ~CANDIDATE_UTF_8_SIG - if c != "\xfe": - candidates &= ~(CANDIDATE_UTF_16_AS_LE|CANDIDATE_UTF_32_AS_LE) - if c != "\xff": - candidates &= ~CANDIDATE_UTF_16_AS_BE - if c != "\x00": - candidates &= ~(CANDIDATE_UTF_16_LE|CANDIDATE_UTF_32_AS_BE|CANDIDATE_UTF_32_LE|CANDIDATE_UTF_32_BE) - if c != "@": - candidates &= ~CANDIDATE_UTF_16_BE - if c != "c": - candidates &= ~CANDIDATE_CHARSET - if li>=3: - # Check third byte - c = input[2] - if c != "\xbf": - candidates &= ~CANDIDATE_UTF_8_SIG - if c != "c": - candidates &= ~CANDIDATE_UTF_16_LE - if c != "\x00": - candidates &= ~(CANDIDATE_UTF_32_AS_LE|CANDIDATE_UTF_32_LE|CANDIDATE_UTF_32_BE) - if c != "\xfe": - candidates &= ~CANDIDATE_UTF_32_AS_BE - if c != "h": - candidates &= ~CANDIDATE_CHARSET - if li>=4: - # Check fourth byte - c = input[3] - if input[2:4] == "\x00\x00": - candidates &= ~CANDIDATE_UTF_16_AS_LE - if c != "\x00": - candidates &= ~(CANDIDATE_UTF_16_LE|CANDIDATE_UTF_32_AS_LE|CANDIDATE_UTF_32_LE) - if c != "\xff": - candidates &= ~CANDIDATE_UTF_32_AS_BE - if c != "@": - candidates &= ~CANDIDATE_UTF_32_BE - if c != "a": - candidates &= ~CANDIDATE_CHARSET - if candidates == 0: - return ("utf-8", False) - if not (candidates & (candidates-1)): # only one candidate remaining - if candidates == CANDIDATE_UTF_8_SIG and li >= 3: - return ("utf-8-sig", True) - elif candidates == CANDIDATE_UTF_16_AS_LE and li >= 2: - return ("utf-16", True) - elif candidates == CANDIDATE_UTF_16_AS_BE and li >= 2: - return ("utf-16", True) - elif candidates == CANDIDATE_UTF_16_LE and li >= 4: - return ("utf-16-le", False) - elif candidates == CANDIDATE_UTF_16_BE and li >= 2: - return ("utf-16-be", False) - elif candidates == CANDIDATE_UTF_32_AS_LE and li >= 4: - return ("utf-32", True) - elif candidates == CANDIDATE_UTF_32_AS_BE and li >= 4: - return ("utf-32", True) - elif candidates == CANDIDATE_UTF_32_LE and li >= 4: - return ("utf-32-le", False) - elif candidates == CANDIDATE_UTF_32_BE and li >= 4: - return ("utf-32-be", False) - elif candidates == CANDIDATE_CHARSET and li >= 4: - prefix = '@charset "' - if input[:len(prefix)] == prefix: - pos = input.find('"', len(prefix)) - if pos >= 0: - return (input[len(prefix):pos], True) - # if this is the last call, and we haven't determined an encoding yet, - # we default to UTF-8 - if final: - return ("utf-8", False) - return (None, False) # dont' know yet - - -def detectencoding_unicode(input, final=False): - """ - Detect the encoding of the unicode string ``input``, which contains the - beginning of a CSS file. The encoding is detected from the charset rule - at the beginning of ``input``. If there is no charset rule, ``"utf-8"`` - will be returned. - - If the encoding can't be detected yet, ``None`` is returned. ``final`` - specifies whether more data will be available in later calls or not. If - ``final`` is true, ``detectencoding_unicode()`` will never return ``None``. - """ - prefix = u'@charset "' - if input.startswith(prefix): - pos = input.find(u'"', len(prefix)) - if pos >= 0: - return (input[len(prefix):pos], True) - elif final or not prefix.startswith(input): - # if this is the last call, and we haven't determined an encoding yet, - # (or the string definitely doesn't start with prefix) we default to UTF-8 - return ("utf-8", False) - return (None, False) # don't know yet - - -def _fixencoding(input, encoding, final=False): - """ - Replace the name of the encoding in the charset rule at the beginning of - ``input`` with ``encoding``. If ``input`` doesn't starts with a charset - rule, ``input`` will be returned unmodified. - - If the encoding can't be found yet, ``None`` is returned. ``final`` - specifies whether more data will be available in later calls or not. - If ``final`` is true, ``_fixencoding()`` will never return ``None``. - """ - prefix = u'@charset "' - if len(input) > len(prefix): - if input.startswith(prefix): - pos = input.find(u'"', len(prefix)) - if pos >= 0: - if encoding.replace("_", "-").lower() == "utf-8-sig": - encoding = u"utf-8" - return prefix + encoding + input[pos:] - # we haven't seen the end of the encoding name yet => fall through - else: - return input # doesn't start with prefix, so nothing to fix - elif not prefix.startswith(input) or final: - # can't turn out to be a @charset rule later (or there is no "later") - return input - if final: - return input - return None # don't know yet - - -def decode(input, errors="strict", encoding=None, force=True): - if encoding is None or not force: - (_encoding, explicit) = detectencoding_str(input, True) - if _encoding == "css": - raise ValueError("css not allowed as encoding name") - if (explicit and not force) or encoding is None: # Take the encoding from the input - encoding = _encoding - (input, consumed) = codecs.getdecoder(encoding)(input, errors) - return (_fixencoding(input, unicode(encoding), True), consumed) - - -def encode(input, errors="strict", encoding=None): - consumed = len(input) - if encoding is None: - encoding = detectencoding_unicode(input, True)[0] - if encoding.replace("_", "-").lower() == "utf-8-sig": - input = _fixencoding(input, u"utf-8", True) - else: - input = _fixencoding(input, unicode(encoding), True) - if encoding == "css": - raise ValueError("css not allowed as encoding name") - encoder = codecs.getencoder(encoding) - return (encoder(input, errors)[0], consumed) - - -def _bytes2int(bytes): - # Helper: convert an 8 bit string into an ``int``. - i = 0 - for byte in bytes: - i = (i<<8) + ord(byte) - return i - - -def _int2bytes(i): - # Helper: convert an ``int`` into an 8-bit string. - v = [] - while i: - v.insert(0, chr(i&0xff)) - i >>= 8 - return "".join(v) - - -if hasattr(codecs, "IncrementalDecoder"): - class IncrementalDecoder(codecs.IncrementalDecoder): - def __init__(self, errors="strict", encoding=None, force=True): - self.decoder = None - self.encoding = encoding - self.force = force - codecs.IncrementalDecoder.__init__(self, errors) - # Store ``errors`` somewhere else, - # because we have to hide it in a property - self._errors = errors - self.buffer = "" - self.headerfixed = False - - def iterdecode(self, input): - for part in input: - result = self.decode(part, False) - if result: - yield result - result = self.decode("", True) - if result: - yield result - - def decode(self, input, final=False): - # We're doing basically the same as a ``BufferedIncrementalDecoder``, - # but since the buffer is only relevant until the encoding has been - # detected (in which case the buffer of the underlying codec might - # kick in), we're implementing buffering ourselves to avoid some - # overhead. - if self.decoder is None: - input = self.buffer + input - # Do we have to detect the encoding from the input? - if self.encoding is None or not self.force: - (encoding, explicit) = detectencoding_str(input, final) - if encoding is None: # no encoding determined yet - self.buffer = input # retry the complete input on the next call - return u"" # no encoding determined yet, so no output - elif encoding == "css": - raise ValueError("css not allowed as encoding name") - if (explicit and not self.force) or self.encoding is None: # Take the encoding from the input - self.encoding = encoding - self.buffer = "" # drop buffer, as the decoder might keep its own - decoder = codecs.getincrementaldecoder(self.encoding) - self.decoder = decoder(self._errors) - if self.headerfixed: - return self.decoder.decode(input, final) - # If we haven't fixed the header yet, - # the content of ``self.buffer`` is a ``unicode`` object - output = self.buffer + self.decoder.decode(input, final) - encoding = self.encoding - if encoding.replace("_", "-").lower() == "utf-8-sig": - encoding = "utf-8" - newoutput = _fixencoding(output, unicode(encoding), final) - if newoutput is None: - # retry fixing the @charset rule (but keep the decoded stuff) - self.buffer = output - return u"" - self.headerfixed = True - return newoutput - - def reset(self): - codecs.IncrementalDecoder.reset(self) - self.decoder = None - self.buffer = "" - self.headerfixed = False - - def _geterrors(self): - return self._errors - - def _seterrors(self, errors): - # Setting ``errors`` must be done on the real decoder too - if self.decoder is not None: - self.decoder.errors = errors - self._errors = errors - errors = property(_geterrors, _seterrors) - - def getstate(self): - if self.decoder is not None: - state = (self.encoding, self.buffer, self.headerfixed, True, self.decoder.getstate()) - else: - state = (self.encoding, self.buffer, self.headerfixed, False, None) - return ("", _bytes2int(marshal.dumps(state))) - - def setstate(self, state): - state = _int2bytes(marshal.loads(state[1])) # ignore buffered input - self.encoding = state[0] - self.buffer = state[1] - self.headerfixed = state[2] - if state[3] is not None: - self.decoder = codecs.getincrementaldecoder(self.encoding)(self._errors) - self.decoder.setstate(state[4]) - else: - self.decoder = None - - -if hasattr(codecs, "IncrementalEncoder"): - class IncrementalEncoder(codecs.IncrementalEncoder): - def __init__(self, errors="strict", encoding=None): - self.encoder = None - self.encoding = encoding - codecs.IncrementalEncoder.__init__(self, errors) - # Store ``errors`` somewhere else, - # because we have to hide it in a property - self._errors = errors - self.buffer = u"" - - def iterencode(self, input): - for part in input: - result = self.encode(part, False) - if result: - yield result - result = self.encode(u"", True) - if result: - yield result - - def encode(self, input, final=False): - if self.encoder is None: - input = self.buffer + input - if self.encoding is not None: - # Replace encoding in the @charset rule with the specified one - encoding = self.encoding - if encoding.replace("_", "-").lower() == "utf-8-sig": - encoding = "utf-8" - newinput = _fixencoding(input, unicode(encoding), final) - if newinput is None: # @charset rule incomplete => Retry next time - self.buffer = input - return "" - input = newinput - else: - # Use encoding from the @charset declaration - self.encoding = detectencoding_unicode(input, final)[0] - if self.encoding is not None: - if self.encoding == "css": - raise ValueError("css not allowed as encoding name") - info = codecs.lookup(self.encoding) - encoding = self.encoding - if self.encoding.replace("_", "-").lower() == "utf-8-sig": - input = _fixencoding(input, u"utf-8", True) - self.encoder = info.incrementalencoder(self._errors) - self.buffer = u"" - else: - self.buffer = input - return "" - return self.encoder.encode(input, final) - - def reset(self): - codecs.IncrementalEncoder.reset(self) - self.encoder = None - self.buffer = u"" - - def _geterrors(self): - return self._errors - - def _seterrors(self, errors): - # Setting ``errors ``must be done on the real encoder too - if self.encoder is not None: - self.encoder.errors = errors - self._errors = errors - errors = property(_geterrors, _seterrors) - - def getstate(self): - if self.encoder is not None: - state = (self.encoding, self.buffer, True, self.encoder.getstate()) - else: - state = (self.encoding, self.buffer, False, None) - return _bytes2int(marshal.dumps(state)) - - def setstate(self, state): - state = _int2bytes(marshal.loads(state)) - self.encoding = state[0] - self.buffer = state[1] - if state[2] is not None: - self.encoder = codecs.getincrementalencoder(self.encoding)(self._errors) - self.encoder.setstate(state[4]) - else: - self.encoder = None - - -class StreamWriter(codecs.StreamWriter): - def __init__(self, stream, errors="strict", encoding=None, header=False): - codecs.StreamWriter.__init__(self, stream, errors) - self.streamwriter = None - self.encoding = encoding - self._errors = errors - self.buffer = u"" - - def encode(self, input, errors='strict'): - li = len(input) - if self.streamwriter is None: - input = self.buffer + input - li = len(input) - if self.encoding is not None: - # Replace encoding in the @charset rule with the specified one - encoding = self.encoding - if encoding.replace("_", "-").lower() == "utf-8-sig": - encoding = "utf-8" - newinput = _fixencoding(input, unicode(encoding), False) - if newinput is None: # @charset rule incomplete => Retry next time - self.buffer = input - return ("", 0) - input = newinput - else: - # Use encoding from the @charset declaration - self.encoding = detectencoding_unicode(input, False)[0] - if self.encoding is not None: - if self.encoding == "css": - raise ValueError("css not allowed as encoding name") - self.streamwriter = codecs.getwriter(self.encoding)(self.stream, self._errors) - encoding = self.encoding - if self.encoding.replace("_", "-").lower() == "utf-8-sig": - input = _fixencoding(input, u"utf-8", True) - self.buffer = u"" - else: - self.buffer = input - return ("", 0) - return (self.streamwriter.encode(input, errors)[0], li) - - def _geterrors(self): - return self._errors - - def _seterrors(self, errors): - # Setting ``errors`` must be done on the streamwriter too - if self.streamwriter is not None: - self.streamwriter.errors = errors - self._errors = errors - errors = property(_geterrors, _seterrors) - - -class StreamReader(codecs.StreamReader): - def __init__(self, stream, errors="strict", encoding=None, force=True): - codecs.StreamReader.__init__(self, stream, errors) - self.streamreader = None - self.encoding = encoding - self.force = force - self._errors = errors - - def decode(self, input, errors='strict'): - if self.streamreader is None: - if self.encoding is None or not self.force: - (encoding, explicit) = detectencoding_str(input, False) - if encoding is None: # no encoding determined yet - return (u"", 0) # no encoding determined yet, so no output - elif encoding == "css": - raise ValueError("css not allowed as encoding name") - if (explicit and not self.force) or self.encoding is None: # Take the encoding from the input - self.encoding = encoding - streamreader = codecs.getreader(self.encoding) - streamreader = streamreader(self.stream, self._errors) - (output, consumed) = streamreader.decode(input, errors) - encoding = self.encoding - if encoding.replace("_", "-").lower() == "utf-8-sig": - encoding = "utf-8" - newoutput = _fixencoding(output, unicode(encoding), False) - if newoutput is not None: - self.streamreader = streamreader - return (newoutput, consumed) - return (u"", 0) # we will create a new streamreader on the next call - return self.streamreader.decode(input, errors) - - def _geterrors(self): - return self._errors - - def _seterrors(self, errors): - # Setting ``errors`` must be done on the streamreader too - if self.streamreader is not None: - self.streamreader.errors = errors - self._errors = errors - errors = property(_geterrors, _seterrors) - - -if hasattr(codecs, "CodecInfo"): - # We're running on Python 2.5 or better - def search_function(name): - if name == "css": - return codecs.CodecInfo( - name="css", - encode=encode, - decode=decode, - incrementalencoder=IncrementalEncoder, - incrementaldecoder=IncrementalDecoder, - streamwriter=StreamWriter, - streamreader=StreamReader, - ) -else: - # If we're running on Python 2.4, define the utf-8-sig codec here - def utf8sig_encode(input, errors='strict'): - return (codecs.BOM_UTF8 + codecs.utf_8_encode(input, errors)[0], len(input)) - - def utf8sig_decode(input, errors='strict'): - prefix = 0 - if input[:3] == codecs.BOM_UTF8: - input = input[3:] - prefix = 3 - (output, consumed) = codecs.utf_8_decode(input, errors, True) - return (output, consumed+prefix) - - class UTF8SigStreamWriter(codecs.StreamWriter): - def reset(self): - codecs.StreamWriter.reset(self) - try: - del self.encode - except AttributeError: - pass - - def encode(self, input, errors='strict'): - self.encode = codecs.utf_8_encode - return utf8sig_encode(input, errors) - - class UTF8SigStreamReader(codecs.StreamReader): - def reset(self): - codecs.StreamReader.reset(self) - try: - del self.decode - except AttributeError: - pass - - def decode(self, input, errors='strict'): - if len(input) < 3 and codecs.BOM_UTF8.startswith(input): - # not enough data to decide if this is a BOM - # => try again on the next call - return (u"", 0) - self.decode = codecs.utf_8_decode - return utf8sig_decode(input, errors) - - def search_function(name): - import encodings - name = encodings.normalize_encoding(name) - if name == "css": - return (encode, decode, StreamReader, StreamWriter) - elif name == "utf_8_sig": - return (utf8sig_encode, utf8sig_decode, UTF8SigStreamReader, UTF8SigStreamWriter) - - -codecs.register(search_function) - - -# Error handler for CSS escaping - -def cssescape(exc): - if not isinstance(exc, UnicodeEncodeError): - raise TypeError("don't know how to handle %r" % exc) - return (u"".join(u"\\%06x" % ord(c) for c in exc.object[exc.start:exc.end]), exc.end) - -codecs.register_error("cssescape", cssescape) diff --git a/src/cssutils/css/__init__.py b/src/cssutils/css/__init__.py deleted file mode 100644 index b7ee30fa23..0000000000 --- a/src/cssutils/css/__init__.py +++ /dev/null @@ -1,66 +0,0 @@ -"""Implements Document Object Model Level 2 CSS -http://www.w3.org/TR/2000/PR-DOM-Level-2-Style-20000927/css.html - -currently implemented - - CSSStyleSheet - - CSSRuleList - - CSSRule - - CSSComment (cssutils addon) - - CSSCharsetRule - - CSSFontFaceRule - - CSSImportRule - - CSSMediaRule - - CSSNamespaceRule (WD) - - CSSPageRule - - CSSStyleRule - - CSSUnkownRule - - Selector and SelectorList - - CSSStyleDeclaration - - CSS2Properties - - CSSValue - - CSSPrimitiveValue - - CSSValueList - -todo - - RGBColor, Rect, Counter -""" -__all__ = [ - 'CSSStyleSheet', - 'CSSRuleList', - 'CSSRule', - 'CSSComment', - 'CSSCharsetRule', - 'CSSFontFaceRule' - 'CSSImportRule', - 'CSSMediaRule', - 'CSSNamespaceRule', - 'CSSPageRule', - 'CSSStyleRule', - 'CSSUnknownRule', - 'CSSVariablesRule' - 'Selector', 'SelectorList', - 'CSSStyleDeclaration', 'Property', - 'CSSValue', 'CSSPrimitiveValue', 'CSSValueList' - ] -__docformat__ = 'restructuredtext' -__version__ = '$Id: __init__.py 1859 2009-10-10 21:50:27Z cthedot $' - -from cssstylesheet import * -from cssrulelist import * -from cssrule import * -from csscomment import * -from csscharsetrule import * -from cssfontfacerule import * -from cssimportrule import * -from cssmediarule import * -from cssnamespacerule import * -from csspagerule import * -from cssstylerule import * -from cssvariablesrule import * -from cssunknownrule import * -from selector import * -from selectorlist import * -from cssstyledeclaration import * -from cssvariablesdeclaration import * -from property import * -from cssvalue import * diff --git a/src/cssutils/css/csscharsetrule.py b/src/cssutils/css/csscharsetrule.py deleted file mode 100644 index 2ef2f23e04..0000000000 --- a/src/cssutils/css/csscharsetrule.py +++ /dev/null @@ -1,158 +0,0 @@ -"""CSSCharsetRule implements DOM Level 2 CSS CSSCharsetRule.""" -__all__ = ['CSSCharsetRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: csscharsetrule.py 1605 2009-01-03 18:27:32Z cthedot $' - -import codecs -import cssrule -import cssutils -import xml.dom - -class CSSCharsetRule(cssrule.CSSRule): - """ - The CSSCharsetRule interface represents an @charset rule in a CSS style - sheet. The value of the encoding attribute does not affect the encoding - of text data in the DOM objects; this encoding is always UTF-16 - (also in Python?). After a stylesheet is loaded, the value of the - encoding attribute is the value found in the @charset rule. If there - was no @charset in the original document, then no CSSCharsetRule is - created. The value of the encoding attribute may also be used as a hint - for the encoding used on serialization of the style sheet. - - The value of the @charset rule (and therefore of the CSSCharsetRule) - may not correspond to the encoding the document actually came in; - character encoding information e.g. in an HTTP header, has priority - (see CSS document representation) but this is not reflected in the - CSSCharsetRule. - - This rule is not really needed anymore as setting - :attr:`CSSStyleSheet.encoding` is much easier. - - Format:: - - charsetrule: - CHARSET_SYM S* STRING S* ';' - - BUT: Only valid format is (single space, double quotes!):: - - @charset "ENCODING"; - """ - def __init__(self, encoding=None, parentRule=None, - parentStyleSheet=None, readonly=False): - """ - :param encoding: - a valid character encoding - :param readonly: - defaults to False, not used yet - """ - super(CSSCharsetRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = '@charset' - self._encoding = None - if encoding: - self.encoding = encoding - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(encoding=%r)" % ( - self.__class__.__name__, self.encoding) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.encoding, id(self)) - - def _getCssText(self): - """The parsable textual representation.""" - return cssutils.ser.do_CSSCharsetRule(self) - - def _setCssText(self, cssText): - """ - :param cssText: - A parsable DOMString. - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSCharsetRule, self)._setCssText(cssText) - - wellformed = True - tokenizer = self._tokenize2(cssText) - - if self._type(self._nexttoken(tokenizer)) != self._prods.CHARSET_SYM: - wellformed = False - self._log.error(u'CSSCharsetRule must start with "@charset "', - error=xml.dom.InvalidModificationErr) - - encodingtoken = self._nexttoken(tokenizer) - encodingtype = self._type(encodingtoken) - encoding = self._stringtokenvalue(encodingtoken) - if self._prods.STRING != encodingtype or not encoding: - wellformed = False - self._log.error(u'CSSCharsetRule: no encoding found; %r.' % - self._valuestr(cssText)) - - semicolon = self._tokenvalue(self._nexttoken(tokenizer)) - EOFtype = self._type(self._nexttoken(tokenizer)) - if u';' != semicolon or EOFtype not in ('EOF', None): - wellformed = False - self._log.error(u'CSSCharsetRule: Syntax Error: %r.' % - self._valuestr(cssText)) - - if wellformed: - self.encoding = encoding - - cssText = property(fget=_getCssText, fset=_setCssText, - doc="(DOM) The parsable textual representation.") - - def _setEncoding(self, encoding): - """ - :param encoding: - a valid encoding to be used. Currently only valid Python encodings - are allowed. - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this encoding rule is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified encoding value has a syntax error and - is unparsable. - """ - self._checkReadonly() - tokenizer = self._tokenize2(encoding) - encodingtoken = self._nexttoken(tokenizer) - unexpected = self._nexttoken(tokenizer) - - valid = True - if not encodingtoken or unexpected or\ - self._prods.IDENT != self._type(encodingtoken): - valid = False - self._log.error( - 'CSSCharsetRule: Syntax Error in encoding value %r.' % - encoding) - else: - try: - codecs.lookup(encoding) - except LookupError: - valid = False - self._log.error('CSSCharsetRule: Unknown (Python) encoding %r.' % - encoding) - else: - self._encoding = encoding.lower() - - encoding = property(lambda self: self._encoding, _setEncoding, - doc="(DOM)The encoding information used in this @charset rule.") - - type = property(lambda self: self.CHARSET_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - wellformed = property(lambda self: bool(self.encoding)) diff --git a/src/cssutils/css/csscomment.py b/src/cssutils/css/csscomment.py deleted file mode 100644 index 179027f437..0000000000 --- a/src/cssutils/css/csscomment.py +++ /dev/null @@ -1,84 +0,0 @@ -"""CSSComment is not defined in DOM Level 2 at all but a cssutils defined -class only. - -Implements CSSRule which is also extended for a CSSComment rule type. -""" -__all__ = ['CSSComment'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: csscomment.py 1638 2009-01-13 20:39:33Z cthedot $' - -import cssrule -import cssutils -import xml.dom - -class CSSComment(cssrule.CSSRule): - """ - Represents a CSS comment (cssutils only). - - Format:: - - /*...*/ - """ - def __init__(self, cssText=None, parentRule=None, - parentStyleSheet=None, readonly=False): - super(CSSComment, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - - self._cssText = None - if cssText: - self._setCssText(cssText) - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(cssText=%r)" % ( - self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.cssText, id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSComment(self) - - def _setCssText(self, cssText): - """ - :param cssText: - textual text to set or tokenlist which is not tokenized - anymore. May also be a single token for this rule - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSComment, self)._setCssText(cssText) - tokenizer = self._tokenize2(cssText) - - commenttoken = self._nexttoken(tokenizer) - unexpected = self._nexttoken(tokenizer) - - if not commenttoken or\ - self._type(commenttoken) != self._prods.COMMENT or\ - unexpected: - self._log.error(u'CSSComment: Not a CSSComment: %r' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - self._cssText = self._tokenvalue(commenttoken) - - cssText = property(_getCssText, _setCssText, - doc=u"The parsable textual representation of this rule.") - - type = property(lambda self: self.COMMENT, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - # constant but needed: - wellformed = property(lambda self: True) diff --git a/src/cssutils/css/cssfontfacerule.py b/src/cssutils/css/cssfontfacerule.py deleted file mode 100644 index 5fdcbe2882..0000000000 --- a/src/cssutils/css/cssfontfacerule.py +++ /dev/null @@ -1,182 +0,0 @@ -"""CSSFontFaceRule implements DOM Level 2 CSS CSSFontFaceRule. - -From cssutils 0.9.6 additions from CSS Fonts Module Level 3 are -added http://www.w3.org/TR/css3-fonts/. -""" -__all__ = ['CSSFontFaceRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssfontfacerule.py 1868 2009-10-17 19:36:54Z cthedot $' - -from cssstyledeclaration import CSSStyleDeclaration -import cssrule -import cssutils -import xml.dom - -class CSSFontFaceRule(cssrule.CSSRule): - """ - The CSSFontFaceRule interface represents a @font-face rule in a CSS - style sheet. The @font-face rule is used to hold a set of font - descriptions. - - Format:: - - font_face - : FONT_FACE_SYM S* - '{' S* declaration [ ';' S* declaration ]* '}' S* - ; - - cssutils uses a :class:`~cssutils.css.CSSStyleDeclaration` to - represent the font descriptions. For validation a specific profile - is used though were some properties have other valid values than - when used in e.g. a :class:`~cssutils.css.CSSStyleRule`. - """ - def __init__(self, style=None, parentRule=None, - parentStyleSheet=None, readonly=False): - """ - If readonly allows setting of properties in constructor only. - - :param style: - CSSStyleDeclaration used to hold any font descriptions - for this CSSFontFaceRule - """ - super(CSSFontFaceRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@font-face' - self._style = CSSStyleDeclaration(parentRule=self) - if style: - self.style = style - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(style=%r)" % ( - self.__class__.__name__, self.style.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.style.cssText, self.valid, - id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSFontFaceRule(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSFontFaceRule, self)._setCssText(cssText) - - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if self._type(attoken) != self._prods.FONT_FACE_SYM: - self._log.error(u'CSSFontFaceRule: No CSSFontFaceRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldstyle = CSSStyleDeclaration() - oldstyle._absorb(self.style) - - ok = True - beforetokens, brace = self._tokensupto2(tokenizer, - blockstartonly=True, - separateEnd=True) - if self._tokenvalue(brace) != u'{': - ok = False - self._log.error( - u'CSSFontFaceRule: No start { of style declaration found: %r' % - self._valuestr(cssText), brace) - - # parse stuff before { which should be comments and S only - new = {'wellformed': True} - newseq = self._tempSeq()#[] - - beforewellformed, expected = self._parse(expected=':', - seq=newseq, tokenizer=self._tokenize2(beforetokens), - productions={}) - ok = ok and beforewellformed and new['wellformed'] - - styletokens, braceorEOFtoken = self._tokensupto2(tokenizer, - blockendonly=True, - separateEnd=True) - - val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken) - if val != u'}' and typ != 'EOF': - ok = False - self._log.error( - u'CSSFontFaceRule: No "}" after style declaration found: %r' % - self._valuestr(cssText)) - - nonetoken = self._nexttoken(tokenizer) - if nonetoken: - ok = False - self._log.error(u'CSSFontFaceRule: Trailing content found.', - token=nonetoken) - - if 'EOF' == typ: - # add again as style needs it - styletokens.append(braceorEOFtoken) - - # SET, may raise: - self.style.cssText = styletokens - - if ok: - # contains probably comments only (upto ``{``) - self._setSeq(newseq) - else: - # RESET - self.style._absorb(oldstyle) - - - cssText = property(_getCssText, _setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _setStyle(self, style): - """ - :param style: - a CSSStyleDeclaration or string - """ - self._checkReadonly() - if isinstance(style, basestring): - self._style.cssText = style - else: - self._style = style - self._style.parentRule = self - - style = property(lambda self: self._style, _setStyle, - doc="(DOM) The declaration-block of this rule set, " - "a :class:`~cssutils.css.CSSStyleDeclaration`.") - - type = property(lambda self: self.FONT_FACE_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - def _getValid(self): - needed = ['font-family', 'src'] - for p in self.style.getProperties(all=True): - if not p.valid: - return False - try: - needed.remove(p.name) - except ValueError: - pass - return not bool(needed) - - valid = property(_getValid, doc='CSSFontFace is valid if properties ' - '`font-family` and `src` are set and all properties are ' - 'valid.') - - # constant but needed: - wellformed = property(lambda self: True) diff --git a/src/cssutils/css/cssimportrule.py b/src/cssutils/css/cssimportrule.py deleted file mode 100644 index 9e643d4f4e..0000000000 --- a/src/cssutils/css/cssimportrule.py +++ /dev/null @@ -1,366 +0,0 @@ -"""CSSImportRule implements DOM Level 2 CSS CSSImportRule plus the -``name`` property from http://www.w3.org/TR/css3-cascade/#cascading.""" -__all__ = ['CSSImportRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssimportrule.py 1871 2009-10-17 19:57:37Z cthedot $' - -import cssrule -import cssutils -import os -import urllib -import urlparse -import xml.dom - -class CSSImportRule(cssrule.CSSRule): - """ - Represents an @import rule within a CSS style sheet. The @import rule - is used to import style rules from other style sheets. - - Format:: - - import - : IMPORT_SYM S* - [STRING|URI] S* [ medium [ COMMA S* medium]* ]? S* STRING? S* ';' S* - ; - """ - def __init__(self, href=None, mediaText=u'all', name=None, - parentRule=None, parentStyleSheet=None, readonly=False): - """ - if readonly allows setting of properties in constructor only - - Do not use as positional but as keyword attributes only! - - href - location of the style sheet to be imported. - mediaText - A list of media types for which this style sheet may be used - as a string - """ - super(CSSImportRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@import' - self.hreftype = None - self._styleSheet = None - - self._href = None - self.href = href - - self._media = cssutils.stylesheets.MediaList() - if mediaText: - self._media.mediaText = mediaText - - self._name = name - - seq = self._tempSeq() - seq.append(self.href, 'href') - seq.append(self.media, 'media') - seq.append(self.name, 'name') - self._setSeq(seq) - self._readonly = readonly - - def __repr__(self): - if self._usemedia: - mediaText = self.media.mediaText - else: - mediaText = None - return "cssutils.css.%s(href=%r, mediaText=%r, name=%r)" % ( - self.__class__.__name__, - self.href, self.media.mediaText, self.name) - - def __str__(self): - if self._usemedia: - mediaText = self.media.mediaText - else: - mediaText = None - return "" % ( - self.__class__.__name__, self.href, mediaText, self.name, id(self)) - - _usemedia = property(lambda self: self.media.mediaText not in (u'', u'all'), - doc="if self._media is used (or simply empty)") - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSImportRule(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - """ - super(CSSImportRule, self)._setCssText(cssText) - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if self._type(attoken) != self._prods.IMPORT_SYM: - self._log.error(u'CSSImportRule: No CSSImportRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldmedia = cssutils.stylesheets.MediaList() - oldmedia._absorb(self.media) - - # for closures: must be a mutable - new = {'keyword': self._tokenvalue(attoken), - 'href': None, - 'hreftype': None, - 'media': None, - 'name': None, - 'wellformed': True - } - - def __doname(seq, token): - # called by _string or _ident - new['name'] = self._stringtokenvalue(token) - seq.append(new['name'], 'name') - return ';' - - def _string(expected, seq, token, tokenizer=None): - if 'href' == expected: - # href - new['href'] = self._stringtokenvalue(token) - new['hreftype'] = 'string' - seq.append(new['href'], 'href') - return 'media name ;' - elif 'name' in expected: - # name - return __doname(seq, token) - else: - new['wellformed'] = False - self._log.error( - u'CSSImportRule: Unexpected string.', token) - return expected - - def _uri(expected, seq, token, tokenizer=None): - # href - if 'href' == expected: - uri = self._uritokenvalue(token) - new['hreftype'] = 'uri' - new['href'] = uri - seq.append(new['href'], 'href') - return 'media name ;' - else: - new['wellformed'] = False - self._log.error( - u'CSSImportRule: Unexpected URI.', token) - return expected - - def _ident(expected, seq, token, tokenizer=None): - # medialist ending with ; which is checked upon too - if expected.startswith('media'): - mediatokens = self._tokensupto2( - tokenizer, importmediaqueryendonly=True) - mediatokens.insert(0, token) # push found token - - last = mediatokens.pop() # retrieve ; - lastval, lasttyp = self._tokenvalue(last), self._type(last) - if lastval != u';' and lasttyp not in ('EOF', self._prods.STRING): - new['wellformed'] = False - self._log.error(u'CSSImportRule: No ";" found: %s' % - self._valuestr(cssText), token=token) - - #media = cssutils.stylesheets.MediaList() - self.media.mediaText = mediatokens - if self.media.wellformed: - new['media'] = self.media - seq.append(self.media, 'media') - else: - # RESET - self.media._absorb(oldmedia) - new['wellformed'] = False - self._log.error(u'CSSImportRule: Invalid MediaList: %s' % - self._valuestr(cssText), token=token) - - if lasttyp == self._prods.STRING: - # name - return __doname(seq, last) - else: - return 'EOF' # ';' is token "last" - else: - new['wellformed'] = False - self._log.error( - u'CSSImportRule: Unexpected ident.', token) - return expected - - def _char(expected, seq, token, tokenizer=None): - # final ; - val = self._tokenvalue(token) - if expected.endswith(';') and u';' == val: - return 'EOF' - else: - new['wellformed'] = False - self._log.error( - u'CSSImportRule: Unexpected char.', token) - return expected - - # import : IMPORT_SYM S* [STRING|URI] - # S* [ medium [ ',' S* medium]* ]? ';' S* - # STRING? # see http://www.w3.org/TR/css3-cascade/#cascading - # ; - newseq = self._tempSeq() - wellformed, expected = self._parse(expected='href', - seq=newseq, tokenizer=tokenizer, - productions={'STRING': _string, - 'URI': _uri, - 'IDENT': _ident, - 'CHAR': _char}, - new=new) - - # wellformed set by parse - wellformed = wellformed and new['wellformed'] - - # post conditions - if not new['href']: - wellformed = False - self._log.error(u'CSSImportRule: No href found: %s' % - self._valuestr(cssText)) - - if expected != 'EOF': - wellformed = False - self._log.error(u'CSSImportRule: No ";" found: %s' % - self._valuestr(cssText)) - - # set all - if wellformed: - self.atkeyword = new['keyword'] - self.hreftype = new['hreftype'] - if not new['media']: - # reset media to base media - self.media.mediaText = u'all' - newseq.append(self.media, 'media') - self.name = new['name'] - self._setSeq(newseq) - self.href = new['href'] - - if self.styleSheet: - # title is set by href - #self.styleSheet._href = self.href - self.styleSheet._parentStyleSheet = self.parentStyleSheet - - cssText = property(fget=_getCssText, fset=_setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _setHref(self, href): - # update seq - for i, item in enumerate(self.seq): - val, typ = item.value, item.type - if 'href' == typ: - self._seq[i] = (href, typ, item.line, item.col) - break - else: - seq = self._tempSeq() - seq.append(self.href, 'href') - self._setSeq(seq) - # set new href - self._href = href - if not self.styleSheet: - # set only if not set before - self.__setStyleSheet() - - href = property(lambda self: self._href, _setHref, - doc="Location of the style sheet to be imported.") - - media = property(lambda self: self._media, - doc="(DOM readonly) A list of media types for this rule " - "of type :class:`~cssutils.stylesheets.MediaList`.") - - def _setName(self, name): - """Raises xml.dom.SyntaxErr if name is not a string.""" - if isinstance(name, basestring) or name is None: - # "" or '' - if not name: - name = None - # update seq - for i, item in enumerate(self.seq): - val, typ = item.value, item.type - if 'name' == typ: - self._seq[i] = (name, typ, item.line, item.col) - break - else: - # append - seq = self._tempSeq() - for item in self.seq: - # copy current seq - seq.append(item.value, item.type, item.line, item.col) - seq.append(name, 'name') - self._setSeq(seq) - self._name = name - # set title of referred sheet - if self.styleSheet: - self.styleSheet.title = name - else: - self._log.error(u'CSSImportRule: Not a valid name: %s' % name) - - name = property(lambda self: self._name, _setName, - doc=u"An optional name for the imported sheet.") - - def __setStyleSheet(self): - """Read new CSSStyleSheet cssText from href using parentStyleSheet.href - - Indirectly called if setting ``href``. In case of any error styleSheet - is set to ``None``. - """ - # should simply fail so all errors are catched! - if self.parentStyleSheet and self.href: - # relative href - parentHref = self.parentStyleSheet.href - if parentHref is None: - # use cwd instead - #parentHref = u'file:' + urllib.pathname2url(os.getcwd()) + '/' - parentHref = cssutils.helper.path2url(os.getcwd()) + '/' - href = urlparse.urljoin(parentHref, self.href) - - # all possible exceptions are ignored (styleSheet is None then) - try: - usedEncoding, enctype, cssText = self.parentStyleSheet._resolveImport(href) - if cssText is None: - # catched in next except below! - raise IOError('Cannot read Stylesheet.') - styleSheet = cssutils.css.CSSStyleSheet(href=href, - media=self.media, - ownerRule=self, - title=self.name) - # inherit fetcher for @imports in styleSheet - styleSheet._setFetcher(self.parentStyleSheet._fetcher) - # contentEncoding with parentStyleSheet.overrideEncoding, - # HTTP or parent - encodingOverride, encoding = None, None - if enctype == 0: - encodingOverride = usedEncoding - elif 5 > enctype > 0: - encoding = usedEncoding - - styleSheet._setCssTextWithEncodingOverride(cssText, - encodingOverride=encodingOverride, - encoding=encoding) - - except (OSError, IOError, ValueError), e: - self._log.warn(u'CSSImportRule: While processing imported style sheet href=%r: %r' - % (self.href, e), neverraise=True) - else: - self._styleSheet = styleSheet - - styleSheet = property(lambda self: self._styleSheet, - doc="(readonly) The style sheet referred to by this rule.") - - type = property(lambda self: self.IMPORT_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - def _getWellformed(self): - "Depending if media is used at all." - if self._usemedia: - return bool(self.href and self.media.wellformed) - else: - return bool(self.href) - - wellformed = property(_getWellformed) diff --git a/src/cssutils/css/cssmediarule.py b/src/cssutils/css/cssmediarule.py deleted file mode 100644 index 439a81ebe4..0000000000 --- a/src/cssutils/css/cssmediarule.py +++ /dev/null @@ -1,381 +0,0 @@ -"""CSSMediaRule implements DOM Level 2 CSS CSSMediaRule.""" -__all__ = ['CSSMediaRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssmediarule.py 1871 2009-10-17 19:57:37Z cthedot $' - -import cssrule -import cssutils -import xml.dom - -class CSSMediaRule(cssrule.CSSRule): - """ - Objects implementing the CSSMediaRule interface can be identified by the - MEDIA_RULE constant. On these objects the type attribute must return the - value of that constant. - - Format:: - - : MEDIA_SYM S* medium [ COMMA S* medium ]* - - STRING? # the name - - LBRACE S* ruleset* '}' S*; - - ``cssRules`` - All Rules in this media rule, a :class:`~cssutils.css.CSSRuleList`. - """ - def __init__(self, mediaText='all', name=None, - parentRule=None, parentStyleSheet=None, readonly=False): - """constructor""" - super(CSSMediaRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@media' - self._media = cssutils.stylesheets.MediaList(mediaText, - readonly=readonly) - self.name = name - self.cssRules = cssutils.css.cssrulelist.CSSRuleList() - self._readonly = readonly - - def __iter__(self): - """Generator iterating over these rule's cssRules.""" - for rule in self._cssRules: - yield rule - - def __repr__(self): - return "cssutils.css.%s(mediaText=%r)" % ( - self.__class__.__name__, self.media.mediaText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.media.mediaText, id(self)) - - def _setCssRules(self, cssRules): - "Set new cssRules and update contained rules refs." - cssRules.append = self.insertRule - cssRules.extend = self.insertRule - cssRules.__delitem__ == self.deleteRule - for rule in cssRules: - rule._parentStyleSheet = self.parentStyleSheet - rule._parentRule = self - self._cssRules = cssRules - - cssRules = property(lambda self: self._cssRules, _setCssRules, - "All Rules in this style sheet, a " - ":class:`~cssutils.css.CSSRuleList`.") - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSMediaRule(self) - - def _setCssText(self, cssText): - """ - :param cssText: - a parseable string or a tuple of (cssText, dict-of-namespaces) - :Exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if a specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - # media "name"? { cssRules } - super(CSSMediaRule, self)._setCssText(cssText) - - # might be (cssText, namespaces) - cssText, namespaces = self._splitNamespacesOff(cssText) - try: - # use parent style sheet ones if available - namespaces = self.parentStyleSheet.namespaces - except AttributeError: - pass - - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if self._type(attoken) != self._prods.MEDIA_SYM: - self._log.error(u'CSSMediaRule: No CSSMediaRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldmedia = cssutils.stylesheets.MediaList() - oldmedia._absorb(self.media) - - # media - wellformed = True - mediatokens, end = self._tokensupto2(tokenizer, - mediaqueryendonly=True, - separateEnd=True) - if u'{' == self._tokenvalue(end) or self._prods.STRING == self._type(end): - self.media.mediaText = mediatokens - - # name (optional) - name = None - nameseq = self._tempSeq() - if self._prods.STRING == self._type(end): - name = self._stringtokenvalue(end) - # TODO: for now comments are lost after name - nametokens, end = self._tokensupto2(tokenizer, - blockstartonly=True, - separateEnd=True) - wellformed, expected = self._parse(None, nameseq, nametokens, {}) - if not wellformed: - self._log.error(u'CSSMediaRule: Syntax Error: %s' % - self._valuestr(cssText)) - - - # check for { - if u'{' != self._tokenvalue(end): - self._log.error(u'CSSMediaRule: No "{" found: %s' % - self._valuestr(cssText)) - return - - # cssRules - cssrulestokens, braceOrEOF = self._tokensupto2(tokenizer, - mediaendonly=True, - separateEnd=True) - nonetoken = self._nexttoken(tokenizer, None) - if 'EOF' == self._type(braceOrEOF): - # HACK!!! - # TODO: Not complete, add EOF to rule and } to @media - cssrulestokens.append(braceOrEOF) - braceOrEOF = ('CHAR', '}', 0, 0) - self._log.debug(u'CSSMediaRule: Incomplete, adding "}".', - token=braceOrEOF, neverraise=True) - - if u'}' != self._tokenvalue(braceOrEOF): - self._log.error(u'CSSMediaRule: No "}" found.', - token=braceOrEOF) - elif nonetoken: - self._log.error(u'CSSMediaRule: Trailing content found.', - token=nonetoken) - else: - # for closures: must be a mutable - newcssrules = [] #cssutils.css.CSSRuleList() - new = {'wellformed': True } - - def ruleset(expected, seq, token, tokenizer): - rule = cssutils.css.CSSStyleRule(parentRule=self) - rule.cssText = (self._tokensupto2(tokenizer, token), - namespaces) - if rule.wellformed: - rule._parentStyleSheet=self.parentStyleSheet - seq.append(rule) - return expected - - def atrule(expected, seq, token, tokenizer): - # TODO: get complete rule! - tokens = self._tokensupto2(tokenizer, token) - atval = self._tokenvalue(token) - if atval in ('@charset ', '@font-face', '@import', '@namespace', - '@page', '@media'): - self._log.error( - u'CSSMediaRule: This rule is not allowed in CSSMediaRule - ignored: %s.' - % self._valuestr(tokens), - token = token, - error=xml.dom.HierarchyRequestErr) - else: - rule = cssutils.css.CSSUnknownRule(parentRule=self, - parentStyleSheet=self.parentStyleSheet) - rule.cssText = tokens - if rule.wellformed: - seq.append(rule) - return expected - - def COMMENT(expected, seq, token, tokenizer=None): - seq.append(cssutils.css.CSSComment([token])) - return expected - - tokenizer = (t for t in cssrulestokens) # TODO: not elegant! - wellformed, expected = self._parse(braceOrEOF, - newcssrules, - tokenizer, { - 'COMMENT': COMMENT, - 'CHARSET_SYM': atrule, - 'FONT_FACE_SYM': atrule, - 'IMPORT_SYM': atrule, - 'NAMESPACE_SYM': atrule, - 'PAGE_SYM': atrule, - 'MEDIA_SYM': atrule, - 'ATKEYWORD': atrule - }, - default=ruleset, - new=new) - - # no post condition - if self.media.wellformed and wellformed: - self.name = name - self._setSeq(nameseq) - del self._cssRules[:] - for r in newcssrules: - self._cssRules.append(r) - - else: - # RESET - self.media._absorb(oldmedia) - - cssText = property(_getCssText, _setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _setName(self, name): - if isinstance(name, basestring) or name is None: - # "" or '' - if not name: - name = None - - self._name = name - else: - self._log.error(u'CSSImportRule: Not a valid name: %s' % name) - - name = property(lambda self: self._name, _setName, - doc=u"An optional name for this media rule.") - - media = property(lambda self: self._media, - doc=u"(DOM readonly) A list of media types for this rule of type " - u":class:`~cssutils.stylesheets.MediaList`.") - - def deleteRule(self, index): - """ - Delete the rule at `index` from the media block. - - :param index: - The `index` of the rule to be removed from the media block's rule - list. For an `index` < 0 **no** :exc:`~xml.dom.IndexSizeErr` is - raised but rules for normal Python lists are used. E.g. - ``deleteRule(-1)`` removes the last rule in cssRules. - - `index` may also be a CSSRule object which will then be removed - from the media block. - - :Exceptions: - - :exc:`~xml.dom.IndexSizeErr`: - Raised if the specified index does not correspond to a rule in - the media rule list. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this media rule is readonly. - """ - self._checkReadonly() - - if isinstance(index, cssrule.CSSRule): - for i, r in enumerate(self.cssRules): - if index == r: - index = i - break - else: - raise xml.dom.IndexSizeErr(u"CSSMediaRule: Not a rule in" - " this rule'a cssRules list: %s" - % index) - - try: - self._cssRules[index]._parentRule = None # detach - del self._cssRules[index] # remove from @media - except IndexError: - raise xml.dom.IndexSizeErr( - u'CSSMediaRule: %s is not a valid index in the rulelist of length %i' % ( - index, self._cssRules.length)) - - def add(self, rule): - """Add `rule` to end of this mediarule. - Same as :meth:`~cssutils.css.CSSMediaRule.insertRule`.""" - self.insertRule(rule, index=None) - - def insertRule(self, rule, index=None): - """ - Insert `rule` into the media block. - - :param rule: - the parsable text representing the `rule` to be inserted. For rule - sets this contains both the selector and the style declaration. - For at-rules, this specifies both the at-identifier and the rule - content. - - cssutils also allows rule to be a valid :class:`~cssutils.css.CSSRule` - object. - - :param index: - before the specified `rule` will be inserted. - If the specified `index` is - equal to the length of the media blocks's rule collection, the - rule will be added to the end of the media block. - If index is not given or None rule will be appended to rule - list. - - :returns: - the index within the media block's rule collection of the - newly inserted rule. - - :exceptions: - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the `rule` cannot be inserted at the specified `index`, - e.g., if an @import rule is inserted after a standard rule set - or other at-rule. - - :exc:`~xml.dom.IndexSizeErr`: - Raised if the specified `index` is not a valid insertion point. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this media rule is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified `rule` has a syntax error and is - unparsable. - - """ - self._checkReadonly() - - # check position - if index is None: - index = len(self._cssRules) - elif index < 0 or index > self._cssRules.length: - raise xml.dom.IndexSizeErr( - u'CSSMediaRule: Invalid index %s for CSSRuleList with a length of %s.' % ( - index, self._cssRules.length)) - - # parse - if isinstance(rule, basestring): - tempsheet = cssutils.css.CSSStyleSheet() - tempsheet.cssText = rule - if len(tempsheet.cssRules) != 1 or (tempsheet.cssRules and - not isinstance(tempsheet.cssRules[0], cssutils.css.CSSRule)): - self._log.error(u'CSSMediaRule: Invalid Rule: %s' % rule) - return - rule = tempsheet.cssRules[0] - - elif isinstance(rule, cssutils.css.CSSRuleList): - # insert all rules - for i, r in enumerate(rule): - self.insertRule(r, index + i) - return index - - elif not isinstance(rule, cssutils.css.CSSRule): - self._log.error(u'CSSMediaRule: Not a CSSRule: %s' % rule) - return - - # CHECK HIERARCHY - # @charset @import @page @namespace @media - if isinstance(rule, cssutils.css.CSSCharsetRule) or \ - isinstance(rule, cssutils.css.CSSFontFaceRule) or \ - isinstance(rule, cssutils.css.CSSImportRule) or \ - isinstance(rule, cssutils.css.CSSNamespaceRule) or \ - isinstance(rule, cssutils.css.CSSPageRule) or \ - isinstance(rule, CSSMediaRule): - self._log.error(u'CSSMediaRule: This type of rule is not allowed here: %s' % - rule.cssText, - error=xml.dom.HierarchyRequestErr) - return - - self._cssRules.insert(index, rule) - rule._parentRule = self - rule._parentStyleSheet = self.parentStyleSheet - return index - - type = property(lambda self: self.MEDIA_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - wellformed = property(lambda self: self.media.wellformed) diff --git a/src/cssutils/css/cssnamespacerule.py b/src/cssutils/css/cssnamespacerule.py deleted file mode 100644 index ba2e84810c..0000000000 --- a/src/cssutils/css/cssnamespacerule.py +++ /dev/null @@ -1,282 +0,0 @@ -"""CSSNamespaceRule currently implements http://dev.w3.org/csswg/css3-namespace/""" -__all__ = ['CSSNamespaceRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssnamespacerule.py 1638 2009-01-13 20:39:33Z cthedot $' - -from cssutils.helper import Deprecated -import cssrule -import cssutils -import xml.dom - -class CSSNamespaceRule(cssrule.CSSRule): - """ - Represents an @namespace rule within a CSS style sheet. - - The @namespace at-rule declares a namespace prefix and associates - it with a given namespace (a string). This namespace prefix can then be - used in namespace-qualified names such as those described in the - Selectors Module [SELECT] or the Values and Units module [CSS3VAL]. - - Dealing with these rules directly is not needed anymore, easier is - the use of :attr:`cssutils.css.CSSStyleSheet.namespaces`. - - Format:: - - namespace - : NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S* - ; - namespace_prefix - : IDENT - ; - """ - def __init__(self, namespaceURI=None, prefix=None, cssText=None, - parentRule=None, parentStyleSheet=None, readonly=False): - """ - :Parameters: - namespaceURI - The namespace URI (a simple string!) which is bound to the - given prefix. If no prefix is set - (``CSSNamespaceRule.prefix==''``) the namespace defined by - namespaceURI is set as the default namespace - prefix - The prefix used in the stylesheet for the given - ``CSSNamespaceRule.uri``. - cssText - if no namespaceURI is given cssText must be given to set - a namespaceURI as this is readonly later on - parentStyleSheet - sheet where this rule belongs to - - Do not use as positional but as keyword parameters only! - - If readonly allows setting of properties in constructor only - - format namespace:: - - namespace - : NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S* - ; - namespace_prefix - : IDENT - ; - """ - super(CSSNamespaceRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@namespace' - self._prefix = u'' - self._namespaceURI = None - - if namespaceURI: - self.namespaceURI = namespaceURI - self.prefix = prefix - tempseq = self._tempSeq() - tempseq.append(self.prefix, 'prefix') - tempseq.append(self.namespaceURI, 'namespaceURI') - self._setSeq(tempseq) - elif cssText is not None: - self.cssText = cssText - - if parentStyleSheet: - self._parentStyleSheet = parentStyleSheet - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(namespaceURI=%r, prefix=%r)" % ( - self.__class__.__name__, self.namespaceURI, self.prefix) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.namespaceURI, self.prefix, id(self)) - - def _getCssText(self): - """Return serialized property cssText""" - return cssutils.ser.do_CSSNamespaceRule(self) - - def _setCssText(self, cssText): - """ - :param cssText: initial value for this rules cssText which is parsed - :exceptions: - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - """ - super(CSSNamespaceRule, self)._setCssText(cssText) - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if self._type(attoken) != self._prods.NAMESPACE_SYM: - self._log.error(u'CSSNamespaceRule: No CSSNamespaceRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # for closures: must be a mutable - new = {'keyword': self._tokenvalue(attoken), - 'prefix': u'', - 'uri': None, - 'wellformed': True - } - - def _ident(expected, seq, token, tokenizer=None): - # the namespace prefix, optional - if 'prefix or uri' == expected: - new['prefix'] = self._tokenvalue(token) - seq.append(new['prefix'], 'prefix') - return 'uri' - else: - new['wellformed'] = False - self._log.error( - u'CSSNamespaceRule: Unexpected ident.', token) - return expected - - def _string(expected, seq, token, tokenizer=None): - # the namespace URI as a STRING - if expected.endswith('uri'): - new['uri'] = self._stringtokenvalue(token) - seq.append(new['uri'], 'namespaceURI') - return ';' - - else: - new['wellformed'] = False - self._log.error( - u'CSSNamespaceRule: Unexpected string.', token) - return expected - - def _uri(expected, seq, token, tokenizer=None): - # the namespace URI as URI which is DEPRECATED - if expected.endswith('uri'): - uri = self._uritokenvalue(token) - new['uri'] = uri - seq.append(new['uri'], 'namespaceURI') - return ';' - else: - new['wellformed'] = False - self._log.error( - u'CSSNamespaceRule: Unexpected URI.', token) - return expected - - def _char(expected, seq, token, tokenizer=None): - # final ; - val = self._tokenvalue(token) - if ';' == expected and u';' == val: - return 'EOF' - else: - new['wellformed'] = False - self._log.error( - u'CSSNamespaceRule: Unexpected char.', token) - return expected - - # "NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S*" - newseq = self._tempSeq() - wellformed, expected = self._parse(expected='prefix or uri', - seq=newseq, tokenizer=tokenizer, - productions={'IDENT': _ident, - 'STRING': _string, - 'URI': _uri, - 'CHAR': _char}, - new=new) - - # wellformed set by parse - wellformed = wellformed and new['wellformed'] - - # post conditions - if new['uri'] is None: - wellformed = False - self._log.error(u'CSSNamespaceRule: No namespace URI found: %s' % - self._valuestr(cssText)) - - if expected != 'EOF': - wellformed = False - self._log.error(u'CSSNamespaceRule: No ";" found: %s' % - self._valuestr(cssText)) - - # set all - if wellformed: - self.atkeyword = new['keyword'] - self._prefix = new['prefix'] - self.namespaceURI = new['uri'] - self._setSeq(newseq) - - cssText = property(fget=_getCssText, fset=_setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _setNamespaceURI(self, namespaceURI): - """ - :param namespaceURI: the initial value for this rules namespaceURI - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - (CSSRule) Raised if this rule is readonly or a namespaceURI is - already set in this rule. - """ - self._checkReadonly() - if not self._namespaceURI: - # initial setting - self._namespaceURI = namespaceURI - tempseq = self._tempSeq() - tempseq.append(namespaceURI, 'namespaceURI') - self._setSeq(tempseq) # makes seq readonly! - elif self._namespaceURI != namespaceURI: - self._log.error(u'CSSNamespaceRule: namespaceURI is readonly.', - error=xml.dom.NoModificationAllowedErr) - - namespaceURI = property(lambda self: self._namespaceURI, _setNamespaceURI, - doc="URI (handled as simple string) of the defined namespace.") - - def _setPrefix(self, prefix=None): - """ - :param prefix: the new prefix - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - if not prefix: - prefix = u'' - else: - tokenizer = self._tokenize2(prefix) - prefixtoken = self._nexttoken(tokenizer, None) - if not prefixtoken or self._type(prefixtoken) != self._prods.IDENT: - self._log.error(u'CSSNamespaceRule: No valid prefix "%s".' % - self._valuestr(prefix), - error=xml.dom.SyntaxErr) - return - else: - prefix = self._tokenvalue(prefixtoken) - # update seg - for i, x in enumerate(self._seq): - if x == self._prefix: - self._seq[i] = (prefix, 'prefix', None, None) - break - else: - # put prefix at the beginning! - self._seq[0] = (prefix, 'prefix', None, None) - - # set new prefix - self._prefix = prefix - - prefix = property(lambda self: self._prefix, _setPrefix, - doc="Prefix used for the defined namespace.") - -# def _setParentStyleSheet(self, parentStyleSheet): -# self._parentStyleSheet = parentStyleSheet -# -# parentStyleSheet = property(lambda self: self._parentStyleSheet, -# _setParentStyleSheet, -# doc=u"Containing CSSStyleSheet.") - - type = property(lambda self: self.NAMESPACE_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - wellformed = property(lambda self: self.namespaceURI is not None) - \ No newline at end of file diff --git a/src/cssutils/css/csspagerule.py b/src/cssutils/css/csspagerule.py deleted file mode 100644 index 5727af99fe..0000000000 --- a/src/cssutils/css/csspagerule.py +++ /dev/null @@ -1,273 +0,0 @@ -"""CSSPageRule implements DOM Level 2 CSS CSSPageRule.""" -__all__ = ['CSSPageRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: csspagerule.py 1868 2009-10-17 19:36:54Z cthedot $' - -from cssstyledeclaration import CSSStyleDeclaration -from selectorlist import SelectorList -import cssrule -import cssutils -import xml.dom - -class CSSPageRule(cssrule.CSSRule): - """ - The CSSPageRule interface represents a @page rule within a CSS style - sheet. The @page rule is used to specify the dimensions, orientation, - margins, etc. of a page box for paged media. - - Format:: - - page - : PAGE_SYM S* pseudo_page? S* - LBRACE S* declaration [ ';' S* declaration ]* '}' S* - ; - pseudo_page - : ':' IDENT # :first, :left, :right in CSS 2.1 - ; - """ - def __init__(self, selectorText=None, style=None, parentRule=None, - parentStyleSheet=None, readonly=False): - """ - If readonly allows setting of properties in constructor only. - - :param selectorText: - type string - :param style: - CSSStyleDeclaration for this CSSStyleRule - """ - super(CSSPageRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@page' - tempseq = self._tempSeq() - if selectorText: - self.selectorText = selectorText - tempseq.append(self.selectorText, 'selectorText') - else: - self._selectorText = self._tempSeq() - - self._style = CSSStyleDeclaration(parentRule=self) - if style: - self.style = style - tempseq.append(self.style, 'style') - - self._setSeq(tempseq) - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(selectorText=%r, style=%r)" % ( - self.__class__.__name__, self.selectorText, self.style.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.selectorText, self.style.cssText, - id(self)) - - def __parseSelectorText(self, selectorText): - """ - Parse `selectorText` which may also be a list of tokens - and returns (selectorText, seq). - - see _setSelectorText for details - """ - # for closures: must be a mutable - new = {'wellformed': True, 'last-S': False} - - def _char(expected, seq, token, tokenizer=None): - # pseudo_page, :left, :right or :first - val = self._tokenvalue(token) - if not new['last-S'] and expected in ['page', ': or EOF'] and u':' == val: - try: - identtoken = tokenizer.next() - except StopIteration: - self._log.error( - u'CSSPageRule selectorText: No IDENT found.', token) - else: - ival, ityp = self._tokenvalue(identtoken), self._type(identtoken) - if self._prods.IDENT != ityp: - self._log.error( - u'CSSPageRule selectorText: Expected IDENT but found: %r' % - ival, token) - else: - seq.append(val + ival, 'pseudo') - return 'EOF' - return expected - else: - new['wellformed'] = False - self._log.error( - u'CSSPageRule selectorText: Unexpected CHAR: %r' % val, token) - return expected - - def S(expected, seq, token, tokenizer=None): - "Does not raise if EOF is found." - if expected == ': or EOF': - # pseudo must directly follow IDENT if given - new['last-S'] = True - return expected - - def IDENT(expected, seq, token, tokenizer=None): - "" - val = self._tokenvalue(token) - if 'page' == expected: - seq.append(val, 'IDENT') - return ': or EOF' - else: - new['wellformed'] = False - self._log.error( - u'CSSPageRule selectorText: Unexpected IDENT: %r' % val, token) - return expected - - def COMMENT(expected, seq, token, tokenizer=None): - "Does not raise if EOF is found." - seq.append(cssutils.css.CSSComment([token]), 'COMMENT') - return expected - - newseq = self._tempSeq() - wellformed, expected = self._parse(expected='page', - seq=newseq, tokenizer=self._tokenize2(selectorText), - productions={'CHAR': _char, - 'IDENT': IDENT, - 'COMMENT': COMMENT, - 'S': S}, - new=new) - wellformed = wellformed and new['wellformed'] - - # post conditions - if expected == 'ident': - self._log.error( - u'CSSPageRule selectorText: No valid selector: %r' % - self._valuestr(selectorText)) - -# if not newselector in (None, u':first', u':left', u':right'): -# self._log.warn(u'CSSPageRule: Unknown CSS 2.1 @page selector: %r' % -# newselector, neverraise=True) - return wellformed, newseq - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSPageRule(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSPageRule, self)._setCssText(cssText) - - tokenizer = self._tokenize2(cssText) - if self._type(self._nexttoken(tokenizer)) != self._prods.PAGE_SYM: - self._log.error(u'CSSPageRule: No CSSPageRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldstyle = CSSStyleDeclaration() - oldstyle._absorb(self.style) - - ok = True - selectortokens, startbrace = self._tokensupto2(tokenizer, - blockstartonly=True, - separateEnd=True) - styletokens, braceorEOFtoken = self._tokensupto2(tokenizer, - blockendonly=True, - separateEnd=True) - nonetoken = self._nexttoken(tokenizer) - if self._tokenvalue(startbrace) != u'{': - ok = False - self._log.error( - u'CSSPageRule: No start { of style declaration found: %r' % - self._valuestr(cssText), startbrace) - elif nonetoken: - ok = False - self._log.error( - u'CSSPageRule: Trailing content found.', token=nonetoken) - - selok, newselectorseq = self.__parseSelectorText(selectortokens) - ok = ok and selok - - val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken) - if val != u'}' and typ != 'EOF': - ok = False - self._log.error( - u'CSSPageRule: No "}" after style declaration found: %r' % - self._valuestr(cssText)) - else: - if 'EOF' == typ: - # add again as style needs it - styletokens.append(braceorEOFtoken) - self.style.cssText = styletokens - - if ok: - # TODO: TEST and REFS - self._selectorText = newselectorseq - else: - # RESET - self.style._absorb(oldstyle) - - cssText = property(_getCssText, _setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _getSelectorText(self): - """Wrapper for cssutils Selector object.""" - return cssutils.ser.do_CSSPageRuleSelector(self._selectorText)#self._selectorText - - def _setSelectorText(self, selectorText): - """Wrapper for cssutils Selector object. - - :param selectorText: - DOM String, in CSS 2.1 one of - - - :first - - :left - - :right - - empty - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - and is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - - # may raise SYNTAX_ERR - wellformed, newseq = self.__parseSelectorText(selectorText) - if wellformed: - self._selectorText = newseq - - selectorText = property(_getSelectorText, _setSelectorText, - doc="""(DOM) The parsable textual representation of the page selector for the rule.""") - - def _setStyle(self, style): - """ - :param style: - a CSSStyleDeclaration or string - """ - self._checkReadonly() - if isinstance(style, basestring): - self._style.cssText = style - else: - self._style = style - self._style.parentRule = self - - style = property(lambda self: self._style, _setStyle, - doc="(DOM) The declaration-block of this rule set, " - "a :class:`~cssutils.css.CSSStyleDeclaration`.") - - type = property(lambda self: self.PAGE_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - # constant but needed: - wellformed = property(lambda self: True) diff --git a/src/cssutils/css/cssproperties.py b/src/cssutils/css/cssproperties.py deleted file mode 100644 index fb55ce0dc4..0000000000 --- a/src/cssutils/css/cssproperties.py +++ /dev/null @@ -1,122 +0,0 @@ -"""CSS2Properties (partly!) implements DOM Level 2 CSS CSS2Properties used -by CSSStyleDeclaration - -TODO: CSS2Properties - If an implementation does implement this interface, it is expected to - understand the specific syntax of the shorthand properties, and apply - their semantics; when the margin property is set, for example, the - marginTop, marginRight, marginBottom and marginLeft properties are - actually being set by the underlying implementation. - - When dealing with CSS "shorthand" properties, the shorthand properties - should be decomposed into their component longhand properties as - appropriate, and when querying for their value, the form returned - should be the shortest form exactly equivalent to the declarations made - in the ruleset. However, if there is no shorthand declaration that - could be added to the ruleset without changing in any way the rules - already declared in the ruleset (i.e., by adding longhand rules that - were previously not declared in the ruleset), then the empty string - should be returned for the shorthand property. - - For example, querying for the font property should not return - "normal normal normal 14pt/normal Arial, sans-serif", when - "14pt Arial, sans-serif" suffices. (The normals are initial values, and - are implied by use of the longhand property.) - - If the values for all the longhand properties that compose a particular - string are the initial values, then a string consisting of all the - initial values should be returned (e.g. a border-width value of - "medium" should be returned as such, not as ""). - - For some shorthand properties that take missing values from other - sides, such as the margin, padding, and border-[width|style|color] - properties, the minimum number of sides possible should be used; i.e., - "0px 10px" will be returned instead of "0px 10px 0px 10px". - - If the value of a shorthand property can not be decomposed into its - component longhand properties, as is the case for the font property - with a value of "menu", querying for the values of the component - longhand properties should return the empty string. - -TODO: CSS2Properties DOMImplementation - The interface found within this section are not mandatory. A DOM - application can use the hasFeature method of the DOMImplementation - interface to determine whether it is supported or not. The feature - string for this extended interface listed in this section is "CSS2" - and the version is "2.0". - -""" -__all__ = ['CSS2Properties'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssproperties.py 1638 2009-01-13 20:39:33Z cthedot $' - -import cssutils.profiles -import re - -class CSS2Properties(object): - """The CSS2Properties interface represents a convenience mechanism - for retrieving and setting properties within a CSSStyleDeclaration. - The attributes of this interface correspond to all the properties - specified in CSS2. Getting an attribute of this interface is - equivalent to calling the getPropertyValue method of the - CSSStyleDeclaration interface. Setting an attribute of this - interface is equivalent to calling the setProperty method of the - CSSStyleDeclaration interface. - - cssutils actually also allows usage of ``del`` to remove a CSS property - from a CSSStyleDeclaration. - - This is an abstract class, the following functions need to be present - in inheriting class: - - - ``_getP`` - - ``_setP`` - - ``_delP`` - """ - # actual properties are set after the class definition! - def _getP(self, CSSname): pass - def _setP(self, CSSname, value): pass - def _delP(self, CSSname): pass - - -_reCSStoDOMname = re.compile('-[a-z]', re.I) -def _toDOMname(CSSname): - """Returns DOMname for given CSSname e.g. for CSSname 'font-style' returns - 'fontStyle'. - """ - def _doCSStoDOMname2(m): return m.group(0)[1].capitalize() - return _reCSStoDOMname.sub(_doCSStoDOMname2, CSSname) - -_reDOMtoCSSname = re.compile('([A-Z])[a-z]+') -def _toCSSname(DOMname): - """Return CSSname for given DOMname e.g. for DOMname 'fontStyle' returns - 'font-style'. - """ - def _doDOMtoCSSname2(m): return '-' + m.group(0).lower() - return _reDOMtoCSSname.sub(_doDOMtoCSSname2, DOMname) - -# add list of DOMname properties to CSS2Properties -# used for CSSStyleDeclaration to check if allowed properties -# but somehow doubled, any better way? -CSS2Properties._properties = [] -for group in cssutils.profiles.properties: - for name in cssutils.profiles.properties[group]: - CSS2Properties._properties.append(_toDOMname(name)) - - -# add CSS2Properties to CSSStyleDeclaration: -def __named_property_def(DOMname): - """ - Closure to keep name known in each properties accessor function - DOMname is converted to CSSname here, so actual calls use CSSname. - """ - CSSname = _toCSSname(DOMname) - def _get(self): return self._getP(CSSname) - def _set(self, value): self._setP(CSSname, value) - def _del(self): self._delP(CSSname) - return _get, _set, _del - -# add all CSS2Properties to CSSStyleDeclaration -for DOMname in CSS2Properties._properties: - setattr(CSS2Properties, DOMname, - property(*__named_property_def(DOMname))) diff --git a/src/cssutils/css/cssrule.py b/src/cssutils/css/cssrule.py deleted file mode 100644 index 587d380c29..0000000000 --- a/src/cssutils/css/cssrule.py +++ /dev/null @@ -1,106 +0,0 @@ -"""CSSRule implements DOM Level 2 CSS CSSRule.""" -__all__ = ['CSSRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssrule.py 1855 2009-10-07 17:03:19Z cthedot $' - -import cssutils -import xml.dom - -class CSSRule(cssutils.util.Base2): - """Abstract base interface for any type of CSS statement. This includes - both rule sets and at-rules. An implementation is expected to preserve - all rules specified in a CSS style sheet, even if the rule is not - recognized by the parser. Unrecognized rules are represented using the - :class:`CSSUnknownRule` interface. - """ - - """ - CSSRule type constants. - An integer indicating which type of rule this is. - """ - COMMENT = -1 # cssutils only - UNKNOWN_RULE = 0 #u - STYLE_RULE = 1 #s - CHARSET_RULE = 2 #c - IMPORT_RULE = 3 #i - MEDIA_RULE = 4 #m - FONT_FACE_RULE = 5 #f - PAGE_RULE = 6 #p - NAMESPACE_RULE = 7 # CSSOM - VARIABLES_RULE = 8 # CSS Variables - - _typestrings = ['UNKNOWN_RULE', 'STYLE_RULE', 'CHARSET_RULE', 'IMPORT_RULE', - 'MEDIA_RULE', 'FONT_FACE_RULE', 'PAGE_RULE', 'NAMESPACE_RULE', - 'VARIABLES_RULE', - 'COMMENT'] - - def __init__(self, parentRule=None, parentStyleSheet=None, readonly=False): - """Set common attributes for all rules.""" - super(CSSRule, self).__init__() - self._parent = parentRule - self._parentRule = parentRule - self._parentStyleSheet = parentStyleSheet - self._setSeq(self._tempSeq()) - # must be set after initialization of #inheriting rule is done - self._readonly = False - - def _setAtkeyword(self, akw): - """Check if new keyword fits the rule it is used for.""" - if not self.atkeyword or (self._normalize(akw) == - self._normalize(self.atkeyword)): - self._atkeyword = akw - else: - self._log.error(u'%s: Invalid atkeyword for this rule: %r' % - (self._normalize(self.atkeyword), akw), - error=xml.dom.InvalidModificationErr) - - atkeyword = property(lambda self: self._atkeyword, _setAtkeyword, - doc=u"Literal keyword of an @rule (e.g. ``@IMport``).") - - def _setCssText(self, cssText): - """ - :param cssText: - A parsable DOMString. - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - self._checkReadonly() - - cssText = property(lambda self: u'', _setCssText, - doc="(DOM) The parsable textual representation of the " - "rule. This reflects the current state of the rule " - "and not its initial value.") - - parent = property(lambda self: self._parent, - doc="The Parent Node of this CSSRule (currently if a " - "CSSStyleDeclaration only!) or None.") - - parentRule = property(lambda self: self._parentRule, - doc="If this rule is contained inside " - "another rule (e.g. a style rule inside " - "an @media block), this is the containing " - "rule. If this rule is not nested inside " - "any other rules, this returns None.") - - parentStyleSheet = property(lambda self: self._parentStyleSheet, - doc="The style sheet that contains this rule.") - - type = property(lambda self: self.UNKNOWN_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - typeString = property(lambda self: CSSRule._typestrings[self.type], - doc="Descriptive name of this rule's type.") - - wellformed = property(lambda self: False, - doc=u"If the rule is wellformed.") diff --git a/src/cssutils/css/cssrulelist.py b/src/cssutils/css/cssrulelist.py deleted file mode 100644 index a20f19cf47..0000000000 --- a/src/cssutils/css/cssrulelist.py +++ /dev/null @@ -1,47 +0,0 @@ -"""CSSRuleList implements DOM Level 2 CSS CSSRuleList. -Partly also http://dev.w3.org/csswg/cssom/#the-cssrulelist.""" -__all__ = ['CSSRuleList'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssrulelist.py 1824 2009-08-01 21:00:34Z cthedot $' - -class CSSRuleList(list): - """The CSSRuleList object represents an (ordered) list of statements. - - The items in the CSSRuleList are accessible via an integral index, - starting from 0. - - Subclasses a standard Python list so theoretically all standard list - methods are available. Setting methods like ``__init__``, ``append``, - ``extend`` or ``__setslice__`` are added later on instances of this - class if so desired. - E.g. CSSStyleSheet adds ``append`` which is not available in a simple - instance of this class! - """ - def __init__(self, *ignored): - "Nothing is set as this must also be defined later." - pass - - def __notimplemented(self, *ignored): - "Implemented in class using a CSSRuleList only." - raise NotImplementedError( - 'Must be implemented by class using an instance of this class.') - - append = extend = __setitem__ = __setslice__ = __notimplemented - - def item(self, index): - """(DOM) Retrieve a CSS rule by ordinal `index`. The order in this - collection represents the order of the rules in the CSS style - sheet. If index is greater than or equal to the number of rules in - the list, this returns None. - - Returns CSSRule, the style rule at the index position in the - CSSRuleList, or None if that is not a valid index. - """ - try: - return self[index] - except IndexError: - return None - - length = property(lambda self: len(self), - doc="(DOM) The number of CSSRules in the list.") - diff --git a/src/cssutils/css/cssstyledeclaration.py b/src/cssutils/css/cssstyledeclaration.py deleted file mode 100644 index 626245099d..0000000000 --- a/src/cssutils/css/cssstyledeclaration.py +++ /dev/null @@ -1,642 +0,0 @@ -"""CSSStyleDeclaration implements DOM Level 2 CSS CSSStyleDeclaration and -extends CSS2Properties - -see - http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#parsing-errors - -Unknown properties ------------------- -User agents must ignore a declaration with an unknown property. -For example, if the style sheet is:: - - H1 { color: red; rotation: 70minutes } - -the user agent will treat this as if the style sheet had been:: - - H1 { color: red } - -Cssutils gives a message about any unknown properties but -keeps any property (if syntactically correct). - -Illegal values --------------- -User agents must ignore a declaration with an illegal value. For example:: - - IMG { float: left } /* correct CSS2 */ - IMG { float: left here } /* "here" is not a value of 'float' */ - IMG { background: "red" } /* keywords cannot be quoted in CSS2 */ - IMG { border-width: 3 } /* a unit must be specified for length values */ - -A CSS2 parser would honor the first rule and ignore the rest, as if the -style sheet had been:: - - IMG { float: left } - IMG { } - IMG { } - IMG { } - -Cssutils again will issue a message (WARNING in this case) about invalid -CSS2 property values. - -TODO: - This interface is also used to provide a read-only access to the - computed values of an element. See also the ViewCSS interface. - - - return computed values and not literal values - - simplify unit pairs/triples/quadruples - 2px 2px 2px 2px -> 2px for border/padding... - - normalize compound properties like: - background: no-repeat left url() #fff - -> background: #fff url() no-repeat left -""" -__all__ = ['CSSStyleDeclaration', 'Property'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssstyledeclaration.py 1879 2009-11-17 20:35:04Z cthedot $' - -from cssproperties import CSS2Properties -from property import Property -import cssutils -import xml.dom - -class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2): - """The CSSStyleDeclaration class represents a single CSS declaration - block. This class may be used to determine the style properties - currently set in a block or to set style properties explicitly - within the block. - - While an implementation may not recognize all CSS properties within - a CSS declaration block, it is expected to provide access to all - specified properties in the style sheet through the - CSSStyleDeclaration interface. - Furthermore, implementations that support a specific level of CSS - should correctly handle CSS shorthand properties for that level. For - a further discussion of shorthand properties, see the CSS2Properties - interface. - - Additionally the CSS2Properties interface is implemented. - - $css2propertyname - All properties defined in the CSS2Properties class are available - as direct properties of CSSStyleDeclaration with their respective - DOM name, so e.g. ``fontStyle`` for property 'font-style'. - - These may be used as:: - - >>> style = CSSStyleDeclaration(cssText='color: red') - >>> style.color = 'green' - >>> print style.color - green - >>> del style.color - >>> print style.color - - - Format:: - - [Property: Value Priority?;]* [Property: Value Priority?]? - """ - def __init__(self, cssText=u'', parentRule=None, readonly=False): - """ - :param cssText: - Shortcut, sets CSSStyleDeclaration.cssText - :param parentRule: - The CSS rule that contains this declaration block or - None if this CSSStyleDeclaration is not attached to a CSSRule. - :param readonly: - defaults to False - """ - super(CSSStyleDeclaration, self).__init__() - self._parentRule = parentRule - self.cssText = cssText - self._readonly = readonly - - def __contains__(self, nameOrProperty): - """Check if a property (or a property with given name) is in style. - - :param name: - a string or Property, uses normalized name and not literalname - """ - if isinstance(nameOrProperty, Property): - name = nameOrProperty.name - else: - name = self._normalize(nameOrProperty) - return name in self.__nnames() - - def __iter__(self): - """Iterator of set Property objects with different normalized names.""" - def properties(): - for name in self.__nnames(): - yield self.getProperty(name) - return properties() - - def keys(self): - """Analoguous to standard dict returns property names which are set in - this declaration.""" - return list(self.__nnames()) - - def __getitem__(self, CSSName): - """Retrieve the value of property ``CSSName`` from this declaration. - - ``CSSName`` will be always normalized. - """ - return self.getPropertyValue(CSSName) - - def __setitem__(self, CSSName, value): - """Set value of property ``CSSName``. ``value`` may also be a tuple of - (value, priority), e.g. style['color'] = ('red', 'important') - - ``CSSName`` will be always normalized. - """ - priority = None - if type(value) == tuple: - value, priority = value - - return self.setProperty(CSSName, value, priority) - - def __delitem__(self, CSSName): - """Delete property ``CSSName`` from this declaration. - If property is not in this declaration return u'' just like - removeProperty. - - ``CSSName`` will be always normalized. - """ - return self.removeProperty(CSSName) - - def __setattr__(self, n, v): - """Prevent setting of unknown properties on CSSStyleDeclaration - which would not work anyway. For these - ``CSSStyleDeclaration.setProperty`` MUST be called explicitly! - - TODO: - implementation of known is not really nice, any alternative? - """ - known = ['_tokenizer', '_log', '_ttypes', - '_seq', 'seq', 'parentRule', '_parentRule', 'cssText', - 'valid', 'wellformed', - '_readonly', '_profiles'] - known.extend(CSS2Properties._properties) - if n in known: - super(CSSStyleDeclaration, self).__setattr__(n, v) - else: - raise AttributeError( - 'Unknown CSS Property, ``CSSStyleDeclaration.setProperty("%s", ...)`` MUST be used.' - % n) - - def __repr__(self): - return "cssutils.css.%s(cssText=%r)" % ( - self.__class__.__name__, self.getCssText(separator=u' ')) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.length, - len(self.getProperties(all=True)), id(self)) - - def __nnames(self): - """Return iterator for all different names in order as set - if names are set twice the last one is used (double reverse!) - """ - names = [] - for item in reversed(self.seq): - val = item.value - if isinstance(val, Property) and not val.name in names: - names.append(val.name) - return reversed(names) - - def _absorb(self, other): - """Replace all own data with data from other object.""" - self._parentRule = other._parentRule - self.seq.absorb(other.seq) - self._readonly = other._readonly - - # overwritten accessor functions for CSS2Properties' properties - def _getP(self, CSSName): - """(DOM CSS2Properties) Overwritten here and effectively the same as - ``self.getPropertyValue(CSSname)``. - - Parameter is in CSSname format ('font-style'), see CSS2Properties. - - Example:: - - >>> style = CSSStyleDeclaration(cssText='font-style:italic;') - >>> print style.fontStyle - italic - """ - return self.getPropertyValue(CSSName) - - def _setP(self, CSSName, value): - """(DOM CSS2Properties) Overwritten here and effectively the same as - ``self.setProperty(CSSname, value)``. - - Only known CSS2Properties may be set this way, otherwise an - AttributeError is raised. - For these unknown properties ``setPropertyValue(CSSname, value)`` - has to be called explicitly. - Also setting the priority of properties needs to be done with a - call like ``setPropertyValue(CSSname, value, priority)``. - - Example:: - - >>> style = CSSStyleDeclaration() - >>> style.fontStyle = 'italic' - >>> # or - >>> style.setProperty('font-style', 'italic', '!important') - - """ - self.setProperty(CSSName, value) - # TODO: Shorthand ones - - def _delP(self, CSSName): - """(cssutils only) Overwritten here and effectively the same as - ``self.removeProperty(CSSname)``. - - Example:: - - >>> style = CSSStyleDeclaration(cssText='font-style:italic;') - >>> del style.fontStyle - >>> print style.fontStyle - - - """ - self.removeProperty(CSSName) - - def children(self): - """Generator yielding any known child in this declaration including - *all* properties, comments or CSSUnknownrules. - """ - for item in self._seq: - yield item.value - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_css_CSSStyleDeclaration(self) - - def _setCssText(self, cssText): - """Setting this attribute will result in the parsing of the new value - and resetting of all the properties in the declaration block - including the removal or addition of properties. - - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly or a property is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - """ - self._checkReadonly() - tokenizer = self._tokenize2(cssText) - - # for closures: must be a mutable - new = {'wellformed': True} - def ident(expected, seq, token, tokenizer=None): - # a property - - tokens = self._tokensupto2(tokenizer, starttoken=token, - semicolon=True) - if self._tokenvalue(tokens[-1]) == u';': - tokens.pop() - property = Property(parent=self) - property.cssText = tokens - if property.wellformed: - seq.append(property, 'Property') - else: - self._log.error(u'CSSStyleDeclaration: Syntax Error in Property: %s' - % self._valuestr(tokens)) - # does not matter in this case - return expected - - def unexpected(expected, seq, token, tokenizer=None): - # error, find next ; or } to omit upto next property - ignored = self._tokenvalue(token) + self._valuestr( - self._tokensupto2(tokenizer, propertyvalueendonly=True)) - self._log.error(u'CSSStyleDeclaration: Unexpected token, ignoring upto %r.' % - ignored,token) - # does not matter in this case - return expected - - # [Property: Value;]* Property: Value? - newseq = self._tempSeq() - wellformed, expected = self._parse(expected=None, - seq=newseq, tokenizer=tokenizer, - productions={'IDENT': ident},#, 'CHAR': char}, - default=unexpected) - # wellformed set by parse - - for item in newseq: - item.value._parent = self - - # do not check wellformed as invalid things are removed anyway - self._setSeq(newseq) - - cssText = property(_getCssText, _setCssText, - doc="(DOM) A parsable textual representation of the declaration\ - block excluding the surrounding curly braces.") - - def getCssText(self, separator=None): - """ - :returns: - serialized property cssText, each property separated by - given `separator` which may e.g. be ``u''`` to be able to use - cssText directly in an HTML style attribute. ``;`` is part of - each property (except the last one) and **cannot** be set with - separator! - """ - return cssutils.ser.do_css_CSSStyleDeclaration(self, separator) - - def _setParentRule(self, parentRule): - self._parentRule = parentRule - for x in self.children(): - x.parent = self - - parentRule = property(lambda self: self._parentRule, _setParentRule, - doc="(DOM) The CSS rule that contains this declaration block or " - "None if this CSSStyleDeclaration is not attached to a CSSRule.") - - def getProperties(self, name=None, all=False): - """ - :param name: - optional `name` of properties which are requested. - Only properties with this **always normalized** `name` are returned. - If `name` is ``None`` all properties are returned (at least one for - each set name depending on parameter `all`). - :param all: - if ``False`` (DEFAULT) only the effective properties are returned. - If name is given a list with only one property is returned. - - if ``True`` all properties including properties set multiple times - with different values or priorities for different UAs are returned. - The order of the properties is fully kept as in the original - stylesheet. - :returns: - a list of :class:`~cssutils.css.Property` objects set in - this declaration. - """ - if name and not all: - # single prop but list - p = self.getProperty(name) - if p: - return [p] - else: - return [] - elif not all: - # effective Properties in name order - return [self.getProperty(name)for name in self.__nnames()] - else: - # all properties or all with this name - nname = self._normalize(name) - properties = [] - for item in self.seq: - val = item.value - if isinstance(val, Property) and ( - (bool(nname) == False) or (val.name == nname)): - properties.append(val) - return properties - - def getProperty(self, name, normalize=True): - """ - :param name: - of the CSS property, always lowercase (even if not normalized) - :param normalize: - if ``True`` (DEFAULT) name will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent - - If ``False`` may return **NOT** the effective value but the - effective for the unnormalized name. - :returns: - the effective :class:`~cssutils.css.Property` object. - """ - nname = self._normalize(name) - found = None - for item in reversed(self.seq): - val = item.value - if isinstance(val, Property): - if (normalize and nname == val.name) or name == val.literalname: - if val.priority: - return val - elif not found: - found = val - return found - - def getPropertyCSSValue(self, name, normalize=True): - """ - :param name: - of the CSS property, always lowercase (even if not normalized) - :param normalize: - if ``True`` (DEFAULT) name will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent - - If ``False`` may return **NOT** the effective value but the effective - for the unnormalized name. - :returns: - :class:`~cssutils.css.CSSValue`, the value of the effective - property if it has been explicitly set for this declaration block. - - (DOM) - Used to retrieve the object representation of the value of a CSS - property if it has been explicitly set within this declaration - block. Returns None if the property has not been set. - - (This method returns None if the property is a shorthand - property. Shorthand property values can only be accessed and - modified as strings, using the getPropertyValue and setProperty - methods.) - - **cssutils currently always returns a CSSValue if the property is - set.** - - for more on shorthand properties see - http://www.dustindiaz.com/css-shorthand/ - """ - nname = self._normalize(name) - if nname in self._SHORTHANDPROPERTIES: - self._log.info( - u'CSSValue for shorthand property "%s" should be None, this may be implemented later.' % - nname, neverraise=True) - - p = self.getProperty(name, normalize) - if p: - return p.cssValue - else: - return None - - def getPropertyValue(self, name, normalize=True): - """ - :param name: - of the CSS property, always lowercase (even if not normalized) - :param normalize: - if ``True`` (DEFAULT) name will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent - - If ``False`` may return **NOT** the effective value but the - effective for the unnormalized name. - :returns: - the value of the effective property if it has been explicitly set - for this declaration block. Returns the empty string if the - property has not been set. - """ - p = self.getProperty(name, normalize) - if p: - return p.value - else: - return u'' - - def getPropertyPriority(self, name, normalize=True): - """ - :param name: - of the CSS property, always lowercase (even if not normalized) - :param normalize: - if ``True`` (DEFAULT) name will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent - - If ``False`` may return **NOT** the effective value but the - effective for the unnormalized name. - :returns: - the priority of the effective CSS property (e.g. the - "important" qualifier) if the property has been explicitly set in - this declaration block. The empty string if none exists. - """ - p = self.getProperty(name, normalize) - if p: - return p.priority - else: - return u'' - - def removeProperty(self, name, normalize=True): - """ - (DOM) - Used to remove a CSS property if it has been explicitly set within - this declaration block. - - :param name: - of the CSS property - :param normalize: - if ``True`` (DEFAULT) name will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent. - The effective Property value is returned and *all* Properties - with ``Property.name == name`` are removed. - - If ``False`` may return **NOT** the effective value but the - effective for the unnormalized `name` only. Also only the - Properties with the literal name `name` are removed. - :returns: - the value of the property if it has been explicitly set for - this declaration block. Returns the empty string if the property - has not been set or the property name does not correspond to a - known CSS property - - - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly or the property is - readonly. - """ - self._checkReadonly() - r = self.getPropertyValue(name, normalize=normalize) - newseq = self._tempSeq() - if normalize: - # remove all properties with name == nname - nname = self._normalize(name) - for item in self.seq: - if not (isinstance(item.value, Property) and item.value.name == nname): - newseq.appendItem(item) - else: - # remove all properties with literalname == name - for item in self.seq: - if not (isinstance(item.value, Property) and item.value.literalname == name): - newseq.appendItem(item) - self._setSeq(newseq) - return r - - def setProperty(self, name, value=None, priority=u'', normalize=True): - """(DOM) Set a property value and priority within this declaration - block. - - :param name: - of the CSS property to set (in W3C DOM the parameter is called - "propertyName"), always lowercase (even if not normalized) - - If a property with this `name` is present it will be reset. - - cssutils also allowed `name` to be a - :class:`~cssutils.css.Property` object, all other - parameter are ignored in this case - - :param value: - the new value of the property, ignored if `name` is a Property. - :param priority: - the optional priority of the property (e.g. "important"), - ignored if `name` is a Property. - :param normalize: - if True (DEFAULT) `name` will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified value has a syntax error and is - unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly or the property is - readonly. - """ - self._checkReadonly() - - if isinstance(name, Property): - newp = name - name = newp.literalname - elif not value: - # empty string or None effectively removed property - return self.removeProperty(name) - else: - newp = Property(name, value, priority) - if not newp.wellformed: - self._log.warn(u'Invalid Property: %s: %s %s' - % (name, value, priority)) - else: - nname = self._normalize(name) - properties = self.getProperties(name, all=(not normalize)) - for property in reversed(properties): - if normalize and property.name == nname: - property.cssValue = newp.cssValue.cssText - property.priority = newp.priority - break - elif property.literalname == name: - property.cssValue = newp.cssValue.cssText - property.priority = newp.priority - break - else: - newp.parent = self - self.seq._readonly = False - self.seq.append(newp, 'Property') - self.seq._readonly = True - - def item(self, index): - """(DOM) Retrieve the properties that have been explicitly set in - this declaration block. The order of the properties retrieved using - this method does not have to be the order in which they were set. - This method can be used to iterate over all properties in this - declaration block. - - :param index: - of the property to retrieve, negative values behave like - negative indexes on Python lists, so -1 is the last element - - :returns: - the name of the property at this ordinal position. The - empty string if no property exists at this position. - - **ATTENTION:** - Only properties with different names are counted. If two - properties with the same name are present in this declaration - only the effective one is included. - - :meth:`item` and :attr:`length` work on the same set here. - """ - names = list(self.__nnames()) - try: - return names[index] - except IndexError: - return u'' - - length = property(lambda self: len(list(self.__nnames())), - doc="(DOM) The number of distinct properties that have been explicitly " - "in this declaration block. The range of valid indices is 0 to " - "length-1 inclusive. These are properties with a different ``name`` " - "only. :meth:`item` and :attr:`length` work on the same set here.") diff --git a/src/cssutils/css/cssstylerule.py b/src/cssutils/css/cssstylerule.py deleted file mode 100644 index 6d1798b88a..0000000000 --- a/src/cssutils/css/cssstylerule.py +++ /dev/null @@ -1,233 +0,0 @@ -"""CSSStyleRule implements DOM Level 2 CSS CSSStyleRule.""" -__all__ = ['CSSStyleRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssstylerule.py 1868 2009-10-17 19:36:54Z cthedot $' - -from cssstyledeclaration import CSSStyleDeclaration -from selectorlist import SelectorList -import cssrule -import cssutils -import xml.dom - -class CSSStyleRule(cssrule.CSSRule): - """The CSSStyleRule object represents a ruleset specified (if any) in a CSS - style sheet. It provides access to a declaration block as well as to the - associated group of selectors. - - Format:: - - : selector [ COMMA S* selector ]* - LBRACE S* declaration [ ';' S* declaration ]* '}' S* - ; - """ - def __init__(self, selectorText=None, style=None, parentRule=None, - parentStyleSheet=None, readonly=False): - """ - :Parameters: - selectorText - string parsed into selectorList - style - string parsed into CSSStyleDeclaration for this CSSStyleRule - readonly - if True allows setting of properties in constructor only - """ - super(CSSStyleRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - - self._selectorList = SelectorList(parentRule=self) - self._style = CSSStyleDeclaration(parentRule=self) - if selectorText: - self.selectorText = selectorText - if style: - self.style = style - - self._readonly = readonly - - def __repr__(self): - if self._namespaces: - st = (self.selectorText, self._namespaces) - else: - st = self.selectorText - return "cssutils.css.%s(selectorText=%r, style=%r)" % ( - self.__class__.__name__, st, self.style.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.selectorText, self.style.cssText, - self._namespaces, id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSStyleRule(self) - - def _setCssText(self, cssText): - """ - :param cssText: - a parseable string or a tuple of (cssText, dict-of-namespaces) - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if the specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSStyleRule, self)._setCssText(cssText) - - # might be (cssText, namespaces) - cssText, namespaces = self._splitNamespacesOff(cssText) - try: - # use parent style sheet ones if available - namespaces = self.parentStyleSheet.namespaces - except AttributeError: - pass - - tokenizer = self._tokenize2(cssText) - selectortokens = self._tokensupto2(tokenizer, blockstartonly=True) - styletokens = self._tokensupto2(tokenizer, blockendonly=True) - trail = self._nexttoken(tokenizer) - if trail: - self._log.error(u'CSSStyleRule: Trailing content: %s' % - self._valuestr(cssText), token=trail) - elif not selectortokens: - self._log.error(u'CSSStyleRule: No selector found: %r' % - self._valuestr(cssText)) - elif self._tokenvalue(selectortokens[0]).startswith(u'@'): - self._log.error(u'CSSStyleRule: No style rule: %r' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldstyle = CSSStyleDeclaration() - oldstyle._absorb(self.style) - oldselector = SelectorList() - oldselector._absorb(self.selectorList) - - ok = True - - bracetoken = selectortokens.pop() - if self._tokenvalue(bracetoken) != u'{': - ok = False - self._log.error( - u'CSSStyleRule: No start { of style declaration found: %r' % - self._valuestr(cssText), bracetoken) - elif not selectortokens: - ok = False - self._log.error(u'CSSStyleRule: No selector found: %r.' % - self._valuestr(cssText), bracetoken) - # SET - self.selectorList.selectorText = (selectortokens, - namespaces) - if not styletokens: - ok = False - self._log.error( - u'CSSStyleRule: No style declaration or "}" found: %r' % - self._valuestr(cssText)) - else: - braceorEOFtoken = styletokens.pop() - val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken) - if val != u'}' and typ != 'EOF': - ok = False - self._log.error( - u'CSSStyleRule: No "}" after style declaration found: %r' % - self._valuestr(cssText)) - else: - if 'EOF' == typ: - # add again as style needs it - styletokens.append(braceorEOFtoken) - - # SET - try: - self.style.cssText = styletokens - except: - # reset in case of error - self.selectorList._absorb(oldselector) - raise - - if not ok or not self.wellformed: - # reset as not ok - self.selectorList._absorb(oldselector) - self.style._absorb(oldstyle) - - cssText = property(_getCssText, _setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - - def __getNamespaces(self): - "Uses children namespaces if not attached to a sheet, else the sheet's ones." - try: - return self.parentStyleSheet.namespaces - except AttributeError: - return self.selectorList._namespaces - - _namespaces = property(__getNamespaces, - doc="If this Rule is attached to a CSSStyleSheet " - "the namespaces of that sheet are mirrored " - "here. While the Rule is not attached the " - "namespaces of selectorList are used.""") - - def _setSelectorList(self, selectorList): - """ - :param selectorList: A SelectorList which replaces the current - selectorList object - """ - self._checkReadonly() - selectorList._parentRule = self - self._selectorList = selectorList - - selectorList = property(lambda self: self._selectorList, _setSelectorList, - doc="The SelectorList of this rule.") - - def _setSelectorText(self, selectorText): - """ - wrapper for cssutils SelectorList object - - :param selectorText: - of type string, might also be a comma separated list - of selectors - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if the specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - and is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - self._selectorList.selectorText = selectorText - - selectorText = property(lambda self: self._selectorList.selectorText, - _setSelectorText, - doc="(DOM) The textual representation of the " - "selector for the rule set.") - - def _setStyle(self, style): - """ - :param style: A string or CSSStyleDeclaration which replaces the - current style object. - """ - self._checkReadonly() - if isinstance(style, basestring): - self._style.cssText = style - else: - style._parentRule = self - self._style = style - - style = property(lambda self: self._style, _setStyle, - doc="(DOM) The declaration-block of this rule set.") - - type = property(lambda self: self.STYLE_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - wellformed = property(lambda self: self.selectorList.wellformed) diff --git a/src/cssutils/css/cssstylesheet.py b/src/cssutils/css/cssstylesheet.py deleted file mode 100644 index f6bc2cb7cd..0000000000 --- a/src/cssutils/css/cssstylesheet.py +++ /dev/null @@ -1,739 +0,0 @@ -"""CSSStyleSheet implements DOM Level 2 CSS CSSStyleSheet. - -Partly also: - - http://dev.w3.org/csswg/cssom/#the-cssstylesheet - - http://www.w3.org/TR/2006/WD-css3-namespace-20060828/ - -TODO: - - ownerRule and ownerNode -""" -__all__ = ['CSSStyleSheet'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssstylesheet.py 1857 2009-10-10 21:49:33Z cthedot $' - -from cssutils.helper import Deprecated -from cssutils.util import _Namespaces, _SimpleNamespaces, _readUrl -from cssrule import CSSRule -import cssutils.stylesheets -import xml.dom - -class CSSStyleSheet(cssutils.stylesheets.StyleSheet): - """CSSStyleSheet represents a CSS style sheet. - - Format:: - - stylesheet - : [ CHARSET_SYM S* STRING S* ';' ]? - [S|CDO|CDC]* [ import [S|CDO|CDC]* ]* - [ namespace [S|CDO|CDC]* ]* # according to @namespace WD - [ [ ruleset | media | page ] [S|CDO|CDC]* ]* - - ``cssRules`` - All Rules in this style sheet, a :class:`~cssutils.css.CSSRuleList`. - """ - def __init__(self, href=None, media=None, title=u'', disabled=None, - ownerNode=None, parentStyleSheet=None, readonly=False, - ownerRule=None): - """ - For parameters see :class:`~cssutils.stylesheets.StyleSheet` - """ - super(CSSStyleSheet, self).__init__( - 'text/css', href, media, title, disabled, - ownerNode, parentStyleSheet) - - self._ownerRule = ownerRule - self.cssRules = cssutils.css.CSSRuleList() - self._namespaces = _Namespaces(parentStyleSheet=self, log=self._log) - self._readonly = readonly - - # used only during setting cssText by parse*() - self.__encodingOverride = None - self._fetcher = None - - def __iter__(self): - "Generator which iterates over cssRules." - for rule in self._cssRules: - yield rule - - def __repr__(self): - if self.media: - mediaText = self.media.mediaText - else: - mediaText = None - return "cssutils.css.%s(href=%r, media=%r, title=%r)" % ( - self.__class__.__name__, - self.href, mediaText, self.title) - - def __str__(self): - if self.media: - mediaText = self.media.mediaText - else: - mediaText = None - return "" % ( - self.__class__.__name__, self.encoding, self.href, - mediaText, self.title, self.namespaces.namespaces, - id(self)) - - def _cleanNamespaces(self): - "Remove all namespace rules with same namespaceURI but last one set." - rules = self._cssRules - namespaceitems = self.namespaces.items() - i = 0 - while i < len(rules): - rule = rules[i] - if rule.type == rule.NAMESPACE_RULE and \ - (rule.prefix, rule.namespaceURI) not in namespaceitems: - self.deleteRule(i) - else: - i += 1 - - def _getUsedURIs(self): - "Return set of URIs used in the sheet." - useduris = set() - for r1 in self: - if r1.STYLE_RULE == r1.type: - useduris.update(r1.selectorList._getUsedUris()) - elif r1.MEDIA_RULE == r1.type: - for r2 in r1: - if r2.type == r2.STYLE_RULE: - useduris.update(r2.selectorList._getUsedUris()) - return useduris - - def _setCssRules(self, cssRules): - "Set new cssRules and update contained rules refs." - cssRules.append = self.insertRule - cssRules.extend = self.insertRule - cssRules.__delitem__ == self.deleteRule - for rule in cssRules: - rule._parentStyleSheet = self - self._cssRules = cssRules - - cssRules = property(lambda self: self._cssRules, _setCssRules, - "All Rules in this style sheet, a " - ":class:`~cssutils.css.CSSRuleList`.") - - def _getCssText(self): - "Textual representation of the stylesheet (a byte string)." - return cssutils.ser.do_CSSStyleSheet(self) - - def _setCssText(self, cssText): - """Parse `cssText` and overwrites the whole stylesheet. - - :param cssText: - a parseable string or a tuple of (cssText, dict-of-namespaces) - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - If a namespace prefix is found which is not declared. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - """ - self._checkReadonly() - - cssText, namespaces = self._splitNamespacesOff(cssText) - if not namespaces: - namespaces = _SimpleNamespaces(log=self._log) - - tokenizer = self._tokenize2(cssText) - newseq = [] #cssutils.css.CSSRuleList() - - # for closures: must be a mutable - new = {'encoding': None, # needed for setting encoding of @import rules - 'namespaces': namespaces} - def S(expected, seq, token, tokenizer=None): - # @charset must be at absolute beginning of style sheet - if expected == 0: - return 1 - else: - return expected - - def COMMENT(expected, seq, token, tokenizer=None): - "special: sets parent*" - comment = cssutils.css.CSSComment([token], - parentStyleSheet=self.parentStyleSheet) - seq.append(comment) - return expected - - def charsetrule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSCharsetRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if expected > 0 or len(seq) > 0: - self._log.error( - u'CSSStylesheet: CSSCharsetRule only allowed at beginning of stylesheet.', - token, xml.dom.HierarchyRequestErr) - else: - if rule.wellformed: - seq.append(rule) - new['encoding'] = rule.encoding - return 1 - - def importrule(expected, seq, token, tokenizer): - if new['encoding']: - # set temporarily as used by _resolveImport - # save newEncoding which have been set by resolveImport - self.__newEncoding = new['encoding'] - - rule = cssutils.css.CSSImportRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if expected > 1: - self._log.error( - u'CSSStylesheet: CSSImportRule not allowed here.', - token, xml.dom.HierarchyRequestErr) - else: - if rule.wellformed: - #del rule._parentEncoding # remove as later it is read from this sheet! - seq.append(rule) - - try: - # remove as only used temporarily but may not be set at all - del self.__newEncoding - except AttributeError, e: - pass - - return 1 - - def namespacerule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSNamespaceRule( - cssText=self._tokensupto2(tokenizer, token), - parentStyleSheet=self) - if expected > 2: - self._log.error( - u'CSSStylesheet: CSSNamespaceRule not allowed here.', - token, xml.dom.HierarchyRequestErr) - else: - if rule.wellformed: - for i, r in enumerate(seq): - if r.type == r.NAMESPACE_RULE and r.prefix == rule.prefix: - # replace as doubled: - seq[i] = rule - self._log.info( - u'CSSStylesheet: CSSNamespaceRule with same prefix found, replacing: %r' - % r.cssText, - token, neverraise=True) - seq.append(rule) - # temporary namespaces given to CSSStyleRule and @media - new['namespaces'][rule.prefix] = rule.namespaceURI - return 2 - - def variablesrule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSVariablesRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if rule.wellformed: - seq.append(rule) - return 2 - - def fontfacerule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSFontFaceRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if rule.wellformed: - seq.append(rule) - return 3 - - def mediarule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSMediaRule() - rule.cssText = (self._tokensupto2(tokenizer, token), - new['namespaces']) - if rule.wellformed: - rule._parentStyleSheet=self - for r in rule: - r._parentStyleSheet=self - seq.append(rule) - return 3 - - def pagerule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSPageRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if rule.wellformed: - seq.append(rule) - return 3 - - def unknownrule(expected, seq, token, tokenizer): - self._log.warn( - u'CSSStylesheet: Unknown @rule found.', - token, neverraise=True) - rule = cssutils.css.CSSUnknownRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if rule.wellformed: - seq.append(rule) - return expected - - def ruleset(expected, seq, token, tokenizer): - rule = cssutils.css.CSSStyleRule() - rule.cssText = (self._tokensupto2(tokenizer, token), - new['namespaces']) - if rule.wellformed: - rule._parentStyleSheet=self - seq.append(rule) - return 3 - - # expected: - # ['CHARSET', 'IMPORT', 'NAMESPACE', ('PAGE', 'MEDIA', ruleset)] - wellformed, expected = self._parse(0, newseq, tokenizer, - {'S': S, - 'COMMENT': COMMENT, - 'CDO': lambda *ignored: None, - 'CDC': lambda *ignored: None, - 'CHARSET_SYM': charsetrule, - 'FONT_FACE_SYM': fontfacerule, - 'IMPORT_SYM': importrule, - 'NAMESPACE_SYM': namespacerule, - 'PAGE_SYM': pagerule, - 'MEDIA_SYM': mediarule, - 'VARIABLES_SYM': variablesrule, - 'ATKEYWORD': unknownrule - }, - default=ruleset) - - if wellformed: - del self._cssRules[:] - for rule in newseq: - self.insertRule(rule, _clean=False) - self._cleanNamespaces() - - cssText = property(_getCssText, _setCssText, - "Textual representation of the stylesheet (a byte string)") - - def _resolveImport(self, url): - """Read (encoding, enctype, decodedContent) from `url` for @import - sheets.""" - try: - # only available during parse of a complete sheet - selfAsParentEncoding = self.__newEncoding - except AttributeError: - try: - # explicit @charset - selfAsParentEncoding = self._cssRules[0].encoding - except (IndexError, AttributeError): - # default not UTF-8 but None! - selfAsParentEncoding = None - - return _readUrl(url, fetcher=self._fetcher, - overrideEncoding=self.__encodingOverride, - parentEncoding=selfAsParentEncoding) - - def _setCssTextWithEncodingOverride(self, cssText, encodingOverride=None, - encoding=None): - """Set `cssText` but use `encodingOverride` to overwrite detected - encoding. This is used by parse and @import during setting of cssText. - - If `encoding` is given use this but do not save it as `encodingOverride`.""" - if encodingOverride: - # encoding during resolving of @import - self.__encodingOverride = encodingOverride - - self.__newEncoding = encoding # save for nested @import - self.cssText = cssText - - if encodingOverride: - # set encodingOverride explicit again! - self.encoding = self.__encodingOverride - # remove? - self.__encodingOverride = None - elif encoding: - # may e.g. be httpEncoding - self.encoding = encoding - - def _setFetcher(self, fetcher=None): - """Set @import URL loader, if None the default is used.""" - self._fetcher = fetcher - - def _getEncoding(self): - """Encoding set in :class:`~cssutils.css.CSSCharsetRule` or if ``None`` - resulting in default ``utf-8`` encoding being used.""" - try: - return self._cssRules[0].encoding - except (IndexError, AttributeError): - return 'utf-8' - - def _setEncoding(self, encoding): - """Set `encoding` of charset rule if present in sheet or insert a new - :class:`~cssutils.css.CSSCharsetRule` with given `encoding`. - If `encoding` is None removes charsetrule if present resulting in - default encoding of utf-8. - """ - try: - rule = self._cssRules[0] - except IndexError: - rule = None - if rule and rule.CHARSET_RULE == rule.type: - if encoding: - rule.encoding = encoding - else: - self.deleteRule(0) - elif encoding: - self.insertRule(cssutils.css.CSSCharsetRule(encoding=encoding), 0) - - encoding = property(_getEncoding, _setEncoding, - "(cssutils) Reflect encoding of an @charset rule or 'utf-8' " - "(default) if set to ``None``") - - namespaces = property(lambda self: self._namespaces, - doc="All Namespaces used in this CSSStyleSheet.") - - def add(self, rule): - """Add `rule` to style sheet at appropriate position. - Same as ``insertRule(rule, inOrder=True)``. - """ - return self.insertRule(rule, index=None, inOrder=True) - - def deleteRule(self, index): - """Delete rule at `index` from the style sheet. - - :param index: - The `index` of the rule to be removed from the StyleSheet's rule - list. For an `index` < 0 **no** :exc:`~xml.dom.IndexSizeErr` is - raised but rules for normal Python lists are used. E.g. - ``deleteRule(-1)`` removes the last rule in cssRules. - - `index` may also be a CSSRule object which will then be removed - from the StyleSheet. - - :exceptions: - - :exc:`~xml.dom.IndexSizeErr`: - Raised if the specified index does not correspond to a rule in - the style sheet's rule list. - - :exc:`~xml.dom.NamespaceErr`: - Raised if removing this rule would result in an invalid StyleSheet - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this style sheet is readonly. - """ - self._checkReadonly() - - if isinstance(index, CSSRule): - for i, r in enumerate(self.cssRules): - if index == r: - index = i - break - else: - raise xml.dom.IndexSizeErr(u"CSSStyleSheet: Not a rule in" - " this sheets'a cssRules list: %s" - % index) - - try: - rule = self._cssRules[index] - except IndexError: - raise xml.dom.IndexSizeErr( - u'CSSStyleSheet: %s is not a valid index in the rulelist of length %i' % ( - index, self._cssRules.length)) - else: - if rule.type == rule.NAMESPACE_RULE: - # check all namespacerules if used - uris = [r.namespaceURI for r in self if r.type == r.NAMESPACE_RULE] - useduris = self._getUsedURIs() - if rule.namespaceURI in useduris and\ - uris.count(rule.namespaceURI) == 1: - raise xml.dom.NoModificationAllowedErr( - u'CSSStyleSheet: NamespaceURI defined in this rule is used, cannot remove.') - return - - rule._parentStyleSheet = None # detach - del self._cssRules[index] # delete from StyleSheet - - def insertRule(self, rule, index=None, inOrder=False, _clean=True): - """ - Used to insert a new rule into the style sheet. The new rule now - becomes part of the cascade. - - :param rule: - a parsable DOMString, in cssutils also a - :class:`~cssutils.css.CSSRule` or :class:`~cssutils.css.CSSRuleList` - :param index: - of the rule before the new rule will be inserted. - If the specified `index` is equal to the length of the - StyleSheet's rule collection, the rule will be added to the end - of the style sheet. - If `index` is not given or ``None`` rule will be appended to rule - list. - :param inOrder: - if ``True`` the rule will be put to a proper location while - ignoring `index` and without raising :exc:`~xml.dom.HierarchyRequestErr`. - The resulting index is returned nevertheless. - :returns: The index within the style sheet's rule collection - :Exceptions: - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at the specified `index` - e.g. if an @import rule is inserted after a standard rule set - or other at-rule. - - :exc:`~xml.dom.IndexSizeErr`: - Raised if the specified `index` is not a valid insertion point. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this style sheet is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified rule has a syntax error and is - unparsable. - """ - self._checkReadonly() - - # check position - if index is None: - index = len(self._cssRules) - elif index < 0 or index > self._cssRules.length: - raise xml.dom.IndexSizeErr( - u'CSSStyleSheet: Invalid index %s for CSSRuleList with a length of %s.' % ( - index, self._cssRules.length)) - return - - if isinstance(rule, basestring): - # init a temp sheet which has the same properties as self - tempsheet = CSSStyleSheet(href=self.href, - media=self.media, - title=self.title, - parentStyleSheet=self.parentStyleSheet, - ownerRule=self.ownerRule) - tempsheet._ownerNode = self.ownerNode - tempsheet._fetcher = self._fetcher - - # prepend encoding if in this sheet to be able to use it in - # @import rules encoding resolution - # do not add if new rule startswith "@charset" (which is exact!) - if not rule.startswith(u'@charset') and (self._cssRules and - self._cssRules[0].type == self._cssRules[0].CHARSET_RULE): - # rule 0 is @charset! - newrulescount, newruleindex = 2, 1 - rule = self._cssRules[0].cssText + rule - else: - newrulescount, newruleindex = 1, 0 - - # parse the new rule(s) - tempsheet.cssText = (rule, self._namespaces) - - if len(tempsheet.cssRules) != newrulescount or (not isinstance( - tempsheet.cssRules[newruleindex], cssutils.css.CSSRule)): - self._log.error(u'CSSStyleSheet: Not a CSSRule: %s' % rule) - return - rule = tempsheet.cssRules[newruleindex] - rule._parentStyleSheet = None # done later? - - # TODO: - #tempsheet._namespaces = self._namespaces - - elif isinstance(rule, cssutils.css.CSSRuleList): - # insert all rules - for i, r in enumerate(rule): - self.insertRule(r, index + i) - return index - - if not rule.wellformed: - self._log.error(u'CSSStyleSheet: Invalid rules cannot be added.') - return - - # CHECK HIERARCHY - # @charset - if rule.type == rule.CHARSET_RULE: - if inOrder: - index = 0 - # always first and only - if (self._cssRules - and self._cssRules[0].type == rule.CHARSET_RULE): - self._cssRules[0].encoding = rule.encoding - else: - self._cssRules.insert(0, rule) - elif index != 0 or (self._cssRules and - self._cssRules[0].type == rule.CHARSET_RULE): - self._log.error( - u'CSSStylesheet: @charset only allowed once at the' - ' beginning of a stylesheet.', - error=xml.dom.HierarchyRequestErr) - return - else: - self._cssRules.insert(index, rule) - - # @unknown or comment - elif rule.type in (rule.UNKNOWN_RULE, rule.COMMENT) and not inOrder: - if index == 0 and self._cssRules and\ - self._cssRules[0].type == rule.CHARSET_RULE: - self._log.error( - u'CSSStylesheet: @charset must be the first rule.', - error=xml.dom.HierarchyRequestErr) - return - else: - self._cssRules.insert(index, rule) - - # @import - elif rule.type == rule.IMPORT_RULE: - if inOrder: - # automatic order - if rule.type in (r.type for r in self): - # find last of this type - for i, r in enumerate(reversed(self._cssRules)): - if r.type == rule.type: - index = len(self._cssRules) - i - break - else: - # find first point to insert - if self._cssRules and self._cssRules[0].type in (rule.CHARSET_RULE, - rule.COMMENT): - index = 1 - else: - index = 0 - else: - # after @charset - if index == 0 and self._cssRules and\ - self._cssRules[0].type == rule.CHARSET_RULE: - self._log.error( - u'CSSStylesheet: Found @charset at index 0.', - error=xml.dom.HierarchyRequestErr) - return - # before @namespace @variables @page @font-face @media stylerule - for r in self._cssRules[:index]: - if r.type in (r.NAMESPACE_RULE, - r.VARIABLES_RULE, - r.MEDIA_RULE, - r.PAGE_RULE, - r.STYLE_RULE, - r.FONT_FACE_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert @import here,' - ' found @namespace, @variables, @media, @page or' - ' CSSStyleRule before index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - self._cssRules.insert(index, rule) - - # @namespace - elif rule.type == rule.NAMESPACE_RULE: - if inOrder: - if rule.type in (r.type for r in self): - # find last of this type - for i, r in enumerate(reversed(self._cssRules)): - if r.type == rule.type: - index = len(self._cssRules) - i - break - else: - # find first point to insert - for i, r in enumerate(self._cssRules): - if r.type in (r.VARIABLES_RULE, r.MEDIA_RULE, - r.PAGE_RULE, r.STYLE_RULE, - r.FONT_FACE_RULE, r.UNKNOWN_RULE, - r.COMMENT): - index = i # before these - break - else: - # after @charset and @import - for r in self._cssRules[index:]: - if r.type in (r.CHARSET_RULE, r.IMPORT_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert @namespace here,' - ' found @charset or @import after index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - # before @variables @media @page @font-face and stylerule - for r in self._cssRules[:index]: - if r.type in (r.VARIABLES_RULE, - r.MEDIA_RULE, - r.PAGE_RULE, - r.STYLE_RULE, - r.FONT_FACE_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert @namespace here,' - ' found @variables, @media, @page or CSSStyleRule' - ' before index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - - if not (rule.prefix in self.namespaces and - self.namespaces[rule.prefix] == rule.namespaceURI): - # no doublettes - self._cssRules.insert(index, rule) - if _clean: - self._cleanNamespaces() - - - # @variables - elif rule.type == rule.VARIABLES_RULE: - if inOrder: - if rule.type in (r.type for r in self): - # find last of this type - for i, r in enumerate(reversed(self._cssRules)): - if r.type == rule.type: - index = len(self._cssRules) - i - break - else: - # find first point to insert - for i, r in enumerate(self._cssRules): - if r.type in (r.MEDIA_RULE, - r.PAGE_RULE, - r.STYLE_RULE, - r.FONT_FACE_RULE, - r.UNKNOWN_RULE, - r.COMMENT): - index = i # before these - break - else: - # after @charset @import @namespace - for r in self._cssRules[index:]: - if r.type in (r.CHARSET_RULE, - r.IMPORT_RULE, - r.NAMESPACE_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert @variables here,' - ' found @charset, @import or @namespace after' - ' index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - # before @media @page @font-face and stylerule - for r in self._cssRules[:index]: - if r.type in (r.MEDIA_RULE, - r.PAGE_RULE, - r.STYLE_RULE, - r.FONT_FACE_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert @variables here,' - ' found @media, @page or CSSStyleRule' - ' before index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - - self._cssRules.insert(index, rule) - - # all other where order is not important - else: - if inOrder: - # simply add to end as no specific order - self._cssRules.append(rule) - index = len(self._cssRules) - 1 - else: - for r in self._cssRules[index:]: - if r.type in (r.CHARSET_RULE, r.IMPORT_RULE, r.NAMESPACE_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert rule here, found @charset, @import or @namespace before index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - self._cssRules.insert(index, rule) - - # post settings, TODO: for other rules which contain @rules - rule._parentStyleSheet = self - if rule.MEDIA_RULE == rule.type: - for r in rule: - r._parentStyleSheet = self - # ? - elif rule.IMPORT_RULE == rule.type: - rule.href = rule.href # try to reload stylesheet - - return index - - ownerRule = property(lambda self: self._ownerRule, - doc="A ref to an @import rule if it is imported, else ``None``.") - - def setSerializer(self, cssserializer): - """Set the cssutils global Serializer used for all output.""" - if isinstance(cssserializer, cssutils.CSSSerializer): - cssutils.ser = cssserializer - else: - raise ValueError(u'Serializer must be an instance of cssutils.CSSSerializer.') - - def setSerializerPref(self, pref, value): - """Set a Preference of CSSSerializer used for output. - See :class:`cssutils.serialize.Preferences` for possible - preferences to be set. - """ - cssutils.ser.prefs.__setattr__(pref, value) diff --git a/src/cssutils/css/cssunknownrule.py b/src/cssutils/css/cssunknownrule.py deleted file mode 100644 index 5659b19a9b..0000000000 --- a/src/cssutils/css/cssunknownrule.py +++ /dev/null @@ -1,208 +0,0 @@ -"""CSSUnknownRule implements DOM Level 2 CSS CSSUnknownRule.""" -__all__ = ['CSSUnknownRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssunknownrule.py 1897 2009-12-17 22:09:06Z cthedot $' - -import cssrule -import cssutils -import xml.dom - -class CSSUnknownRule(cssrule.CSSRule): - """ - Represents an at-rule not supported by this user agent, so in - effect all other at-rules not defined in cssutils. - - Format:: - - @xxx until ';' or block {...} - """ - def __init__(self, cssText=u'', parentRule=None, - parentStyleSheet=None, readonly=False): - """ - :param cssText: - of type string - """ - super(CSSUnknownRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = None - if cssText: - self.cssText = cssText - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(cssText=%r)" % ( - self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.cssText, id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSUnknownRule(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSUnknownRule, self)._setCssText(cssText) - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if not attoken or self._type(attoken) != self._prods.ATKEYWORD: - self._log.error(u'CSSUnknownRule: No CSSUnknownRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # for closures: must be a mutable - new = {'nesting': [], # {} [] or () - 'wellformed': True - } - - def CHAR(expected, seq, token, tokenizer=None): - type_, val, line, col = token - if expected != 'EOF': - if val in u'{[(': - new['nesting'].append(val) - elif val in u'}])': - opening = {u'}': u'{', u']': u'[', u')': u'('}[val] - try: - if new['nesting'][-1] == opening: - new['nesting'].pop() - else: - raise IndexError() - except IndexError: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Wrong nesting of {, [ or (.', - token=token) - - if val in u'};' and not new['nesting']: - expected = 'EOF' - - seq.append(val, type_, line=line, col=col) - return expected - else: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Expected end of rule.', - token=token) - return expected - - def FUNCTION(expected, seq, token, tokenizer=None): - # handled as opening ( - type_, val, line, col = token - val = self._tokenvalue(token) - if expected != 'EOF': - new['nesting'].append(u'(') - seq.append(val, type_, line=line, col=col) - return expected - else: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Expected end of rule.', - token=token) - return expected - - def EOF(expected, seq, token, tokenizer=None): - "close all blocks and return 'EOF'" - for x in reversed(new['nesting']): - closing = {u'{': u'}', u'[': u']', u'(': u')'}[x] - seq.append(closing, closing) - new['nesting'] = [] - return 'EOF' - - def INVALID(expected, seq, token, tokenizer=None): - # makes rule invalid - self._log.error(u'CSSUnknownRule: Bad syntax.', - token=token, error=xml.dom.SyntaxErr) - new['wellformed'] = False - return expected - - def STRING(expected, seq, token, tokenizer=None): - type_, val, line, col = token - val = self._stringtokenvalue(token) - if expected != 'EOF': - seq.append(val, type_, line=line, col=col) - return expected - else: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Expected end of rule.', - token=token) - return expected - - def URI(expected, seq, token, tokenizer=None): - type_, val, line, col = token - val = self._uritokenvalue(token) - if expected != 'EOF': - seq.append(val, type_, line=line, col=col) - return expected - else: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Expected end of rule.', - token=token) - return expected - - def default(expected, seq, token, tokenizer=None): - type_, val, line, col = token - if expected != 'EOF': - seq.append(val, type_, line=line, col=col) - return expected - else: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Expected end of rule.', - token=token) - return expected - - # unknown : ATKEYWORD S* ... ; | } - newseq = self._tempSeq() - wellformed, expected = self._parse(expected=None, - seq=newseq, tokenizer=tokenizer, - productions={'CHAR': CHAR, - 'EOF': EOF, - 'FUNCTION': FUNCTION, - 'INVALID': INVALID, - 'STRING': STRING, - 'URI': URI, - 'S': default # overwrite default default! - }, - default=default, - new=new) - - # wellformed set by parse - wellformed = wellformed and new['wellformed'] - - # post conditions - if expected != 'EOF': - wellformed = False - self._log.error( - u'CSSUnknownRule: No ending ";" or "}" found: %r' % - self._valuestr(cssText)) - elif new['nesting']: - wellformed = False - self._log.error( - u'CSSUnknownRule: Unclosed "{", "[" or "(": %r' % - self._valuestr(cssText)) - - # set all - if wellformed: - self.atkeyword = self._tokenvalue(attoken) - self._setSeq(newseq) - - cssText = property(fget=_getCssText, fset=_setCssText, - doc="(DOM) The parsable textual representation.") - - type = property(lambda self: self.UNKNOWN_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - wellformed = property(lambda self: bool(self.atkeyword)) - \ No newline at end of file diff --git a/src/cssutils/css/cssvalue.py b/src/cssutils/css/cssvalue.py deleted file mode 100644 index 6146919416..0000000000 --- a/src/cssutils/css/cssvalue.py +++ /dev/null @@ -1,1128 +0,0 @@ -"""CSSValue related classes - -- CSSValue implements DOM Level 2 CSS CSSValue -- CSSPrimitiveValue implements DOM Level 2 CSS CSSPrimitiveValue -- CSSValueList implements DOM Level 2 CSS CSSValueList - -""" -__all__ = ['CSSValue', 'CSSPrimitiveValue', 'CSSValueList', - 'CSSVariable', 'RGBColor'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssvalue.py 1864 2009-10-11 15:11:39Z cthedot $' - -from cssutils.prodparser import * -import cssutils -import cssutils.helper -import re -import xml.dom - - -class CSSValue(cssutils.util._NewBase): - """The CSSValue interface represents a simple or a complex value. - A CSSValue object only occurs in a context of a CSS property. - """ - - # The value is inherited and the cssText contains "inherit". - CSS_INHERIT = 0 - # The value is a CSSPrimitiveValue. - CSS_PRIMITIVE_VALUE = 1 - # The value is a CSSValueList. - CSS_VALUE_LIST = 2 - # The value is a custom value. - CSS_CUSTOM = 3 - # The value is a CSSVariable. - CSS_VARIABLE = 4 - - _typestrings = {0: 'CSS_INHERIT' , - 1: 'CSS_PRIMITIVE_VALUE', - 2: 'CSS_VALUE_LIST', - 3: 'CSS_CUSTOM', - 4: 'CSS_VARIABLE'} - - def __init__(self, cssText=None, parent=None, readonly=False): - """ - :param cssText: - the parsable cssText of the value - :param readonly: - defaults to False - """ - super(CSSValue, self).__init__() - - self._cssValueType = None - self.wellformed = False - self.parent = parent - - if cssText is not None: # may be 0 - if type(cssText) in (int, float): - cssText = unicode(cssText) # if it is a number - self.cssText = cssText - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(%r)" % ( - self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.cssValueTypeString, - self.cssText, id(self)) - - def _setCssText(self, cssText): - """ - Format:: - - unary_operator - : '-' | '+' - ; - operator - : '/' S* | ',' S* | /* empty */ - ; - expr - : term [ operator term ]* - ; - term - : unary_operator? - [ NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* | - TIME S* | FREQ S* ] - | STRING S* | IDENT S* | URI S* | hexcolor | function - | UNICODE-RANGE S* - ; - function - : FUNCTION S* expr ')' S* - ; - /* - * There is a constraint on the color that it must - * have either 3 or 6 hex-digits (i.e., [0-9a-fA-F]) - * after the "#"; e.g., "#000" is OK, but "#abcd" is not. - */ - hexcolor - : HASH S* - ; - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - (according to the attached property) or is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - TODO: Raised if the specified CSS string value represents a different - type of values than the values allowed by the CSS property. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this value is readonly. - """ - self._checkReadonly() - - # used as operator is , / or S - nextSor = u',/' - - term = Choice(Sequence(PreDef.unary(), - Choice(PreDef.number(nextSor=nextSor), - PreDef.percentage(nextSor=nextSor), - PreDef.dimension(nextSor=nextSor))), - PreDef.string(nextSor=nextSor), - PreDef.ident(nextSor=nextSor), - PreDef.uri(nextSor=nextSor), - PreDef.hexcolor(nextSor=nextSor), - PreDef.unicode_range(nextSor=nextSor), - # special case IE only expression - Prod(name='expression', - match=lambda t, v: t == self._prods.FUNCTION and ( - cssutils.helper.normalize(v) in (u'expression(', - u'alpha(') or - v.startswith(u'progid:DXImageTransform.Microsoft.') - ), - nextSor=nextSor, - toSeq=lambda t, tokens: (ExpressionValue._functionName, - ExpressionValue(cssutils.helper.pushtoken(t, - tokens))) - ), - # CSS Variable var( - PreDef.variable(nextSor=nextSor, - toSeq=lambda t, tokens: ('CSSVariable', - CSSVariable( - cssutils.helper.pushtoken(t, tokens)) - ) - ), - # other functions like rgb( etc - PreDef.function(nextSor=nextSor, - toSeq=lambda t, tokens: ('FUNCTION', - CSSFunction( - cssutils.helper.pushtoken(t, tokens)) - ) - ) - ) - operator = Choice(PreDef.S(), - PreDef.char('comma', ',', - toSeq=lambda t, tokens: ('operator', t[1])), - PreDef.char('slash', '/', - toSeq=lambda t, tokens: ('operator', t[1])), - optional=True) - # CSSValue PRODUCTIONS - valueprods = Sequence(term, - # TODO: only when setting via other class - PreDef.char('END', ';', - stopAndKeep=True, - optional=True), - Sequence(operator, # mayEnd this Sequence if whitespace - term, - PreDef.char('END', ';', - stopAndKeep=True, - optional=True), - minmax=lambda: (0, None))) - # parse - wellformed, seq, store, notused = ProdParser().parse(cssText, - u'CSSValue', - valueprods, - keepS=True) - if wellformed: - # - count actual values and set firstvalue which is used later on - # - combine comma separated list, e.g. font-family to a single item - # - remove S which should be an operator but is no needed - count, firstvalue = 0, () - newseq = self._tempSeq() - i, end = 0, len(seq) - while i < end: - item = seq[i] - if item.type == self._prods.S: - pass - - elif (item.value, item.type) == (u',', 'operator'): - # , separared counts as a single STRING for now - # URI or STRING value might be a single CHAR too! - newseq.appendItem(item) - count -= 1 - if firstvalue: - # list of IDENTs is handled as STRING! - if firstvalue[1] == self._prods.IDENT: - firstvalue = firstvalue[0], 'STRING' - - elif item.value == u'/': - # / separated items count as one - newseq.appendItem(item) - - elif item.value == u'-' or item.value == u'+': - # combine +- and following number or other - i += 1 - try: - next = seq[i] - except IndexError: - firstvalue = () # raised later - break - - newval = item.value + next.value - newseq.append(newval, next.type, - item.line, item.col) - if not firstvalue: - firstvalue = (newval, next.type) - count += 1 - - elif item.type != cssutils.css.CSSComment: - newseq.appendItem(item) - if not firstvalue: - firstvalue = (item.value, item.type) - count += 1 - - else: - newseq.appendItem(item) - - i += 1 - - if not firstvalue: - self._log.error( - u'CSSValue: Unknown syntax or no value: %r.' % - self._valuestr(cssText)) - else: - # ok and set - self._setSeq(newseq) - self.wellformed = wellformed - - if hasattr(self, '_value'): - # only in case of CSSPrimitiveValue, else remove! - del self._value - - if count == 1: - # inherit, primitive or variable - if isinstance(firstvalue[0], basestring) and\ - u'inherit' == cssutils.helper.normalize(firstvalue[0]): - self.__class__ = CSSValue - self._cssValueType = CSSValue.CSS_INHERIT - elif 'CSSVariable' == firstvalue[1]: - self.__class__ = CSSVariable - self._value = firstvalue - # TODO: remove major hack! - self._name = firstvalue[0]._name - else: - self.__class__ = CSSPrimitiveValue - self._value = firstvalue - - elif count > 1: - # valuelist - self.__class__ = CSSValueList - - # change items in list to specific type (primitive etc) - newseq = self._tempSeq() - commalist = [] - nexttocommalist = False - - def itemValue(item): - "Reserialized simple item.value" - if self._prods.STRING == item.type: - return cssutils.helper.string(item.value) - elif self._prods.URI == item.type: - return cssutils.helper.uri(item.value) - elif self._prods.FUNCTION == item.type or\ - 'CSSVariable' == item.type: - return item.value.cssText - else: - return item.value - - def saveifcommalist(commalist, newseq): - """ - saves items in commalist to seq and items - if anything in there - """ - if commalist: - newseq.replace(-1, - CSSPrimitiveValue(cssText=u''.join( - commalist)), - CSSPrimitiveValue, - newseq[-1].line, - newseq[-1].col) - del commalist[:] - - for i, item in enumerate(self._seq): - if item.type in (self._prods.DIMENSION, - self._prods.FUNCTION, - self._prods.HASH, - self._prods.IDENT, - self._prods.NUMBER, - self._prods.PERCENTAGE, - self._prods.STRING, - self._prods.URI, - self._prods.UNICODE_RANGE, - 'CSSVariable'): - if nexttocommalist: - # wait until complete - commalist.append(itemValue(item)) - else: - saveifcommalist(commalist, newseq) - # append new item - if hasattr(item.value, 'cssText'): - newseq.append(item.value, - item.value.__class__, - item.line, item.col) - - else: - newseq.append(CSSPrimitiveValue(itemValue(item)), - CSSPrimitiveValue, - item.line, item.col) - - nexttocommalist = False - - elif u',' == item.value: - if not commalist: - # save last item to commalist - commalist.append(itemValue(self._seq[i - 1])) - commalist.append(u',') - nexttocommalist = True - - else: - if nexttocommalist: - commalist.append(item.value.cssText) - else: - newseq.appendItem(item) - - saveifcommalist(commalist, newseq) - self._setSeq(newseq) - - else: - # should not happen... - self.__class__ = CSSValue - self._cssValueType = CSSValue.CSS_CUSTOM - - cssText = property(lambda self: cssutils.ser.do_css_CSSValue(self), - _setCssText, - doc="A string representation of the current value.") - - cssValueType = property(lambda self: self._cssValueType, - doc="A (readonly) code defining the type of the value.") - - cssValueTypeString = property( - lambda self: CSSValue._typestrings.get(self.cssValueType, None), - doc="(readonly) Name of cssValueType.") - - -class CSSPrimitiveValue(CSSValue): - """Represents a single CSS Value. May be used to determine the value of a - specific style property currently set in a block or to set a specific - style property explicitly within the block. Might be obtained from the - getPropertyCSSValue method of CSSStyleDeclaration. - - Conversions are allowed between absolute values (from millimeters to - centimeters, from degrees to radians, and so on) but not between - relative values. (For example, a pixel value cannot be converted to a - centimeter value.) Percentage values can't be converted since they are - relative to the parent value (or another property value). There is one - exception for color percentage values: since a color percentage value - is relative to the range 0-255, a color percentage value can be - converted to a number; (see also the RGBColor interface). - """ - # constant: type of this CSSValue class - cssValueType = CSSValue.CSS_PRIMITIVE_VALUE - - __types = cssutils.cssproductions.CSSProductions - - # An integer indicating which type of unit applies to the value. - CSS_UNKNOWN = 0 # only obtainable via cssText - CSS_NUMBER = 1 - CSS_PERCENTAGE = 2 - CSS_EMS = 3 - CSS_EXS = 4 - CSS_PX = 5 - CSS_CM = 6 - CSS_MM = 7 - CSS_IN = 8 - CSS_PT = 9 - CSS_PC = 10 - CSS_DEG = 11 - CSS_RAD = 12 - CSS_GRAD = 13 - CSS_MS = 14 - CSS_S = 15 - CSS_HZ = 16 - CSS_KHZ = 17 - CSS_DIMENSION = 18 - CSS_STRING = 19 - CSS_URI = 20 - CSS_IDENT = 21 - CSS_ATTR = 22 - CSS_COUNTER = 23 - CSS_RECT = 24 - CSS_RGBCOLOR = 25 - # NOT OFFICIAL: - CSS_RGBACOLOR = 26 - CSS_UNICODE_RANGE = 27 - - _floattypes = (CSS_NUMBER, CSS_PERCENTAGE, CSS_EMS, CSS_EXS, - CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC, - CSS_DEG, CSS_RAD, CSS_GRAD, CSS_MS, CSS_S, - CSS_HZ, CSS_KHZ, CSS_DIMENSION) - _stringtypes = (CSS_ATTR, CSS_IDENT, CSS_STRING, CSS_URI) - _countertypes = (CSS_COUNTER,) - _recttypes = (CSS_RECT,) - _rbgtypes = (CSS_RGBCOLOR, CSS_RGBACOLOR) - _lengthtypes = (CSS_NUMBER, CSS_EMS, CSS_EXS, - CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC) - - # oldtype: newType: converterfunc - _converter = { - # cm <-> mm <-> in, 1 inch is equal to 2.54 centimeters. - # pt <-> pc, the points used by CSS 2.1 are equal to 1/72nd of an inch. - # pc: picas - 1 pica is equal to 12 points - (CSS_CM, CSS_MM): lambda x: x * 10, - (CSS_MM, CSS_CM): lambda x: x / 10, - - (CSS_PT, CSS_PC): lambda x: x * 12, - (CSS_PC, CSS_PT): lambda x: x / 12, - - (CSS_CM, CSS_IN): lambda x: x / 2.54, - (CSS_IN, CSS_CM): lambda x: x * 2.54, - (CSS_MM, CSS_IN): lambda x: x / 25.4, - (CSS_IN, CSS_MM): lambda x: x * 25.4, - - (CSS_IN, CSS_PT): lambda x: x / 72, - (CSS_PT, CSS_IN): lambda x: x * 72, - (CSS_CM, CSS_PT): lambda x: x / 2.54 / 72, - (CSS_PT, CSS_CM): lambda x: x * 72 * 2.54, - (CSS_MM, CSS_PT): lambda x: x / 25.4 / 72, - (CSS_PT, CSS_MM): lambda x: x * 72 * 25.4, - - (CSS_IN, CSS_PC): lambda x: x / 72 / 12, - (CSS_PC, CSS_IN): lambda x: x * 12 * 72, - (CSS_CM, CSS_PC): lambda x: x / 2.54 / 72 / 12, - (CSS_PC, CSS_CM): lambda x: x * 12 * 72 * 2.54, - (CSS_MM, CSS_PC): lambda x: x / 25.4 / 72 / 12, - (CSS_PC, CSS_MM): lambda x: x * 12 * 72 * 25.4, - - # hz <-> khz - (CSS_KHZ, CSS_HZ): lambda x: x * 1000, - (CSS_HZ, CSS_KHZ): lambda x: x / 1000, - # s <-> ms - (CSS_S, CSS_MS): lambda x: x * 1000, - (CSS_MS, CSS_S): lambda x: x / 1000 - - # TODO: convert deg <-> rad <-> grad - } - - def __init__(self, cssText=None, readonly=False): - """See CSSPrimitiveValue.__init__()""" - super(CSSPrimitiveValue, self).__init__(cssText=cssText, - readonly=readonly) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.primitiveTypeString, - self.cssText, id(self)) - - _unitnames = ['CSS_UNKNOWN', - 'CSS_NUMBER', 'CSS_PERCENTAGE', - 'CSS_EMS', 'CSS_EXS', - 'CSS_PX', - 'CSS_CM', 'CSS_MM', - 'CSS_IN', - 'CSS_PT', 'CSS_PC', - 'CSS_DEG', 'CSS_RAD', 'CSS_GRAD', - 'CSS_MS', 'CSS_S', - 'CSS_HZ', 'CSS_KHZ', - 'CSS_DIMENSION', - 'CSS_STRING', 'CSS_URI', 'CSS_IDENT', - 'CSS_ATTR', 'CSS_COUNTER', 'CSS_RECT', - 'CSS_RGBCOLOR', 'CSS_RGBACOLOR', - 'CSS_UNICODE_RANGE' - ] - - _reNumDim = re.compile(ur'([+-]?\d*\.\d+|[+-]?\d+)(.*)$', re.I | re.U | re.X) - - def _unitDIMENSION(value): - """Check val for dimension name.""" - units = {'em': 'CSS_EMS', 'ex': 'CSS_EXS', - 'px': 'CSS_PX', - 'cm': 'CSS_CM', 'mm': 'CSS_MM', - 'in': 'CSS_IN', - 'pt': 'CSS_PT', 'pc': 'CSS_PC', - 'deg': 'CSS_DEG', 'rad': 'CSS_RAD', 'grad': 'CSS_GRAD', - 'ms': 'CSS_MS', 's': 'CSS_S', - 'hz': 'CSS_HZ', 'khz': 'CSS_KHZ' - } - val, dim = CSSPrimitiveValue._reNumDim.findall(cssutils.helper.normalize(value))[0] - return units.get(dim, 'CSS_DIMENSION') - - def _unitFUNCTION(value): - """Check val for function name.""" - units = {'attr(': 'CSS_ATTR', - 'counter(': 'CSS_COUNTER', - 'rect(': 'CSS_RECT', - 'rgb(': 'CSS_RGBCOLOR', - 'rgba(': 'CSS_RGBACOLOR', - } - return units.get(re.findall(ur'^(.*?\()', - cssutils.helper.normalize(value.cssText), - re.U)[0], - 'CSS_UNKNOWN') - - __unitbytype = { - __types.NUMBER: 'CSS_NUMBER', - __types.PERCENTAGE: 'CSS_PERCENTAGE', - __types.STRING: 'CSS_STRING', - __types.UNICODE_RANGE: 'CSS_UNICODE_RANGE', - __types.URI: 'CSS_URI', - __types.IDENT: 'CSS_IDENT', - __types.HASH: 'CSS_RGBCOLOR', - __types.DIMENSION: _unitDIMENSION, - __types.FUNCTION: _unitFUNCTION - } - - def __set_primitiveType(self): - """primitiveType is readonly but is set lazy if accessed""" - # TODO: check unary and font-family STRING a, b, "c" - val, type_ = self._value - # try get by type_ - pt = self.__unitbytype.get(type_, 'CSS_UNKNOWN') - if callable(pt): - # multiple options, check value too - pt = pt(val) - self._primitiveType = getattr(self, pt) - - def _getPrimitiveType(self): - if not hasattr(self, '_primitivetype'): - self.__set_primitiveType() - return self._primitiveType - - primitiveType = property(_getPrimitiveType, - doc="(readonly) The type of the value as defined " - "by the constants in this class.") - - def _getPrimitiveTypeString(self): - return self._unitnames[self.primitiveType] - - primitiveTypeString = property(_getPrimitiveTypeString, - doc="Name of primitive type of this value.") - - def _getCSSPrimitiveTypeString(self, type): - "get TypeString by given type which may be unknown, used by setters" - try: - return self._unitnames[type] - except (IndexError, TypeError): - return u'%r (UNKNOWN TYPE)' % type - - def _getNumDim(self, value=None): - "Split self._value in numerical and dimension part." - if value is None: - value = cssutils.helper.normalize(self._value[0]) - - try: - val, dim = CSSPrimitiveValue._reNumDim.findall(value)[0] - except IndexError: - val, dim = value, u'' - try: - val = float(val) - if val == int(val): - val = int(val) - except ValueError: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: No float value %r' % self._value[0]) - - return val, dim - - def getFloatValue(self, unitType=None): - """(DOM) This method is used to get a float value in a - specified unit. If this CSS value doesn't contain a float value - or can't be converted into the specified unit, a DOMException - is raised. - - :param unitType: - to get the float value. The unit code can only be a float unit type - (i.e. CSS_NUMBER, CSS_PERCENTAGE, CSS_EMS, CSS_EXS, CSS_PX, CSS_CM, - CSS_MM, CSS_IN, CSS_PT, CSS_PC, CSS_DEG, CSS_RAD, CSS_GRAD, CSS_MS, - CSS_S, CSS_HZ, CSS_KHZ, CSS_DIMENSION) or None in which case - the current dimension is used. - - :returns: - not necessarily a float but some cases just an integer - e.g. if the value is ``1px`` it return ``1`` and **not** ``1.0`` - - Conversions might return strange values like 1.000000000001 - """ - if unitType is not None and unitType not in self._floattypes: - raise xml.dom.InvalidAccessErr( - u'unitType Parameter is not a float type') - - val, dim = self._getNumDim() - - if unitType is not None and self.primitiveType != unitType: - # convert if needed - try: - val = self._converter[self.primitiveType, unitType](val) - except KeyError: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: Cannot coerce primitiveType %r to %r' - % (self.primitiveTypeString, - self._getCSSPrimitiveTypeString(unitType))) - - if val == int(val): - val = int(val) - - return val - - def setFloatValue(self, unitType, floatValue): - """(DOM) A method to set the float value with a specified unit. - If the property attached with this value can not accept the - specified unit or the float value, the value will be unchanged and - a DOMException will be raised. - - :param unitType: - a unit code as defined above. The unit code can only be a float - unit type - :param floatValue: - the new float value which does not have to be a float value but - may simple be an int e.g. if setting:: - - setFloatValue(CSS_PX, 1) - - :exceptions: - - :exc:`~xml.dom.InvalidAccessErr`: - Raised if the attached property doesn't - support the float value or the unit type. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this property is readonly. - """ - self._checkReadonly() - if unitType not in self._floattypes: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: unitType %r is not a float type' % - self._getCSSPrimitiveTypeString(unitType)) - try: - val = float(floatValue) - except ValueError, e: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: floatValue %r is not a float' % - floatValue) - - oldval, dim = self._getNumDim() - if self.primitiveType != unitType: - # convert if possible - try: - val = self._converter[unitType, self.primitiveType](val) - except KeyError: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: Cannot coerce primitiveType %r to %r' - % (self.primitiveTypeString, - self._getCSSPrimitiveTypeString(unitType))) - - if val == int(val): - val = int(val) - - self.cssText = '%s%s' % (val, dim) - - def getStringValue(self): - """(DOM) This method is used to get the string value. If the - CSS value doesn't contain a string value, a DOMException is raised. - - Some properties (like 'font-family' or 'voice-family') - convert a whitespace separated list of idents to a string. - - Only the actual value is returned so e.g. all the following return the - actual value ``a``: url(a), attr(a), "a", 'a' - """ - if self.primitiveType not in self._stringtypes: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue %r is not a string type' - % self.primitiveTypeString) - - if CSSPrimitiveValue.CSS_ATTR == self.primitiveType: - return self._value[0].cssText[5:-1] - else: - return self._value[0] - - def setStringValue(self, stringType, stringValue): - """(DOM) A method to set the string value with the specified - unit. If the property attached to this value can't accept the - specified unit or the string value, the value will be unchanged and - a DOMException will be raised. - - :param stringType: - a string code as defined above. The string code can only be a - string unit type (i.e. CSS_STRING, CSS_URI, CSS_IDENT, and - CSS_ATTR). - :param stringValue: - the new string value - Only the actual value is expected so for (CSS_URI, "a") the - new value will be ``url(a)``. For (CSS_STRING, "'a'") - the new value will be ``"\\'a\\'"`` as the surrounding ``'`` are - not part of the string value - - :exceptions: - - :exc:`~xml.dom.InvalidAccessErr`: - Raised if the CSS value doesn't contain a - string value or if the string value can't be converted into - the specified unit. - - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this property is readonly. - """ - self._checkReadonly() - # self not stringType - if self.primitiveType not in self._stringtypes: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue %r is not a string type' - % self.primitiveTypeString) - # given stringType is no StringType - if stringType not in self._stringtypes: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: stringType %s is not a string type' - % self._getCSSPrimitiveTypeString(stringType)) - - if self._primitiveType != stringType: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: Cannot coerce primitiveType %r to %r' - % (self.primitiveTypeString, - self._getCSSPrimitiveTypeString(stringType))) - - if CSSPrimitiveValue.CSS_STRING == self._primitiveType: - self.cssText = cssutils.helper.string(stringValue) - elif CSSPrimitiveValue.CSS_URI == self._primitiveType: - self.cssText = cssutils.helper.uri(stringValue) - elif CSSPrimitiveValue.CSS_ATTR == self._primitiveType: - self.cssText = u'attr(%s)' % stringValue - else: - self.cssText = stringValue - self._primitiveType = stringType - - def getCounterValue(self): - """(DOM) This method is used to get the Counter value. If - this CSS value doesn't contain a counter value, a DOMException - is raised. Modification to the corresponding style property - can be achieved using the Counter interface. - - **Not implemented.** - """ - if not self.CSS_COUNTER == self.primitiveType: - raise xml.dom.InvalidAccessErr(u'Value is not a counter type') - # TODO: use Counter class - raise NotImplementedError() - - def getRGBColorValue(self): - """(DOM) This method is used to get the RGB color. If this - CSS value doesn't contain a RGB color value, a DOMException - is raised. Modification to the corresponding style property - can be achieved using the RGBColor interface. - """ - if self.primitiveType not in self._rbgtypes: - raise xml.dom.InvalidAccessErr(u'Value is not a RGBColor value') - return RGBColor(self._value[0]) - - def getRectValue(self): - """(DOM) This method is used to get the Rect value. If this CSS - value doesn't contain a rect value, a DOMException is raised. - Modification to the corresponding style property can be achieved - using the Rect interface. - - **Not implemented.** - """ - if self.primitiveType not in self._recttypes: - raise xml.dom.InvalidAccessErr(u'value is not a Rect value') - # TODO: use Rect class - raise NotImplementedError() - - def _getCssText(self): - """Overwrites CSSValue.""" - return cssutils.ser.do_css_CSSPrimitiveValue(self) - - def _setCssText(self, cssText): - """Use CSSValue.""" - return super(CSSPrimitiveValue, self)._setCssText(cssText) - - cssText = property(_getCssText, _setCssText, - doc="A string representation of the current value.") - - -class CSSValueList(CSSValue): - """The CSSValueList interface provides the abstraction of an ordered - collection of CSS values. - - Some properties allow an empty list into their syntax. In that case, - these properties take the none identifier. So, an empty list means - that the property has the value none. - - The items in the CSSValueList are accessible via an integral index, - starting from 0. - """ - cssValueType = CSSValue.CSS_VALUE_LIST - - def __init__(self, cssText=None, parent=None, readonly=False): - """Init a new CSSValueList""" - super(CSSValueList, self).__init__(cssText=cssText, - parent=parent, - readonly=readonly) - self._items = [] - - def __iter__(self): - "CSSValueList is iterable." - for item in self.__items(): - yield item.value - - def __str__(self): - return "" % ( - self.__class__.__name__, self.cssValueTypeString, - self.cssText, self.length, id(self)) - - def __items(self): - return [item for item in self._seq - if isinstance(item.value, CSSValue)] - - def item(self, index): - """(DOM) Retrieve a CSSValue by ordinal `index`. The - order in this collection represents the order of the values in the - CSS style property. If `index` is greater than or equal to the number - of values in the list, this returns ``None``. - """ - try: - return self.__items()[index].value - except IndexError: - return None - - length = property(lambda self: len(self.__items()), - doc="(DOM attribute) The number of CSSValues in the list.") - - -class CSSFunction(CSSPrimitiveValue): - """A CSS function value like rect() etc.""" - _functionName = u'CSSFunction' - primitiveType = CSSPrimitiveValue.CSS_UNKNOWN - - def __init__(self, cssText=None, readonly=False): - """ - Init a new CSSFunction - - :param cssText: - the parsable cssText of the value - :param readonly: - defaults to False - """ - super(CSSFunction, self).__init__() - self._funcType = None - self.valid = False - self.wellformed = False - if cssText is not None: - self.cssText = cssText - - self._readonly = readonly - - def _productiondefinition(self): - """Return defintion used for parsing.""" - types = self._prods # rename! - valueProd = Prod(name='PrimitiveValue', - match=lambda t, v: t in (types.DIMENSION, - types.IDENT, - types.NUMBER, - types.PERCENTAGE, - types.STRING), - toSeq=lambda t, tokens: (t[0], CSSPrimitiveValue(t[1]))) - - funcProds = Sequence(Prod(name='FUNC', - match=lambda t, v: t == types.FUNCTION, - toSeq=lambda t, tokens: (t[0], cssutils.helper.normalize(t[1]))), - Choice(Sequence(PreDef.unary(), - valueProd, - # more values starting with Comma - # should use store where colorType is saved to - # define min and may, closure? - Sequence(PreDef.comma(), - PreDef.unary(), - valueProd, - minmax=lambda: (0, 3)), - PreDef.funcEnd(stop=True)), - PreDef.funcEnd(stop=True)) - ) - return funcProds - - def _setCssText(self, cssText): - self._checkReadonly() - # store: colorType, parts - wellformed, seq, store, unusedtokens = ProdParser().parse(cssText, - self._functionName, - self._productiondefinition(), - keepS=True) - if wellformed: - # combine +/- and following CSSPrimitiveValue, remove S - newseq = self._tempSeq() - i, end = 0, len(seq) - while i < end: - item = seq[i] - if item.type == self._prods.S: - pass - elif item.value == u'+' or item.value == u'-': - i += 1 - next = seq[i] - newval = next.value - if isinstance(newval, CSSPrimitiveValue): - newval.setFloatValue(newval.primitiveType, - float(item.value + str(newval.getFloatValue()))) - newseq.append(newval, next.type, - item.line, item.col) - else: - # expressions only? - newseq.appendItem(item) - newseq.appendItem(next) - else: - newseq.appendItem(item) - - i += 1 - - self.wellformed = True - self._setSeq(newseq) - self._funcType = newseq[0].value - - cssText = property(lambda self: cssutils.ser.do_css_RGBColor(self), - _setCssText) - - funcType = property(lambda self: self._funcType) - - -class RGBColor(CSSPrimitiveValue): - """A CSS color like RGB, RGBA or a simple value like `#000` or `red`.""" - def __init__(self, cssText=None, readonly=False): - """ - Init a new RGBColor - - :param cssText: - the parsable cssText of the value - :param readonly: - defaults to False - """ - super(RGBColor, self).__init__() - self._colorType = None - self.valid = False - self.wellformed = False - if cssText is not None: - self.cssText = cssText - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(%r)" % (self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.colorType, self.cssText, - id(self)) - - def _setCssText(self, cssText): - self._checkReadonly() - types = self._prods # rename! - valueProd = Prod(name='value', - match=lambda t, v: t in (types.NUMBER, types.PERCENTAGE), - toSeq=lambda t, v: (CSSPrimitiveValue, CSSPrimitiveValue(v)), - toStore='parts' - ) - # COLOR PRODUCTION - funccolor = Sequence(Prod(name='FUNC', - match=lambda t, v: self._normalize(v) in ('rgb(', 'rgba(', 'hsl(', 'hsla(') and t == types.FUNCTION, - toSeq=lambda t, v: (t, self._normalize(v)), - toStore='colorType'), - PreDef.unary(), - valueProd, - # 2 or 3 more values starting with Comma - Sequence(PreDef.comma(), - PreDef.unary(), - valueProd, - minmax=lambda: (2, 3)), - PreDef.funcEnd() - ) - colorprods = Choice(funccolor, - PreDef.hexcolor('colorType'), - Prod(name='named color', - match=lambda t, v: t == types.IDENT, - toStore='colorType' - ) - ) - # store: colorType, parts - wellformed, seq, store, unusedtokens = ProdParser().parse(cssText, - u'RGBColor', - colorprods, - keepS=True, - store={'parts': []}) - - if wellformed: - self.wellformed = True - if store['colorType'].type == self._prods.HASH: - self._colorType = 'HEX' - elif store['colorType'].type == self._prods.IDENT: - self._colorType = 'Named Color' - else: - self._colorType = self._normalize(store['colorType'].value)[:-1] - - self._setSeq(seq) - - cssText = property(lambda self: cssutils.ser.do_css_RGBColor(self), - _setCssText) - - colorType = property(lambda self: self._colorType) - - -class ExpressionValue(CSSFunction): - """Special IE only CSSFunction which may contain *anything*. - Used for expressions and ``alpha(opacity=100)`` currently.""" - _functionName = u'Expression (IE only)' - - def _productiondefinition(self): - """Return defintion used for parsing.""" - types = self._prods # rename! - - def toSeq(t, tokens): - "Do not normalize function name!" - return t[0], t[1] - - funcProds = Sequence(Prod(name='expression', - match=lambda t, v: t == types.FUNCTION, - toSeq=toSeq - ), - Sequence(Choice(Prod(name='nested function', - match=lambda t, v: t == self._prods.FUNCTION, - toSeq=lambda t, tokens: (CSSFunction._functionName, - CSSFunction(cssutils.helper.pushtoken(t, - tokens))) - ), - Prod(name='part', - match=lambda t, v: v != u')', - toSeq=lambda t, tokens: (t[0], t[1])), - ), - minmax=lambda: (0, None)), - PreDef.funcEnd(stop=True)) - return funcProds - - def _getCssText(self): - return cssutils.ser.do_css_ExpressionValue(self) - - def _setCssText(self, cssText): - return super(ExpressionValue, self)._setCssText(cssText) - - cssText = property(_getCssText, _setCssText, - doc="A string representation of the current value.") - - -class CSSVariable(CSSValue): - """The CSSVariable represents a call to CSS Variable.""" - - def __init__(self, cssText=None, readonly=False): - """Init a new CSSVariable. - - :param cssText: - the parsable cssText of the value, e.g. ``var(x)`` - :param readonly: - defaults to False - """ - self._name = None - super(CSSVariable, self).__init__(cssText=cssText, - readonly=readonly) - - def __repr__(self): - return "cssutils.css.%s(%r)" % (self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.name, self.value, - id(self)) - - def _setCssText(self, cssText): - self._checkReadonly() - - types = self._prods # rename! - - funcProds = Sequence(Prod(name='var', - match=lambda t, v: t == types.FUNCTION - ), - PreDef.ident(toStore='ident'), - PreDef.funcEnd(stop=True)) - - # store: name of variable - store = {'ident': None} - wellformed, seq, store, unusedtokens = ProdParser().parse(cssText, - u'CSSVariable', - funcProds, - keepS=True) - if wellformed: - self._name = store['ident'].value - self._setSeq(seq) - self.wellformed = True - - cssText = property(lambda self: cssutils.ser.do_css_CSSVariable(self), - _setCssText, - doc="A string representation of the current variable.") - - cssValueType = CSSValue.CSS_VARIABLE - - # TODO: writable? check if var (value) available? - name = property(lambda self: self._name) - - def _getValue(self): - "Find contained sheet and @variables there" - # TODO: imports! - - # property: - if self.parent: - # styleDeclaration: - if self.parent.parent: - # styleRule: - if self.parent.parent.parentRule: - # stylesheet - if self.parent.parent.parentRule.parentStyleSheet: - sheet = self.parent.parent.parentRule.parentStyleSheet - for r in sheet.cssRules: - if r.VARIABLES_RULE == r.type and r.variables: - try: - return r.variables[self.name] - except KeyError: - return None - - value = property(_getValue) diff --git a/src/cssutils/css/cssvariablesdeclaration.py b/src/cssutils/css/cssvariablesdeclaration.py deleted file mode 100644 index 8595b68df6..0000000000 --- a/src/cssutils/css/cssvariablesdeclaration.py +++ /dev/null @@ -1,292 +0,0 @@ -"""CSSVariablesDeclaration -http://disruptive-innovations.com/zoo/cssvariables/#mozTocId496530 -""" -__all__ = ['CSSVariablesDeclaration'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssstyledeclaration.py 1819 2009-08-01 20:52:43Z cthedot $' - -from cssutils.prodparser import * -from cssvalue import CSSValue -import cssutils -import itertools -import xml.dom - -class CSSVariablesDeclaration(cssutils.util._NewBase): - """The CSSVariablesDeclaration interface represents a single block of - variable declarations. - """ - def __init__(self, cssText=u'', parentRule=None, readonly=False): - """ - :param cssText: - Shortcut, sets CSSVariablesDeclaration.cssText - :param parentRule: - The CSS rule that contains this declaration block or - None if this CSSVariablesDeclaration is not attached to a CSSRule. - :param readonly: - defaults to False - """ - super(CSSVariablesDeclaration, self).__init__() - self._parentRule = parentRule - self._vars = {} - if cssText: - self.cssText = cssText - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(cssText=%r)" % ( - self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.length, id(self)) - - def __contains__(self, variableName): - """Check if a variable is in variable declaration block. - - :param variableName: - a string - """ - return variableName.lower() in self.keys() - - def __getitem__(self, variableName): - """Retrieve the value of variable ``variableName`` from this - declaration. - """ - return self.getVariableValue(variableName.lower()) - - def __setitem__(self, variableName, value): - self.setVariable(variableName.lower(), value) - - def __delitem__(self, variableName): - return self.removeVariable(variableName.lower()) - - def __iter__(self): - """Iterator of names of set variables.""" - for name in self.keys(): - yield name - - def _absorb(self, other): - """Replace all own data with data from other object.""" - self._parentRule = other._parentRule - self.seq.absorb(other.seq) - self._readonly = other._readonly - - def keys(self): - """Analoguous to standard dict returns variable names which are set in - this declaration.""" - return self._vars.keys() - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_css_CSSVariablesDeclaration(self) - - def _setCssText(self, cssText): - """Setting this attribute will result in the parsing of the new value - and resetting of all the properties in the declaration block - including the removal or addition of properties. - - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly or a property is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - Format:: - - variableset - : vardeclaration [ ';' S* vardeclaration ]* - ; - - vardeclaration - : varname ':' S* term - ; - - varname - : IDENT S* - ; - - expr - : [ VARCALL | term ] [ operator [ VARCALL | term ] ]* - ; - - """ - self._checkReadonly() - - vardeclaration = Sequence( - PreDef.ident(), - PreDef.char(u':', u':', toSeq=False), - #PreDef.S(toSeq=False, optional=True), - Prod(name=u'term', match=lambda t, v: True, - toSeq=lambda t, tokens: (u'value', - CSSValue(itertools.chain([t], - tokens)) - ) - ), - PreDef.char(u';', u';', toSeq=False, optional=True), - ) - prods = Sequence(vardeclaration, minmax=lambda: (0, None)) - # parse - wellformed, seq, store, notused = \ - ProdParser().parse(cssText, - u'CSSVariableDeclaration', - prods) - if wellformed: - newseq = self._tempSeq() - - # seq contains only name: value pairs plus comments etc - lastname = None - for item in seq: - if u'IDENT' == item.type: - lastname = item - self._vars[lastname.value.lower()] = None - elif u'value' == item.type: - self._vars[lastname.value.lower()] = item.value - newseq.append((lastname.value, item.value), - 'var', - lastname.line, lastname.col) - else: - newseq.appendItem(item) - - self._setSeq(newseq) - self.wellformed = True - - - cssText = property(_getCssText, _setCssText, - doc="(DOM) A parsable textual representation of the declaration\ - block excluding the surrounding curly braces.") - - def _setParentRule(self, parentRule): - self._parentRule = parentRule - - parentRule = property(lambda self: self._parentRule, _setParentRule, - doc="(DOM) The CSS rule that contains this" - " declaration block or None if this block" - " is not attached to a CSSRule.") - - def getVariableValue(self, variableName): - """Used to retrieve the value of a variable if it has been explicitly - set within this variable declaration block. - - :param variableName: - The name of the variable. - :returns: - the value of the variable if it has been explicitly set in this - variable declaration block. Returns the empty string if the - variable has not been set. - """ - try: - return self._vars[variableName.lower()].cssText - except KeyError, e: - return u'' - - def removeVariable(self, variableName): - """Used to remove a variable if it has been explicitly set within this - variable declaration block. - - :param variableName: - The name of the variable. - :returns: - the value of the variable if it has been explicitly set for this - variable declaration block. Returns the empty string if the - variable has not been set. - - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly is readonly. - """ - try: - r = self._vars[variableName.lower()] - except KeyError, e: - return u'' - else: - self.seq._readonly = False - if variableName in self._vars: - for i, x in enumerate(self.seq): - if x.value[0] == variableName: - del self.seq[i] - self.seq._readonly = True - del self._vars[variableName.lower()] - - return r.cssText - - def setVariable(self, variableName, value): - """Used to set a variable value within this variable declaration block. - - :param variableName: - The name of the CSS variable. - :param value: - The new value of the variable, may also be a CSSValue object. - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified value has a syntax error and is - unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly or the property is - readonly. - """ - self._checkReadonly() - - # check name - wellformed, seq, store, unused = ProdParser().parse(variableName.lower(), - u'variableName', - Sequence(PreDef.ident() - )) - if not wellformed: - self._log.error(u'Invalid variableName: %r: %r' - % (variableName, value)) - else: - # check value - if isinstance(value, CSSValue): - v = value - else: - v = CSSValue(cssText=value) - - if not v.wellformed: - self._log.error(u'Invalid variable value: %r: %r' - % (variableName, value)) - else: - # update seq - self.seq._readonly = False - if variableName in self._vars: - for i, x in enumerate(self.seq): - if x.value[0] == variableName: - x.replace(i, - [variableName, v], - x.type, - x.line, - x.col) - break - else: - self.seq.append([variableName, v], 'var') - self.seq._readonly = True - self._vars[variableName] = v - - - - def item(self, index): - """Used to retrieve the variables that have been explicitly set in - this variable declaration block. The order of the variables - retrieved using this method does not have to be the order in which - they were set. This method can be used to iterate over all variables - in this variable declaration block. - - :param index: - of the variable name to retrieve, negative values behave like - negative indexes on Python lists, so -1 is the last element - - :returns: - The name of the variable at this ordinal position. The empty - string if no variable exists at this position. - """ - try: - return self.keys()[index] - except IndexError: - return u'' - - length = property(lambda self: len(self._vars), - doc="The number of variables that have been explicitly set in this" - " variable declaration block. The range of valid indices is 0" - " to length-1 inclusive.") diff --git a/src/cssutils/css/cssvariablesrule.py b/src/cssutils/css/cssvariablesrule.py deleted file mode 100644 index f7a311f506..0000000000 --- a/src/cssutils/css/cssvariablesrule.py +++ /dev/null @@ -1,164 +0,0 @@ -"""CSSVariables implements (and only partly) experimental -`CSS Variables `_ -""" -__all__ = ['CSSVariablesRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssfontfacerule.py 1818 2009-07-30 21:39:00Z cthedot $' - -from cssvariablesdeclaration import CSSVariablesDeclaration -import cssrule -import cssutils -import xml.dom - -class CSSVariablesRule(cssrule.CSSRule): - """ - The CSSVariablesRule interface represents a @variables rule within a CSS - style sheet. The @variables rule is used to specify variables. - - cssutils uses a :class:`~cssutils.css.CSSVariablesDeclaration` to - represent the variables. - """ - def __init__(self, mediaText=None, variables=None, parentRule=None, - parentStyleSheet=None, readonly=False): - """ - If readonly allows setting of properties in constructor only. - """ - super(CSSVariablesRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@variables' - self._media = cssutils.stylesheets.MediaList(mediaText, - readonly=readonly) - self._variables = CSSVariablesDeclaration(parentRule=self) - if variables: - self.variables = variables - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(mediaText=%r, variables=%r)" % ( - self.__class__.__name__, - self._media.mediaText, self.variables.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self._media.mediaText, - self.variables.cssText, self.valid, id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSVariablesRule(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - - Format:: - - variables - : VARIABLES_SYM S* medium [ COMMA S* medium ]* LBRACE S* variableset* '}' S* - ; - - variableset - : LBRACE S* vardeclaration [ ';' S* vardeclaration ]* '}' S* - ; - """ - super(CSSVariablesRule, self)._setCssText(cssText) - - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if self._type(attoken) != self._prods.VARIABLES_SYM: - self._log.error(u'CSSVariablesRule: No CSSVariablesRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldvariables = CSSVariablesDeclaration() - oldvariables._absorb(self.variables) - - ok = True - beforetokens, brace = self._tokensupto2(tokenizer, - blockstartonly=True, - separateEnd=True) - if self._tokenvalue(brace) != u'{': - ok = False - self._log.error( - u'CSSVariablesRule: No start { of variable declaration found: %r' % - self._valuestr(cssText), brace) - - # parse stuff before { which should be comments and S only - new = {'wellformed': True} - newseq = self._tempSeq()#[] - - beforewellformed, expected = self._parse(expected=':', - seq=newseq, tokenizer=self._tokenize2(beforetokens), - productions={}) - ok = ok and beforewellformed and new['wellformed'] - - variablestokens, braceorEOFtoken = self._tokensupto2(tokenizer, - blockendonly=True, - separateEnd=True) - - val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken) - if val != u'}' and typ != 'EOF': - ok = False - self._log.error( - u'CSSVariablesRule: No "}" after variables declaration found: %r' % - self._valuestr(cssText)) - - nonetoken = self._nexttoken(tokenizer) - if nonetoken: - ok = False - self._log.error(u'CSSVariablesRule: Trailing content found.', - token=nonetoken) - - if 'EOF' == typ: - # add again as variables needs it - variablestokens.append(braceorEOFtoken) - # may raise: - self.variables.cssText = variablestokens - - if ok: - # contains probably comments only upto { - self._setSeq(newseq) - else: - # RESET - self.variables._absorb(oldvariables) - - cssText = property(_getCssText, _setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _setVariables(self, variables): - """ - :param variables: - a CSSVariablesDeclaration or string - """ - self._checkReadonly() - if isinstance(variables, basestring): - self._variables.cssText = variables - else: - self._variables = variables - self._variables.parentRule = self - - variables = property(lambda self: self._variables, _setVariables, - doc="(DOM) The variables of this rule set, " - "a :class:`~cssutils.css.CSSVariablesDeclaration`.") - - type = property(lambda self: self.VARIABLES_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - valid = property(lambda self: True, doc='TODO') - - # constant but needed: - wellformed = property(lambda self: True) diff --git a/src/cssutils/css/property.py b/src/cssutils/css/property.py deleted file mode 100644 index c8a7333630..0000000000 --- a/src/cssutils/css/property.py +++ /dev/null @@ -1,477 +0,0 @@ -"""Property is a single CSS property in a CSSStyleDeclaration.""" -__all__ = ['Property'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: property.py 1878 2009-11-17 20:16:26Z cthedot $' - -from cssutils.helper import Deprecated -from cssvalue import CSSValue -import cssutils -import xml.dom - -class Property(cssutils.util.Base): - """A CSS property in a StyleDeclaration of a CSSStyleRule (cssutils). - - Format:: - - property = name - : IDENT S* - ; - - expr = value - : term [ operator term ]* - ; - term - : unary_operator? - [ NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* | - TIME S* | FREQ S* | function ] - | STRING S* | IDENT S* | URI S* | hexcolor - ; - function - : FUNCTION S* expr ')' S* - ; - /* - * There is a constraint on the color that it must - * have either 3 or 6 hex-digits (i.e., [0-9a-fA-F]) - * after the "#"; e.g., "#000" is OK, but "#abcd" is not. - */ - hexcolor - : HASH S* - ; - - prio - : IMPORTANT_SYM S* - ; - - """ - def __init__(self, name=None, value=None, priority=u'', - _mediaQuery=False, parent=None): - """ - :param name: - a property name string (will be normalized) - :param value: - a property value string - :param priority: - an optional priority string which currently must be u'', - u'!important' or u'important' - :param _mediaQuery: - if ``True`` value is optional (used by MediaQuery) - :param parent: - the parent object, normally a - :class:`cssutils.css.CSSStyleDeclaration` - """ - super(Property, self).__init__() - self.seqs = [[], None, []] - self.wellformed = False - self._mediaQuery = _mediaQuery - self.parent = parent - - self.__nametoken = None - self._name = u'' - self._literalname = u'' - self.seqs[1] = CSSValue(parent=self) - if name: - self.name = name - self.cssValue = value - - self._priority = u'' - self._literalpriority = u'' - if priority: - self.priority = priority - - def __repr__(self): - return "cssutils.css.%s(name=%r, value=%r, priority=%r)" % ( - self.__class__.__name__, - self.literalname, self.cssValue.cssText, self.priority) - - def __str__(self): - return "<%s.%s object name=%r value=%r priority=%r valid=%r at 0x%x>" % ( - self.__class__.__module__, self.__class__.__name__, - self.name, self.cssValue.cssText, self.priority, - self.valid, id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_Property(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - # check and prepare tokenlists for setting - tokenizer = self._tokenize2(cssText) - nametokens = self._tokensupto2(tokenizer, propertynameendonly=True) - if nametokens: - wellformed = True - - valuetokens = self._tokensupto2(tokenizer, - propertyvalueendonly=True) - prioritytokens = self._tokensupto2(tokenizer, - propertypriorityendonly=True) - - if self._mediaQuery and not valuetokens: - # MediaQuery may consist of name only - self.name = nametokens - self.cssValue = None - self.priority = None - return - - # remove colon from nametokens - colontoken = nametokens.pop() - if self._tokenvalue(colontoken) != u':': - wellformed = False - self._log.error(u'Property: No ":" after name found: %r' % - self._valuestr(cssText), colontoken) - elif not nametokens: - wellformed = False - self._log.error(u'Property: No property name found: %r.' % - self._valuestr(cssText), colontoken) - - if valuetokens: - if self._tokenvalue(valuetokens[-1]) == u'!': - # priority given, move "!" to prioritytokens - prioritytokens.insert(0, valuetokens.pop(-1)) - else: - wellformed = False - self._log.error(u'Property: No property value found: %r.' % - self._valuestr(cssText), colontoken) - - if wellformed: - self.wellformed = True - self.name = nametokens - self.cssValue = valuetokens - self.priority = prioritytokens - - # also invalid values are set! - self.validate() - - else: - self._log.error(u'Property: No property name found: %r.' % - self._valuestr(cssText)) - - cssText = property(fget=_getCssText, fset=_setCssText, - doc="A parsable textual representation.") - - def _setName(self, name): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified name has a syntax error and is - unparsable. - """ - # for closures: must be a mutable - new = {'literalname': None, - 'wellformed': True} - - def _ident(expected, seq, token, tokenizer=None): - # name - if 'name' == expected: - new['literalname'] = self._tokenvalue(token).lower() - seq.append(new['literalname']) - return 'EOF' - else: - new['wellformed'] = False - self._log.error(u'Property: Unexpected ident.', token) - return expected - - newseq = [] - wellformed, expected = self._parse(expected='name', - seq=newseq, - tokenizer=self._tokenize2(name), - productions={'IDENT': _ident}) - wellformed = wellformed and new['wellformed'] - - # post conditions - # define a token for error logging - if isinstance(name, list): - token = name[0] - self.__nametoken = token - else: - token = None - - if not new['literalname']: - wellformed = False - self._log.error(u'Property: No name found: %r' % - self._valuestr(name), token=token) - - if wellformed: - self.wellformed = True - self._literalname = new['literalname'] - self._name = self._normalize(self._literalname) - self.seqs[0] = newseq - -# # validate - if self._name not in cssutils.profile.knownNames: - # self.valid = False - self._log.warn(u'Property: Unknown Property name.', - token=token, neverraise=True) - else: - pass -# self.valid = True -# if self.cssValue: -# self.cssValue._propertyName = self._name -# #self.valid = self.cssValue.valid - else: - self.wellformed = False - - name = property(lambda self: self._name, _setName, - doc="Name of this property.") - - literalname = property(lambda self: self._literalname, - doc="Readonly literal (not normalized) name " - "of this property") - - def _getCSSValue(self): - return self.seqs[1] - - def _setCSSValue(self, cssText): - """ - See css.CSSValue - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - (according to the attached property) or is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - TODO: Raised if the specified CSS string value represents a different - type of values than the values allowed by the CSS property. - """ - if self._mediaQuery and not cssText: - self.seqs[1] = CSSValue(parent=self) - else: - oldvalue = self.seqs[1].cssText - try: - self.seqs[1].cssText = cssText - except: - self.seqs[1].cssText = oldvalue - raise - - self.wellformed = self.wellformed and self.seqs[1].wellformed - - cssValue = property(_getCSSValue, _setCSSValue, - doc="(cssutils) CSSValue object of this property") - - def _getValue(self): - if self.cssValue: - return self.cssValue.cssText - else: - return u'' - - def _setValue(self, value): - self._setCSSValue(value) - - value = property(_getValue, _setValue, - doc="The textual value of this Properties cssValue.") - - def _setPriority(self, priority): - """ - priority - a string, currently either u'', u'!important' or u'important' - - Format:: - - prio - : IMPORTANT_SYM S* - ; - - "!"{w}"important" {return IMPORTANT_SYM;} - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified priority has a syntax error and is - unparsable. - In this case a priority not equal to None, "" or "!{w}important". - As CSSOM defines CSSStyleDeclaration.getPropertyPriority resulting in - u'important' this value is also allowed to set a Properties priority - """ - if self._mediaQuery: - self._priority = u'' - self._literalpriority = u'' - if priority: - self._log.error(u'Property: No priority in a MediaQuery - ignored.') - return - - if isinstance(priority, basestring) and\ - u'important' == self._normalize(priority): - priority = u'!%s' % priority - - # for closures: must be a mutable - new = {'literalpriority': u'', - 'wellformed': True} - - def _char(expected, seq, token, tokenizer=None): - # "!" - val = self._tokenvalue(token) - if u'!' == expected == val: - seq.append(val) - return 'important' - else: - new['wellformed'] = False - self._log.error(u'Property: Unexpected char.', token) - return expected - - def _ident(expected, seq, token, tokenizer=None): - # "important" - val = self._tokenvalue(token) - if 'important' == expected: - new['literalpriority'] = val - seq.append(val) - return 'EOF' - else: - new['wellformed'] = False - self._log.error(u'Property: Unexpected ident.', token) - return expected - - newseq = [] - wellformed, expected = self._parse(expected='!', - seq=newseq, - tokenizer=self._tokenize2(priority), - productions={'CHAR': _char, - 'IDENT': _ident}) - wellformed = wellformed and new['wellformed'] - - # post conditions - if priority and not new['literalpriority']: - wellformed = False - self._log.info(u'Property: Invalid priority: %r.' % - self._valuestr(priority)) - - if wellformed: - self.wellformed = self.wellformed and wellformed - self._literalpriority = new['literalpriority'] - self._priority = self._normalize(self.literalpriority) - self.seqs[2] = newseq - # validate priority - if self._priority not in (u'', u'important'): - self._log.error(u'Property: No CSS priority value: %r.' % - self._priority) - - priority = property(lambda self: self._priority, _setPriority, - doc="Priority of this property.") - - literalpriority = property(lambda self: self._literalpriority, - doc="Readonly literal (not normalized) priority of this property") - - def _setParent(self, parent): - self._parent = parent - - parent = property(lambda self: self._parent, _setParent, - doc="The Parent Node (normally a CSSStyledeclaration) of this " - "Property") - - def validate(self): - """Validate value against `profiles` which are checked dynamically. - properties in e.g. @font-face rules are checked against - ``cssutils.profile.CSS3_FONT_FACE`` only. - - For each of the following cases a message is reported: - - - INVALID (so the property is known but not valid) - ``ERROR Property: Invalid value for "{PROFILE-1[/PROFILE-2...]" - property: ...`` - - - VALID but not in given profiles or defaultProfiles - ``WARNING Property: Not valid for profile "{PROFILE-X}" but valid - "{PROFILE-Y}" property: ...`` - - - VALID in current profile - ``DEBUG Found valid "{PROFILE-1[/PROFILE-2...]" property...`` - - - UNKNOWN property - ``WARNING Unknown Property name...`` is issued - - so for example:: - - cssutils.log.setLevel(logging.DEBUG) - parser = cssutils.CSSParser() - s = parser.parseString('''body { - unknown-property: x; - color: 4; - color: rgba(1,2,3,4); - color: red - }''') - - # Log output: - - WARNING Property: Unknown Property name. [2:9: unknown-property] - ERROR Property: Invalid value for "CSS Color Module Level 3/CSS Level 2.1" property: 4 [3:9: color] - DEBUG Property: Found valid "CSS Color Module Level 3" value: rgba(1, 2, 3, 4) [4:9: color] - DEBUG Property: Found valid "CSS Level 2.1" value: red [5:9: color] - - - and when setting an explicit default profile:: - - cssutils.profile.defaultProfiles = cssutils.profile.CSS_LEVEL_2 - s = parser.parseString('''body { - unknown-property: x; - color: 4; - color: rgba(1,2,3,4); - color: red - }''') - - # Log output: - - WARNING Property: Unknown Property name. [2:9: unknown-property] - ERROR Property: Invalid value for "CSS Color Module Level 3/CSS Level 2.1" property: 4 [3:9: color] - WARNING Property: Not valid for profile "CSS Level 2.1" but valid "CSS Color Module Level 3" value: rgba(1, 2, 3, 4) [4:9: color] - DEBUG Property: Found valid "CSS Level 2.1" value: red [5:9: color] - """ - valid = False - - profiles = None - try: - # if @font-face use that profile - rule = self.parent.parentRule - if rule.type == rule.FONT_FACE_RULE: - profiles = [cssutils.profile.CSS3_FONT_FACE] - #TODO: same for @page - except AttributeError: - pass - - if self.name and self.value: - - if self.name in cssutils.profile.knownNames: - # add valid, matching, validprofiles... - valid, matching, validprofiles = \ - cssutils.profile.validateWithProfile(self.name, - self.value, - profiles) - - if not valid: - self._log.error(u'Property: Invalid value for ' - u'"%s" property: %s' - % (u'/'.join(validprofiles), self.value), - token=self.__nametoken, - neverraise=True) - - # TODO: remove logic to profiles! - elif valid and not matching:#(profiles and profiles not in validprofiles): - if not profiles: - notvalidprofiles = u'/'.join(cssutils.profile.defaultProfiles) - else: - notvalidprofiles = profiles - self._log.warn(u'Property: Not valid for profile "%s" ' - u'but valid "%s" value: %s ' - % (notvalidprofiles, u'/'.join(validprofiles), - self.value), - token = self.__nametoken, - neverraise=True) - valid = False - - elif valid: - self._log.debug(u'Property: Found valid "%s" value: %s' - % (u'/'.join(validprofiles), self.value), - token = self.__nametoken, - neverraise=True) - - if self._priority not in (u'', u'important'): - valid = False - - return valid - - valid = property(validate, doc="Check if value of this property is valid " - "in the properties context.") diff --git a/src/cssutils/css/selector.py b/src/cssutils/css/selector.py deleted file mode 100644 index 9446cc303a..0000000000 --- a/src/cssutils/css/selector.py +++ /dev/null @@ -1,798 +0,0 @@ -"""Selector is a single Selector of a CSSStyleRule SelectorList. -Partly implements http://www.w3.org/TR/css3-selectors/. - -TODO - - .contains(selector) - - .isSubselector(selector) -""" -__all__ = ['Selector'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: selector.py 1868 2009-10-17 19:36:54Z cthedot $' - -from cssutils.util import _SimpleNamespaces -from cssutils.helper import Deprecated -import cssutils -import xml.dom - -class Selector(cssutils.util.Base2): - """ - (cssutils) a single selector in a :class:`~cssutils.css.SelectorList` - of a :class:`~cssutils.css.CSSStyleRule`. - - Format:: - - # implemented in SelectorList - selectors_group - : selector [ COMMA S* selector ]* - ; - - selector - : simple_selector_sequence [ combinator simple_selector_sequence ]* - ; - - combinator - /* combinators can be surrounded by white space */ - : PLUS S* | GREATER S* | TILDE S* | S+ - ; - - simple_selector_sequence - : [ type_selector | universal ] - [ HASH | class | attrib | pseudo | negation ]* - | [ HASH | class | attrib | pseudo | negation ]+ - ; - - type_selector - : [ namespace_prefix ]? element_name - ; - - namespace_prefix - : [ IDENT | '*' ]? '|' - ; - - element_name - : IDENT - ; - - universal - : [ namespace_prefix ]? '*' - ; - - class - : '.' IDENT - ; - - attrib - : '[' S* [ namespace_prefix ]? IDENT S* - [ [ PREFIXMATCH | - SUFFIXMATCH | - SUBSTRINGMATCH | - '=' | - INCLUDES | - DASHMATCH ] S* [ IDENT | STRING ] S* - ]? ']' - ; - - pseudo - /* '::' starts a pseudo-element, ':' a pseudo-class */ - /* Exceptions: :first-line, :first-letter, :before and :after. */ - /* Note that pseudo-elements are restricted to one per selector and */ - /* occur only in the last simple_selector_sequence. */ - : ':' ':'? [ IDENT | functional_pseudo ] - ; - - functional_pseudo - : FUNCTION S* expression ')' - ; - - expression - /* In CSS3, the expressions are identifiers, strings, */ - /* or of the form "an+b" */ - : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+ - ; - - negation - : NOT S* negation_arg S* ')' - ; - - negation_arg - : type_selector | universal | HASH | class | attrib | pseudo - ; - - """ - def __init__(self, selectorText=None, parent=None, - readonly=False): - """ - :Parameters: - selectorText - initial value of this selector - parent - a SelectorList - readonly - default to False - """ - super(Selector, self).__init__() - - self.__namespaces = _SimpleNamespaces(log=self._log) - self._element = None - self._parent = parent - self._specificity = (0, 0, 0, 0) - - if selectorText: - self.selectorText = selectorText - - self._readonly = readonly - - def __repr__(self): - if self.__getNamespaces(): - st = (self.selectorText, self._getUsedNamespaces()) - else: - st = self.selectorText - return u"cssutils.css.%s(selectorText=%r)" % ( - self.__class__.__name__, st) - - def __str__(self): - return u"" % ( - self.__class__.__name__, self.selectorText, self.specificity, - self._getUsedNamespaces(), id(self)) - - def _getUsedUris(self): - "Return list of actually used URIs in this Selector." - uris = set() - for item in self.seq: - type_, val = item.type, item.value - if type_.endswith(u'-selector') or type_ == u'universal' and \ - type(val) == tuple and val[0] not in (None, u'*'): - uris.add(val[0]) - return uris - - def _getUsedNamespaces(self): - "Return actually used namespaces only." - useduris = self._getUsedUris() - namespaces = _SimpleNamespaces(log=self._log) - for p, uri in self._namespaces.items(): - if uri in useduris: - namespaces[p] = uri - return namespaces - - def __getNamespaces(self): - "Use own namespaces if not attached to a sheet, else the sheet's ones." - try: - return self._parent.parentRule.parentStyleSheet.namespaces - except AttributeError: - return self.__namespaces - - _namespaces = property(__getNamespaces, doc="""If this Selector is attached - to a CSSStyleSheet the namespaces of that sheet are mirrored here. - While the Selector (or parent SelectorList or parentRule(s) of that are - not attached a own dict of {prefix: namespaceURI} is used.""") - - - element = property(lambda self: self._element, - doc=u"Effective element target of this selector.") - - parent = property(lambda self: self._parent, - doc="(DOM) The SelectorList that contains this Selector or\ - None if this Selector is not attached to a SelectorList.") - - def _getSelectorText(self): - """Return serialized format.""" - return cssutils.ser.do_css_Selector(self) - - def _setSelectorText(self, selectorText): - """ - :param selectorText: - parsable string or a tuple of (selectorText, dict-of-namespaces). - Given namespaces are ignored if this object is attached to a - CSSStyleSheet! - - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if the specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - and is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - - # might be (selectorText, namespaces) - selectorText, namespaces = self._splitNamespacesOff(selectorText) - - try: - # uses parent stylesheets namespaces if available, otherwise given ones - namespaces = self.parent.parentRule.parentStyleSheet.namespaces - except AttributeError: - pass - tokenizer = self._tokenize2(selectorText) - if not tokenizer: - self._log.error(u'Selector: No selectorText given.') - else: - # prepare tokenlist: - # "*" -> type "universal" - # "*"|IDENT + "|" -> combined to "namespace_prefix" - # "|" -> type "namespace_prefix" - # "." + IDENT -> combined to "class" - # ":" + IDENT, ":" + FUNCTION -> pseudo-class - # FUNCTION "not(" -> negation - # "::" + IDENT, "::" + FUNCTION -> pseudo-element - tokens = [] - for t in tokenizer: - typ, val, lin, col = t - if val == u':' and tokens and\ - self._tokenvalue(tokens[-1]) == ':': - # combine ":" and ":" - tokens[-1] = (typ, u'::', lin, col) - - elif typ == 'IDENT' and tokens\ - and self._tokenvalue(tokens[-1]) == u'.': - # class: combine to .IDENT - tokens[-1] = ('class', u'.'+val, lin, col) - elif typ == 'IDENT' and tokens and \ - self._tokenvalue(tokens[-1]).startswith(u':') and\ - not self._tokenvalue(tokens[-1]).endswith(u'('): - # pseudo-X: combine to :IDENT or ::IDENT but not ":a(" + "b" - if self._tokenvalue(tokens[-1]).startswith(u'::'): - t = 'pseudo-element' - else: - t = 'pseudo-class' - tokens[-1] = (t, self._tokenvalue(tokens[-1])+val, lin, col) - - elif typ == 'FUNCTION' and val == u'not(' and tokens and \ - u':' == self._tokenvalue(tokens[-1]): - tokens[-1] = ('negation', u':' + val, lin, tokens[-1][3]) - elif typ == 'FUNCTION' and tokens\ - and self._tokenvalue(tokens[-1]).startswith(u':'): - # pseudo-X: combine to :FUNCTION( or ::FUNCTION( - if self._tokenvalue(tokens[-1]).startswith(u'::'): - t = 'pseudo-element' - else: - t = 'pseudo-class' - tokens[-1] = (t, self._tokenvalue(tokens[-1])+val, lin, col) - - elif val == u'*' and tokens and\ - self._type(tokens[-1]) == 'namespace_prefix' and\ - self._tokenvalue(tokens[-1]).endswith(u'|'): - # combine prefix|* - tokens[-1] = ('universal', self._tokenvalue(tokens[-1])+val, - lin, col) - elif val == u'*': - # universal: "*" - tokens.append(('universal', val, lin, col)) - - elif val == u'|' and tokens and\ - self._type(tokens[-1]) in (self._prods.IDENT, 'universal') and\ - self._tokenvalue(tokens[-1]).find(u'|') == -1: - # namespace_prefix: "IDENT|" or "*|" - tokens[-1] = ('namespace_prefix', - self._tokenvalue(tokens[-1])+u'|', lin, col) - elif val == u'|': - # namespace_prefix: "|" - tokens.append(('namespace_prefix', val, lin, col)) - - else: - tokens.append(t) - - # TODO: back to generator but not elegant at all! - tokenizer = (t for t in tokens) - - # for closures: must be a mutable - new = {'context': [''], # stack of: 'attrib', 'negation', 'pseudo' - 'element': None, - '_PREFIX': None, - 'specificity': [0, 0, 0, 0], # mutable, finally a tuple! - 'wellformed': True - } - # used for equality checks and setting of a space combinator - S = u' ' - - def append(seq, val, typ=None, token=None): - """ - appends to seq - - namespace_prefix, IDENT will be combined to a tuple - (prefix, name) where prefix might be None, the empty string - or a prefix. - - Saved are also: - - specificity definition: style, id, class/att, type - - element: the element this Selector is for - """ - context = new['context'][-1] - if token: - line, col = token[2], token[3] - else: - line, col = None, None - - if typ == '_PREFIX': - # SPECIAL TYPE: save prefix for combination with next - new['_PREFIX'] = val[:-1] - # handle next time - return - - if new['_PREFIX'] is not None: - # as saved from before and reset to None - prefix, new['_PREFIX'] = new['_PREFIX'], None - elif typ == 'universal' and '|' in val: - # val == *|* or prefix|* - prefix, val = val.split('|') - else: - prefix = None - - # namespace - if (typ.endswith('-selector') or typ == 'universal') and not ( - 'attribute-selector' == typ and not prefix): - # att **IS NOT** in default ns - if prefix == u'*': - # *|name: in ANY_NS - namespaceURI = cssutils._ANYNS - elif prefix is None: - # e or *: default namespace with prefix u'' or local-name() - namespaceURI = namespaces.get(u'', None) - elif prefix == u'': - # |name or |*: in no (or the empty) namespace - namespaceURI = u'' - else: - # explicit namespace prefix - # does not raise KeyError, see _SimpleNamespaces - namespaceURI = namespaces[prefix] - - if namespaceURI is None: - new['wellformed'] = False - self._log.error( - u'Selector: No namespaceURI found for prefix %r' % - prefix, token=token, error=xml.dom.NamespaceErr) - return - - # val is now (namespaceprefix, name) tuple - val = (namespaceURI, val) - - # specificity - if not context or context == 'negation': - if 'id' == typ: - new['specificity'][1] += 1 - elif 'class' == typ or '[' == val: - new['specificity'][2] += 1 - elif typ in ('type-selector', 'negation-type-selector', - 'pseudo-element'): - new['specificity'][3] += 1 - if not context and typ in ('type-selector', 'universal'): - # define element - new['element'] = val - - seq.append(val, typ, line=line, col=col) - - # expected constants - simple_selector_sequence = 'type_selector universal HASH class attrib pseudo negation ' - simple_selector_sequence2 = 'HASH class attrib pseudo negation ' - - element_name = 'element_name' - - negation_arg = 'type_selector universal HASH class attrib pseudo' - negationend = ')' - - attname = 'prefix attribute' - attname2 = 'attribute' - attcombinator = 'combinator ]' # optional - attvalue = 'value' # optional - attend = ']' - - expressionstart = 'PLUS - DIMENSION NUMBER STRING IDENT' - expression = expressionstart + ' )' - - combinator = ' combinator' - - def _COMMENT(expected, seq, token, tokenizer=None): - "special implementation for comment token" - append(seq, cssutils.css.CSSComment([token]), 'COMMENT', - token=token) - return expected - - def _S(expected, seq, token, tokenizer=None): - # S - context = new['context'][-1] - if context.startswith('pseudo-'): - if seq and seq[-1].value not in u'+-': - # e.g. x:func(a + b) - append(seq, S, 'S', token=token) - return expected - - elif context != 'attrib' and 'combinator' in expected: - append(seq, S, 'descendant', token=token) - return simple_selector_sequence + combinator - - else: - return expected - - def _universal(expected, seq, token, tokenizer=None): - # *|* or prefix|* - context = new['context'][-1] - val = self._tokenvalue(token) - if 'universal' in expected: - append(seq, val, 'universal', token=token) - - if 'negation' == context: - return negationend - else: - return simple_selector_sequence2 + combinator - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected universal.', token=token) - return expected - - def _namespace_prefix(expected, seq, token, tokenizer=None): - # prefix| => element_name - # or prefix| => attribute_name if attrib - context = new['context'][-1] - val = self._tokenvalue(token) - if 'attrib' == context and 'prefix' in expected: - # [PREFIX|att] - append(seq, val, '_PREFIX', token=token) - return attname2 - elif 'type_selector' in expected: - # PREFIX|* - append(seq, val, '_PREFIX', token=token) - return element_name - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected namespace prefix.', token=token) - return expected - - def _pseudo(expected, seq, token, tokenizer=None): - # pseudo-class or pseudo-element :a ::a :a( ::a( - """ - /* '::' starts a pseudo-element, ':' a pseudo-class */ - /* Exceptions: :first-line, :first-letter, :before and :after. */ - /* Note that pseudo-elements are restricted to one per selector and */ - /* occur only in the last simple_selector_sequence. */ - """ - context = new['context'][-1] - val, typ = self._tokenvalue(token, normalize=True), self._type(token) - if 'pseudo' in expected: - if val in (':first-line', ':first-letter', ':before', ':after'): - # always pseudo-element ??? - typ = 'pseudo-element' - append(seq, val, typ, token=token) - - if val.endswith(u'('): - # function - new['context'].append(typ) # "pseudo-" "class" or "element" - return expressionstart - elif 'negation' == context: - return negationend - elif 'pseudo-element' == typ: - # only one per element, check at ) also! - return combinator - else: - return simple_selector_sequence2 + combinator - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected start of pseudo.', token=token) - return expected - - def _expression(expected, seq, token, tokenizer=None): - # [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+ - context = new['context'][-1] - val, typ = self._tokenvalue(token), self._type(token) - if context.startswith('pseudo-'): - append(seq, val, typ, token=token) - return expression - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected %s.' % typ, token=token) - return expected - - def _attcombinator(expected, seq, token, tokenizer=None): - # context: attrib - # PREFIXMATCH | SUFFIXMATCH | SUBSTRINGMATCH | INCLUDES | - # DASHMATCH - context = new['context'][-1] - val, typ = self._tokenvalue(token), self._type(token) - if 'attrib' == context and 'combinator' in expected: - # combinator in attrib - append(seq, val, typ.lower(), token=token) - return attvalue - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected %s.' % typ, token=token) - return expected - - def _string(expected, seq, token, tokenizer=None): - # identifier - context = new['context'][-1] - typ, val = self._type(token), self._stringtokenvalue(token) - - # context: attrib - if 'attrib' == context and 'value' in expected: - # attrib: [...=VALUE] - append(seq, val, typ, token=token) - return attend - - # context: pseudo - elif context.startswith('pseudo-'): - # :func(...) - append(seq, val, typ, token=token) - return expression - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected STRING.', token=token) - return expected - - def _ident(expected, seq, token, tokenizer=None): - # identifier - context = new['context'][-1] - val, typ = self._tokenvalue(token), self._type(token) - - # context: attrib - if 'attrib' == context and 'attribute' in expected: - # attrib: [...|ATT...] - append(seq, val, 'attribute-selector', token=token) - return attcombinator - - elif 'attrib' == context and 'value' in expected: - # attrib: [...=VALUE] - append(seq, val, 'attribute-value', token=token) - return attend - - # context: negation - elif 'negation' == context: - # negation: (prefix|IDENT) - append(seq, val, 'negation-type-selector', token=token) - return negationend - - # context: pseudo - elif context.startswith('pseudo-'): - # :func(...) - append(seq, val, typ, token=token) - return expression - - elif 'type_selector' in expected or element_name == expected: - # element name after ns or complete type_selector - append(seq, val, 'type-selector', token=token) - return simple_selector_sequence2 + combinator - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected IDENT.', - token=token) - return expected - - def _class(expected, seq, token, tokenizer=None): - # .IDENT - context = new['context'][-1] - val = self._tokenvalue(token) - if 'class' in expected: - append(seq, val, 'class', token=token) - - if 'negation' == context: - return negationend - else: - return simple_selector_sequence2 + combinator - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected class.', token=token) - return expected - - def _hash(expected, seq, token, tokenizer=None): - # #IDENT - context = new['context'][-1] - val = self._tokenvalue(token) - if 'HASH' in expected: - append(seq, val, 'id', token=token) - - if 'negation' == context: - return negationend - else: - return simple_selector_sequence2 + combinator - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected HASH.', token=token) - return expected - - def _char(expected, seq, token, tokenizer=None): - # + > ~ ) [ ] + - - context = new['context'][-1] - val = self._tokenvalue(token) - - # context: attrib - if u']' == val and 'attrib' == context and ']' in expected: - # end of attrib - append(seq, val, 'attribute-end', token=token) - context = new['context'].pop() # attrib is done - context = new['context'][-1] - if 'negation' == context: - return negationend - else: - return simple_selector_sequence2 + combinator - - elif u'=' == val and 'attrib' == context and 'combinator' in expected: - # combinator in attrib - append(seq, val, 'equals', token=token) - return attvalue - - # context: negation - elif u')' == val and 'negation' == context and u')' in expected: - # not(negation_arg)" - append(seq, val, 'negation-end', token=token) - new['context'].pop() # negation is done - context = new['context'][-1] - return simple_selector_sequence + combinator - - # context: pseudo (at least one expression) - elif val in u'+-' and context.startswith('pseudo-'): - # :func(+ -)" - _names = {'+': 'plus', '-': 'minus'} - if val == u'+' and seq and seq[-1].value == S: - seq.replace(-1, val, _names[val]) - else: - append(seq, val, _names[val], - token=token) - return expression - - elif u')' == val and context.startswith('pseudo-') and\ - expression == expected: - # :func(expression)" - append(seq, val, 'function-end', token=token) - new['context'].pop() # pseudo is done - if 'pseudo-element' == context: - return combinator - else: - return simple_selector_sequence + combinator - - # context: ROOT - elif u'[' == val and 'attrib' in expected: - # start of [attrib] - append(seq, val, 'attribute-start', token=token) - new['context'].append('attrib') - return attname - - elif val in u'+>~' and 'combinator' in expected: - # no other combinator except S may be following - _names = { - '>': 'child', - '+': 'adjacent-sibling', - '~': 'following-sibling'} - if seq and seq[-1].value == S: - seq.replace(-1, val, _names[val]) - else: - append(seq, val, _names[val], token=token) - return simple_selector_sequence - - elif u',' == val: - # not a selectorlist - new['wellformed'] = False - self._log.error( - u'Selector: Single selector only.', - error=xml.dom.InvalidModificationErr, - token=token) - return expected - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected CHAR.', token=token) - return expected - - def _negation(expected, seq, token, tokenizer=None): - # not( - context = new['context'][-1] - val = self._tokenvalue(token, normalize=True) - if 'negation' in expected: - new['context'].append('negation') - append(seq, val, 'negation-start', token=token) - return negation_arg - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected negation.', token=token) - return expected - - def _atkeyword(expected, seq, token, tokenizer=None): - "invalidates selector" - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected ATKEYWORD.', token=token) - return expected - - - # expected: only|not or mediatype, mediatype, feature, and - newseq = self._tempSeq() - - wellformed, expected = self._parse(expected=simple_selector_sequence, - seq=newseq, tokenizer=tokenizer, - productions={'CHAR': _char, - 'class': _class, - 'HASH': _hash, - 'STRING': _string, - 'IDENT': _ident, - 'namespace_prefix': _namespace_prefix, - 'negation': _negation, - 'pseudo-class': _pseudo, - 'pseudo-element': _pseudo, - 'universal': _universal, - # pseudo - 'NUMBER': _expression, - 'DIMENSION': _expression, - # attribute - 'PREFIXMATCH': _attcombinator, - 'SUFFIXMATCH': _attcombinator, - 'SUBSTRINGMATCH': _attcombinator, - 'DASHMATCH': _attcombinator, - 'INCLUDES': _attcombinator, - - 'S': _S, - 'COMMENT': _COMMENT, - 'ATKEYWORD': _atkeyword}) - wellformed = wellformed and new['wellformed'] - - # post condition - if len(new['context']) > 1 or not newseq: - wellformed = False - self._log.error(u'Selector: Invalid or incomplete selector: %s' % - self._valuestr(selectorText)) - - if expected == 'element_name': - wellformed = False - self._log.error(u'Selector: No element name found: %s' % - self._valuestr(selectorText)) - - if expected == simple_selector_sequence and newseq: - wellformed = False - self._log.error(u'Selector: Cannot end with combinator: %s' % - self._valuestr(selectorText)) - - if newseq and hasattr(newseq[-1].value, 'strip') and \ - newseq[-1].value.strip() == u'': - del newseq[-1] - - # set - if wellformed: - self.__namespaces = namespaces - self._element = new['element'] - self._specificity = tuple(new['specificity']) - self._setSeq(newseq) - # filter that only used ones are kept - self.__namespaces = self._getUsedNamespaces() - - selectorText = property(_getSelectorText, _setSelectorText, - doc="(DOM) The parsable textual representation of the selector.") - - - specificity = property(lambda self: self._specificity, - doc="""Specificity of this selector (READONLY). - Tuple of (a, b, c, d) where: - - a - presence of style in document, always 0 if not used on a document - b - number of ID selectors - c - number of .class selectors - d - number of Element (type) selectors - """) - - wellformed = property(lambda self: bool(len(self.seq))) - - - @Deprecated('Use property parent instead') - def _getParentList(self): - return self.parent - - parentList = property(_getParentList, - doc="DEPRECATED, see property parent instead") diff --git a/src/cssutils/css/selectorlist.py b/src/cssutils/css/selectorlist.py deleted file mode 100644 index 2ec4577544..0000000000 --- a/src/cssutils/css/selectorlist.py +++ /dev/null @@ -1,234 +0,0 @@ -"""SelectorList is a list of CSS Selector objects. - -TODO - - remove duplicate Selectors. -> CSSOM canonicalize - - - ??? CSS2 gives a special meaning to the comma (,) in selectors. - However, since it is not known if the comma may acquire other - meanings in future versions of CSS, the whole statement should be - ignored if there is an error anywhere in the selector, even though - the rest of the selector may look reasonable in CSS2. - - Illegal example(s): - - For example, since the "&" is not a valid token in a CSS2 selector, - a CSS2 user agent must ignore the whole second line, and not set - the color of H3 to red: -""" -__all__ = ['SelectorList'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: selectorlist.py 1868 2009-10-17 19:36:54Z cthedot $' - -from selector import Selector -import cssutils -import xml.dom - -class SelectorList(cssutils.util.Base, cssutils.util.ListSeq): - """A list of :class:`~cssutils.css.Selector` objects - of a :class:`~cssutils.css.CSSStyleRule`.""" - def __init__(self, selectorText=None, parentRule=None, - readonly=False): - """ - :Parameters: - selectorText - parsable list of Selectors - parentRule - the parent CSSRule if available - """ - super(SelectorList, self).__init__() - - self._parentRule = parentRule - - if selectorText: - self.selectorText = selectorText - - self._readonly = readonly - - def __repr__(self): - if self._namespaces: - st = (self.selectorText, self._namespaces) - else: - st = self.selectorText - return "cssutils.css.%s(selectorText=%r)" % ( - self.__class__.__name__, st) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.selectorText, self._namespaces, - id(self)) - - def __setitem__(self, index, newSelector): - """Overwrite ListSeq.__setitem__ - - Any duplicate Selectors are **not** removed. - """ - newSelector = self.__prepareset(newSelector) - if newSelector: - self.seq[index] = newSelector - - def __prepareset(self, newSelector, namespaces=None): - "Used by appendSelector and __setitem__" - if not namespaces: - namespaces = {} - self._checkReadonly() - if not isinstance(newSelector, Selector): - newSelector = Selector((newSelector, namespaces), - parent=self) - if newSelector.wellformed: - newSelector._parent = self # maybe set twice but must be! - return newSelector - - def __getNamespaces(self): - "Use children namespaces if not attached to a sheet, else the sheet's ones." - try: - return self.parentRule.parentStyleSheet.namespaces - except AttributeError: - namespaces = {} - for selector in self.seq: - namespaces.update(selector._namespaces) - return namespaces - - def _absorb(self, other): - """Replace all own data with data from other object.""" - self._parentRule = other._parentRule - self.seq[:] = other.seq[:] - self._readonly = other._readonly - - def _getUsedUris(self): - "Used by CSSStyleSheet to check if @namespace rules are needed" - uris = set() - for s in self: - uris.update(s._getUsedUris()) - return uris - - _namespaces = property(__getNamespaces, doc="""If this SelectorList is - attached to a CSSStyleSheet the namespaces of that sheet are mirrored - here. While the SelectorList (or parentRule(s) are - not attached the namespaces of all children Selectors are used.""") - - def append(self, newSelector): - "Same as :meth:`appendSelector`." - self.appendSelector(newSelector) - - def appendSelector(self, newSelector): - """ - Append `newSelector` to this list (a string will be converted to a - :class:`~cssutils.css.Selector`). - - :param newSelector: - comma-separated list of selectors (as a single string) or a tuple of - `(newSelector, dict-of-namespaces)` - :returns: New :class:`~cssutils.css.Selector` or ``None`` if - `newSelector` is not wellformed. - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if the specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - and is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - - # might be (selectorText, namespaces) - newSelector, namespaces = self._splitNamespacesOff(newSelector) - try: - # use parent's only if available - namespaces = self.parentRule.parentStyleSheet.namespaces - except AttributeError: - # use already present namespaces plus new given ones - _namespaces = self._namespaces - _namespaces.update(namespaces) - namespaces = _namespaces - - newSelector = self.__prepareset(newSelector, namespaces) - if newSelector: - seq = self.seq[:] - del self.seq[:] - for s in seq: - if s.selectorText != newSelector.selectorText: - self.seq.append(s) - self.seq.append(newSelector) - return newSelector - - def _getSelectorText(self): - "Return serialized format." - return cssutils.ser.do_css_SelectorList(self) - - def _setSelectorText(self, selectorText): - """ - :param selectorText: - comma-separated list of selectors or a tuple of - (selectorText, dict-of-namespaces) - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if the specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - and is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - - # might be (selectorText, namespaces) - selectorText, namespaces = self._splitNamespacesOff(selectorText) - try: - # use parent's only if available - namespaces = self.parentRule.parentStyleSheet.namespaces - except AttributeError: - pass - - wellformed = True - tokenizer = self._tokenize2(selectorText) - newseq = [] - - expected = True - while True: - # find all upto and including next ",", EOF or nothing - selectortokens = self._tokensupto2(tokenizer, listseponly=True) - if selectortokens: - if self._tokenvalue(selectortokens[-1]) == ',': - expected = selectortokens.pop() - else: - expected = None - - selector = Selector((selectortokens, namespaces), - parent=self) - if selector.wellformed: - newseq.append(selector) - else: - wellformed = False - self._log.error(u'SelectorList: Invalid Selector: %s' % - self._valuestr(selectortokens)) - else: - break - - # post condition - if u',' == expected: - wellformed = False - self._log.error(u'SelectorList: Cannot end with ",": %r' % - self._valuestr(selectorText)) - elif expected: - wellformed = False - self._log.error(u'SelectorList: Unknown Syntax: %r' % - self._valuestr(selectorText)) - if wellformed: - self.seq = newseq - - selectorText = property(_getSelectorText, _setSelectorText, - doc="""(cssutils) The textual representation of the selector for - a rule set.""") - - length = property(lambda self: len(self), - doc="The number of :class:`~cssutils.css.Selector` objects in the list.") - - parentRule = property(lambda self: self._parentRule, - doc="(DOM) The CSS rule that contains this SelectorList or " - "``None`` if this SelectorList is not attached to a CSSRule.") - - wellformed = property(lambda self: bool(len(self.seq))) - diff --git a/src/cssutils/css2productions.py b/src/cssutils/css2productions.py deleted file mode 100644 index a836df3f93..0000000000 --- a/src/cssutils/css2productions.py +++ /dev/null @@ -1,131 +0,0 @@ -"""productions for CSS 2.1 - -CSS2_1_MACROS and CSS2_1_PRODUCTIONS are from both -http://www.w3.org/TR/CSS21/grammar.html and -http://www.w3.org/TR/css3-syntax/#grammar0 - - -""" -__all__ = ['CSSProductions', 'MACROS', 'PRODUCTIONS'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: css2productions.py 1394 2008-07-27 13:29:22Z cthedot $' - -# option case-insensitive -MACROS = { - 'h': r'[0-9a-f]', - #'nonascii': r'[\200-\377]', - 'nonascii': r'[^\0-\177]', # CSS3 - 'unicode': r'\\{h}{1,6}(\r\n|[ \t\r\n\f])?', - - 'escape': r'{unicode}|\\[^\r\n\f0-9a-f]', - 'nmstart': r'[_a-zA-Z]|{nonascii}|{escape}', - 'nmchar': r'[_a-zA-Z0-9-]|{nonascii}|{escape}', - 'string1': r'\"([^\n\r\f\\"]|\\{nl}|{escape})*\"', - 'string2': r"\'([^\n\r\f\\']|\\{nl}|{escape})*\'", - 'invalid1': r'\"([^\n\r\f\\"]|\\{nl}|{escape})*', - 'invalid2': r"\'([^\n\r\f\\']|\\{nl}|{escape})*", - 'comment': r'\/\*[^*]*\*+([^/*][^*]*\*+)*\/', - # CSS list 080725 19:43 - # \/\*([^*\\]|{escape})*\*+(([^/*\\]|{escape})[^*]*\*+)*\/ - - 'ident': r'[-]?{nmstart}{nmchar}*', - 'name': r'{nmchar}+', - # CHANGED TO SPEC: added "-?" - 'num': r'-?[0-9]*\.[0-9]+|[0-9]+', - 'string': r'{string1}|{string2}', - 'invalid': r'{invalid1}|{invalid2}', - 'url': r'([!#$%&*-~]|{nonascii}|{escape})*', - 's': r'[ \t\r\n\f]+', - 'w': r'{s}?', - 'nl': r'\n|\r\n|\r|\f', - 'range': r'\?{1,6}|{h}(\?{0,5}|{h}(\?{0,4}|{h}(\?{0,3}|{h}(\?{0,2}|{h}(\??|{h})))))', - - 'A': r'a|\\0{0,4}(41|61)(\r\n|[ \t\r\n\f])?', - 'C': r'c|\\0{0,4}(43|63)(\r\n|[ \t\r\n\f])?', - 'D': r'd|\\0{0,4}(44|64)(\r\n|[ \t\r\n\f])?', - 'E': r'e|\\0{0,4}(45|65)(\r\n|[ \t\r\n\f])?', - 'F': r'f|\\0{0,4}(46|66)(\r\n|[ \t\r\n\f])?', - 'G': r'g|\\0{0,4}(47|67)(\r\n|[ \t\r\n\f])?|\\g', - 'H': r'h|\\0{0,4}(48|68)(\r\n|[ \t\r\n\f])?|\\h', - 'I': r'i|\\0{0,4}(49|69)(\r\n|[ \t\r\n\f])?|\\i', - 'K': r'k|\\0{0,4}(4b|6b)(\r\n|[ \t\r\n\f])?|\\k', - 'M': r'm|\\0{0,4}(4d|6d)(\r\n|[ \t\r\n\f])?|\\m', - 'N': r'n|\\0{0,4}(4e|6e)(\r\n|[ \t\r\n\f])?|\\n', - 'O': r'o|\\0{0,4}(51|71)(\r\n|[ \t\r\n\f])?|\\o', - 'P': r'p|\\0{0,4}(50|70)(\r\n|[ \t\r\n\f])?|\\p', - 'R': r'r|\\0{0,4}(52|72)(\r\n|[ \t\r\n\f])?|\\r', - 'S': r's|\\0{0,4}(53|73)(\r\n|[ \t\r\n\f])?|\\s', - 'T': r't|\\0{0,4}(54|74)(\r\n|[ \t\r\n\f])?|\\t', - 'X': r'x|\\0{0,4}(58|78)(\r\n|[ \t\r\n\f])?|\\x', - 'Z': r'z|\\0{0,4}(5a|7a)(\r\n|[ \t\r\n\f])?|\\z', - } - -PRODUCTIONS = [ - ('URI', r'url\({w}{string}{w}\)'), #"url("{w}{string}{w}")" {return URI;} - ('URI', r'url\({w}{url}{w}\)'), #"url("{w}{url}{w}")" {return URI;} - ('FUNCTION', r'{ident}\('), #{ident}"(" {return FUNCTION;} - - ('IMPORT_SYM', r'@{I}{M}{P}{O}{R}{T}'), #"@import" {return IMPORT_SYM;} - ('PAGE_SYM', r'@{P}{A}{G}{E}'), #"@page" {return PAGE_SYM;} - ('MEDIA_SYM', r'@{M}{E}{D}{I}{A}'), #"@media" {return MEDIA_SYM;} - ('FONT_FACE_SYM', r'@{F}{O}{N}{T}\-{F}{A}{C}{E}'), #"@font-face" {return FONT_FACE_SYM;} - - # CHANGED TO SPEC: only @charset - ('CHARSET_SYM', r'@charset '), #"@charset " {return CHARSET_SYM;} - - ('NAMESPACE_SYM', r'@{N}{A}{M}{E}{S}{P}{A}{C}{E}'), #"@namespace" {return NAMESPACE_SYM;} - - # CHANGED TO SPEC: ATKEYWORD - ('ATKEYWORD', r'\@{ident}'), - - ('IDENT', r'{ident}'), #{ident} {return IDENT;} - ('STRING', r'{string}'), #{string} {return STRING;} - ('INVALID', r'{invalid}'), # {return INVALID; /* unclosed string */} - ('HASH', r'\#{name}'), #"#"{name} {return HASH;} - ('PERCENTAGE', r'{num}%'), #{num}% {return PERCENTAGE;} - ('LENGTH', r'{num}{E}{M}'), #{num}em {return EMS;} - ('LENGTH', r'{num}{E}{X}'), #{num}ex {return EXS;} - ('LENGTH', r'{num}{P}{X}'), #{num}px {return LENGTH;} - ('LENGTH', r'{num}{C}{M}'), #{num}cm {return LENGTH;} - ('LENGTH', r'{num}{M}{M}'), #{num}mm {return LENGTH;} - ('LENGTH', r'{num}{I}{N}'), #{num}in {return LENGTH;} - ('LENGTH', r'{num}{P}{T}'), #{num}pt {return LENGTH;} - ('LENGTH', r'{num}{P}{C}'), #{num}pc {return LENGTH;} - ('ANGLE', r'{num}{D}{E}{G}'), #{num}deg {return ANGLE;} - ('ANGLE', r'{num}{R}{A}{D}'), #{num}rad {return ANGLE;} - ('ANGLE', r'{num}{G}{R}{A}{D}'), #{num}grad {return ANGLE;} - ('TIME', r'{num}{M}{S}'), #{num}ms {return TIME;} - ('TIME', r'{num}{S}'), #{num}s {return TIME;} - ('FREQ', r'{num}{H}{Z}'), #{num}Hz {return FREQ;} - ('FREQ', r'{num}{K}{H}{Z}'), #{num}kHz {return FREQ;} - ('DIMEN', r'{num}{ident}'), #{num}{ident} {return DIMEN;} - ('NUMBER', r'{num}'), #{num} {return NUMBER;} - #('UNICODERANGE', r'U\+{range}'), #U\+{range} {return UNICODERANGE;} - #('UNICODERANGE', r'U\+{h}{1,6}-{h}{1,6}'), #U\+{h}{1,6}-{h}{1,6} {return UNICODERANGE;} - # --- CSS3 --- - ('UNICODE-RANGE', r'[0-9A-F?]{1,6}(\-[0-9A-F]{1,6})?'), - ('CDO', r'\<\!\-\-'), #"" {return CDC;} - ('S', r'{s}'),# {return S;} - - # \/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */ - # {s}+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ {unput(' '); /*replace by space*/} - - ('INCLUDES', r'\~\='), #"~=" {return INCLUDES;} - ('DASHMATCH', r'\|\='), #"|=" {return DASHMATCH;} - ('LBRACE', r'\{'), #{w}"{" {return LBRACE;} - ('PLUS', r'\+'), #{w}"+" {return PLUS;} - ('GREATER', r'\>'), #{w}">" {return GREATER;} - ('COMMA', r'\,'), #{w}"," {return COMMA;} - ('IMPORTANT_SYM', r'\!({w}|{comment})*{I}{M}{P}{O}{R}{T}{A}{N}{T}'), #"!{w}important" {return IMPORTANT_SYM;} - ('COMMENT', '\/\*[^*]*\*+([^/][^*]*\*+)*\/'), # /* ignore comments */ - ('CLASS', r'\.'), #. {return *yytext;} - - # --- CSS3! --- - ('CHAR', r'[^"\']'), - ] - -class CSSProductions(object): - pass -for i, t in enumerate(PRODUCTIONS): - setattr(CSSProductions, t[0].replace('-', '_'), t[0]) \ No newline at end of file diff --git a/src/cssutils/cssproductions.py b/src/cssutils/cssproductions.py deleted file mode 100644 index 177a96cc0b..0000000000 --- a/src/cssutils/cssproductions.py +++ /dev/null @@ -1,121 +0,0 @@ -"""productions for cssutils based on a mix of CSS 2.1 and CSS 3 Syntax -productions - -- http://www.w3.org/TR/css3-syntax -- http://www.w3.org/TR/css3-syntax/#grammar0 - -open issues - - numbers contain "-" if present - - HASH: #aaa is, #000 is not anymore, - CSS2.1: 'nmchar': r'[_a-z0-9-]|{nonascii}|{escape}', - CSS3: 'nmchar': r'[_a-z-]|{nonascii}|{escape}', -""" -__all__ = ['CSSProductions', 'MACROS', 'PRODUCTIONS'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssproductions.py 1855 2009-10-07 17:03:19Z cthedot $' - -# a complete list of css3 macros -MACROS = { - 'nonascii': r'[^\0-\177]', - 'unicode': r'\\[0-9A-Fa-f]{1,6}(?:{nl}|{s})?', - #'escape': r'{unicode}|\\[ -~\200-\777]', - 'escape': r'{unicode}|\\[^\n\r\f0-9a-f]', - 'nmstart': r'[_a-zA-Z]|{nonascii}|{escape}', - 'nmchar': r'[-_a-zA-Z0-9]|{nonascii}|{escape}', - 'string1': r'"([^\n\r\f\\"]|\\{nl}|{escape})*"', - 'string2': r"'([^\n\r\f\\']|\\{nl}|{escape})*'", - 'invalid1': r'\"([^\n\r\f\\"]|\\{nl}|{escape})*', - 'invalid2': r"\'([^\n\r\f\\']|\\{nl}|{escape})*", - - 'comment': r'\/\*[^*]*\*+([^/][^*]*\*+)*\/', - 'ident': r'[-]?{nmstart}{nmchar}*', - 'name': r'{nmchar}+', - 'num': r'[0-9]*\.[0-9]+|[0-9]+', #r'[-]?\d+|[-]?\d*\.\d+', - 'string': r'{string1}|{string2}', - # from CSS2.1 - 'invalid': r'{invalid1}|{invalid2}', - 'url': r'[\x09\x21\x23-\x26\x28\x2a-\x7E]|{nonascii}|{escape}', - - 's': r'\t|\r|\n|\f|\x20', - 'w': r'{s}*', - 'nl': r'\n|\r\n|\r|\f', - - 'A': r'A|a|\\0{0,4}(?:41|61)(?:\r\n|[ \t\r\n\f])?', - 'B': r'B|b|\\0{0,4}(?:42|62)(?:\r\n|[ \t\r\n\f])?', - 'C': r'C|c|\\0{0,4}(?:43|63)(?:\r\n|[ \t\r\n\f])?', - 'D': r'D|d|\\0{0,4}(?:44|64)(?:\r\n|[ \t\r\n\f])?', - 'E': r'E|e|\\0{0,4}(?:45|65)(?:\r\n|[ \t\r\n\f])?', - 'F': r'F|f|\\0{0,4}(?:46|66)(?:\r\n|[ \t\r\n\f])?', - 'G': r'G|g|\\0{0,4}(?:47|67)(?:\r\n|[ \t\r\n\f])?|\\G|\\g', - 'H': r'H|h|\\0{0,4}(?:48|68)(?:\r\n|[ \t\r\n\f])?|\\H|\\h', - 'I': r'I|i|\\0{0,4}(?:49|69)(?:\r\n|[ \t\r\n\f])?|\\I|\\i', - 'K': r'K|k|\\0{0,4}(?:4b|6b)(?:\r\n|[ \t\r\n\f])?|\\K|\\k', - 'L': r'L|l|\\0{0,4}(?:4c|6c)(?:\r\n|[ \t\r\n\f])?|\\L|\\l', - 'M': r'M|m|\\0{0,4}(?:4d|6d)(?:\r\n|[ \t\r\n\f])?|\\M|\\m', - 'N': r'N|n|\\0{0,4}(?:4e|6e)(?:\r\n|[ \t\r\n\f])?|\\N|\\n', - 'O': r'O|o|\\0{0,4}(?:4f|6f)(?:\r\n|[ \t\r\n\f])?|\\O|\\o', - 'P': r'P|p|\\0{0,4}(?:50|70)(?:\r\n|[ \t\r\n\f])?|\\P|\\p', - 'R': r'R|r|\\0{0,4}(?:52|72)(?:\r\n|[ \t\r\n\f])?|\\R|\\r', - 'S': r'S|s|\\0{0,4}(?:53|73)(?:\r\n|[ \t\r\n\f])?|\\S|\\s', - 'T': r'T|t|\\0{0,4}(?:54|74)(?:\r\n|[ \t\r\n\f])?|\\T|\\t', - 'U': r'U|u|\\0{0,4}(?:55|75)(?:\r\n|[ \t\r\n\f])?|\\U|\\u', - 'V': r'V|v|\\0{0,4}(?:56|76)(?:\r\n|[ \t\r\n\f])?|\\V|\\v', - 'X': r'X|x|\\0{0,4}(?:58|78)(?:\r\n|[ \t\r\n\f])?|\\X|\\x', - 'Z': r'Z|z|\\0{0,4}(?:5a|7a)(?:\r\n|[ \t\r\n\f])?|\\Z|\\z', - } - -# The following productions are the complete list of tokens -# used by cssutils, a mix of CSS3 and some CSS2.1 productions. -# The productions are **ordered**: -PRODUCTIONS = [ - ('BOM', r'\xFEFF'), # will only be checked at beginning of CSS - - ('S', r'{s}+'), # 1st in list of general productions - ('URI', r'{U}{R}{L}\({w}({string}|{url}*){w}\)'), - ('FUNCTION', r'{ident}\('), - ('UNICODE-RANGE', r'{U}\+[0-9A-Fa-f?]{1,6}(\-[0-9A-Fa-f]{1,6})?'), - ('IDENT', r'{ident}'), - ('STRING', r'{string}'), - ('INVALID', r'{invalid}'), # from CSS2.1 - ('HASH', r'\#{name}'), - ('PERCENTAGE', r'{num}\%'), - ('DIMENSION', r'{num}{ident}'), - ('NUMBER', r'{num}'), - # valid ony at start so not checked everytime - #('CHARSET_SYM', r'@charset '), # from Errata includes ending space! - # checked specially if fullsheet is parsed - ('COMMENT', r'{comment}'), #r'\/\*[^*]*\*+([^/][^*]*\*+)*\/'), - ('ATKEYWORD', r'@{ident}'), # other keywords are done in the tokenizer - ('CDO', r'\<\!\-\-'), - ('CDC', r'\-\-\>'), - ('INCLUDES', '\~\='), - ('DASHMATCH', r'\|\='), - ('PREFIXMATCH', r'\^\='), - ('SUFFIXMATCH', r'\$\='), - ('SUBSTRINGMATCH', r'\*\='), - ('CHAR', r'[^"\']') # MUST always be last - ] - -class CSSProductions(object): - """ - most attributes are set later - """ - EOF = True - # removed from productions as they simply are ATKEYWORD until - # tokenizing - CHARSET_SYM = 'CHARSET_SYM' - FONT_FACE_SYM = 'FONT_FACE_SYM' - MEDIA_SYM = 'MEDIA_SYM' - IMPORT_SYM = 'IMPORT_SYM' - NAMESPACE_SYM = 'NAMESPACE_SYM' - PAGE_SYM = 'PAGE_SYM' - VARIABLES_SYM = 'VARIABLES_SYM' - -for i, t in enumerate(PRODUCTIONS): - setattr(CSSProductions, t[0].replace('-', '_'), t[0]) - - -# may be enabled by settings.set -_DXImageTransform = ('FUNCTION', - r'progid\:DXImageTransform\.Microsoft\..+\(' - ) diff --git a/src/cssutils/errorhandler.py b/src/cssutils/errorhandler.py deleted file mode 100644 index d3f891e76e..0000000000 --- a/src/cssutils/errorhandler.py +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env python -"""cssutils ErrorHandler - -ErrorHandler - used as log with usual levels (debug, info, warn, error) - - if instanciated with ``raiseExceptions=True`` raises exeptions instead - of logging - -log - defaults to instance of ErrorHandler for any kind of log message from - lexerm, parser etc. - - - raiseExceptions = [False, True] - - setloglevel(loglevel) -""" -__all__ = ['ErrorHandler'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: errorhandler.py 1812 2009-07-29 13:11:49Z cthedot $' - -from helper import Deprecated -import logging -import urllib2 -import xml.dom - -class _ErrorHandler(object): - """ - handles all errors and log messages - """ - def __init__(self, log, defaultloglevel=logging.INFO, - raiseExceptions=True): - """ - inits log if none given - - log - for parse messages, default logs to sys.stderr - defaultloglevel - if none give this is logging.DEBUG - raiseExceptions - - True: Errors will be raised e.g. during building - - False: Errors will be written to the log, this is the - default behaviour when parsing - """ - # may be disabled during setting of known valid items - self.enabled = True - - if log: - self._log = log - else: - import sys - self._log = logging.getLogger('CSSUTILS') - hdlr = logging.StreamHandler(sys.stderr) - formatter = logging.Formatter('%(levelname)s\t%(message)s') - hdlr.setFormatter(formatter) - self._log.addHandler(hdlr) - self._log.setLevel(defaultloglevel) - - self.raiseExceptions = raiseExceptions - - def __getattr__(self, name): - "use self._log items" - calls = ('debug', 'info', 'warn', 'error', 'critical', 'fatal') - other = ('setLevel', 'getEffectiveLevel', 'addHandler', 'removeHandler') - - if name in calls: - self._logcall = getattr(self._log, name) - return self.__handle - elif name in other: - return getattr(self._log, name) - else: - raise AttributeError( - '(errorhandler) No Attribute %r found' % name) - - def __handle(self, msg=u'', token=None, error=xml.dom.SyntaxErr, - neverraise=False, args=None): - """ - handles all calls - logs or raises exception - """ - if self.enabled: - line, col = None, None - if token: - if isinstance(token, tuple): - value, line, col = token[1], token[2], token[3] - else: - value, line, col = token.value, token.line, token.col - msg = u'%s [%s:%s: %s]' % ( - msg, line, col, value) - - if error and self.raiseExceptions and not neverraise: - if isinstance(error, urllib2.HTTPError) or isinstance(error, urllib2.URLError): - raise - elif issubclass(error, xml.dom.DOMException): - error.line = line - error.col = col - # raise error(msg, line, col) - # else: - raise error(msg) - else: - self._logcall(msg) - - def setLog(self, log): - """set log of errorhandler's log""" - self._log = log - - @Deprecated('Use setLog() instead.') - def setlog(self, log): - self.setLog(log) - - @Deprecated('Use setLevel() instead.') - def setloglevel(self, level): - self.setLevel(level) - - -class ErrorHandler(_ErrorHandler): - "Singleton, see _ErrorHandler" - instance = None - - def __init__(self, - log=None, defaultloglevel=logging.INFO, raiseExceptions=True): - - if ErrorHandler.instance is None: - ErrorHandler.instance = _ErrorHandler(log=log, - defaultloglevel=defaultloglevel, - raiseExceptions=raiseExceptions) - self.__dict__ = ErrorHandler.instance.__dict__ diff --git a/src/cssutils/helper.py b/src/cssutils/helper.py deleted file mode 100644 index 513c8712da..0000000000 --- a/src/cssutils/helper.py +++ /dev/null @@ -1,137 +0,0 @@ -"""cssutils helper -""" -__docformat__ = 'restructuredtext' -__version__ = '$Id: errorhandler.py 1234 2008-05-22 20:26:12Z cthedot $' - -import os -import re -import sys -import urllib - -class Deprecated(object): - """This is a decorator which can be used to mark functions - as deprecated. It will result in a warning being emitted - when the function is used. - - It accepts a single paramter ``msg`` which is shown with the warning. - It should contain information which function or method to use instead. - """ - def __init__(self, msg): - self.msg = msg - - def __call__(self, func): - def newFunc(*args, **kwargs): - import warnings - warnings.warn("Call to deprecated method %r. %s" % - (func.__name__, self.msg), - category=DeprecationWarning, - stacklevel=2) - return func(*args, **kwargs) - newFunc.__name__ = func.__name__ - newFunc.__doc__ = func.__doc__ - newFunc.__dict__.update(func.__dict__) - return newFunc - -# simple escapes, all non unicodes -_simpleescapes = re.compile(ur'(\\[^0-9a-fA-F])').sub -def normalize(x): - """ - normalizes x, namely: - - - remove any \ before non unicode sequences (0-9a-zA-Z) so for - x=="c\olor\" return "color" (unicode escape sequences should have - been resolved by the tokenizer already) - - lowercase - """ - if x: - def removeescape(matchobj): - return matchobj.group(0)[1:] - x = _simpleescapes(removeescape, x) - return x.lower() - else: - return x - -def path2url(path): - """Return file URL of `path`""" - return u'file:' + urllib.pathname2url(os.path.abspath(path)) - -def pushtoken(token, tokens): - """Return new generator starting with token followed by all tokens in - ``tokens``""" - # TODO: may use itertools.chain? - yield token - for t in tokens: - yield t - -def string(value): - """ - Serialize value with quotes e.g.:: - - ``a \'string`` => ``'a \'string'`` - """ - # \n = 0xa, \r = 0xd, \f = 0xc - value = value.replace(u'\n', u'\\a ').replace( - u'\r', u'\\d ').replace( - u'\f', u'\\c ').replace( - u'"', u'\\"') - - if value.endswith(u'\\'): - value = value[:-1] + u'\\\\' - - return u'"%s"' % value - -def stringvalue(string): - """ - Retrieve actual value of string without quotes. Escaped - quotes inside the value are resolved, e.g.:: - - ``'a \'string'`` => ``a 'string`` - """ - return string.replace(u'\\'+string[0], string[0])[1:-1] - -_match_forbidden_in_uri = re.compile(ur'''.*?[\(\)\s\;,'"]''', re.U).match -def uri(value): - """ - Serialize value by adding ``url()`` and with quotes if needed e.g.:: - - ``"`` => ``url("\"")`` - """ - if _match_forbidden_in_uri(value): - value = string(value) - return u'url(%s)' % value - -def urivalue(uri): - """ - Return actual content without surrounding "url(" and ")" - and removed surrounding quotes too including contained - escapes of quotes, e.g.:: - - ``url("\"")`` => ``"`` - """ - uri = uri[uri.find('(')+1:-1].strip() - if uri and (uri[0] in '\'"') and (uri[0] == uri[-1]): - return stringvalue(uri) - else: - return uri - -#def normalnumber(num): -# """ -# Return normalized number as string. -# """ -# sign = '' -# if num.startswith('-'): -# sign = '-' -# num = num[1:] -# elif num.startswith('+'): -# num = num[1:] -# -# if float(num) == 0.0: -# return '0' -# else: -# if num.find('.') == -1: -# return sign + str(int(num)) -# else: -# a, b = num.split('.') -# if not a: -# a = '0' -# return '%s%s.%s' % (sign, int(a), b) diff --git a/src/cssutils/parse.py b/src/cssutils/parse.py deleted file mode 100644 index 4330f153f7..0000000000 --- a/src/cssutils/parse.py +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env python -"""A validating CSSParser""" -__all__ = ['CSSParser'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: parse.py 1754 2009-05-30 14:50:13Z cthedot $' - -from helper import Deprecated, path2url -import codecs -import cssutils -import os -import tokenize2 -import urllib - -class CSSParser(object): - """Parse a CSS StyleSheet from URL, string or file and return a DOM Level 2 - CSS StyleSheet object. - - Usage:: - - parser = CSSParser() - # optionally - parser.setFetcher(fetcher) - sheet = parser.parseFile('test1.css', 'ascii') - print sheet.cssText - """ - def __init__(self, log=None, loglevel=None, raiseExceptions=None, - fetcher=None): - """ - log - logging object - loglevel - logging loglevel - raiseExceptions - if log should simply log (default) or raise errors during - parsing. Later while working with the resulting sheets - the setting used in cssutils.log.raiseExeptions is used - fetcher - see ``setFetcher(fetcher)`` - """ - if log is not None: - cssutils.log.setLog(log) - if loglevel is not None: - cssutils.log.setLevel(loglevel) - - # remember global setting - self.__globalRaising = cssutils.log.raiseExceptions - if raiseExceptions: - self.__parseRaising = raiseExceptions - else: - # DEFAULT during parse - self.__parseRaising = False - - self.__tokenizer = tokenize2.Tokenizer() - self.setFetcher(fetcher) - - def __parseSetting(self, parse): - """during parse exceptions may be handled differently depending on - init parameter ``raiseExceptions`` - """ - if parse: - cssutils.log.raiseExceptions = self.__parseRaising - else: - cssutils.log.raiseExceptions = self.__globalRaising - - def parseString(self, cssText, encoding=None, href=None, media=None, - title=None): - """Parse `cssText` as :class:`~cssutils.css.CSSStyleSheet`. - Errors may be raised (e.g. UnicodeDecodeError). - - :param cssText: - CSS string to parse - :param encoding: - If ``None`` the encoding will be read from BOM or an @charset - rule or defaults to UTF-8. - If given overrides any found encoding including the ones for - imported sheets. - It also will be used to decode `cssText` if given as a (byte) - string. - :param href: - The ``href`` attribute to assign to the parsed style sheet. - Used to resolve other urls in the parsed sheet like @import hrefs. - :param media: - The ``media`` attribute to assign to the parsed style sheet - (may be a MediaList, list or a string). - :param title: - The ``title`` attribute to assign to the parsed style sheet. - :returns: - :class:`~cssutils.css.CSSStyleSheet`. - """ - self.__parseSetting(True) - if isinstance(cssText, str): - cssText = codecs.getdecoder('css')(cssText, encoding=encoding)[0] - - sheet = cssutils.css.CSSStyleSheet(href=href, - media=cssutils.stylesheets.MediaList(media), - title=title) - sheet._setFetcher(self.__fetcher) - # tokenizing this ways closes open constructs and adds EOF - sheet._setCssTextWithEncodingOverride(self.__tokenizer.tokenize(cssText, - fullsheet=True), - encodingOverride=encoding) - self.__parseSetting(False) - return sheet - - def parseFile(self, filename, encoding=None, - href=None, media=None, title=None): - """Retrieve content from `filename` and parse it. Errors may be raised - (e.g. IOError). - - :param filename: - of the CSS file to parse, if no `href` is given filename is - converted to a (file:) URL and set as ``href`` of resulting - stylesheet. - If `href` is given it is set as ``sheet.href``. Either way - ``sheet.href`` is used to resolve e.g. stylesheet imports via - @import rules. - :param encoding: - Value ``None`` defaults to encoding detection via BOM or an - @charset rule. - Other values override detected encoding for the sheet at - `filename` including any imported sheets. - :returns: - :class:`~cssutils.css.CSSStyleSheet`. - """ - if not href: - # prepend // for file URL, urllib does not do this? - #href = u'file:' + urllib.pathname2url(os.path.abspath(filename)) - href = path2url(filename) - - return self.parseString(open(filename, 'rb').read(), - encoding=encoding, # read returns a str - href=href, media=media, title=title) - - def parseUrl(self, href, encoding=None, media=None, title=None): - """Retrieve content from URL `href` and parse it. Errors may be raised - (e.g. URLError). - - :param href: - URL of the CSS file to parse, will also be set as ``href`` of - resulting stylesheet - :param encoding: - Value ``None`` defaults to encoding detection via HTTP, BOM or an - @charset rule. - A value overrides detected encoding for the sheet at ``href`` - including any imported sheets. - :returns: - :class:`~cssutils.css.CSSStyleSheet`. - """ - encoding, enctype, text = cssutils.util._readUrl(href, - overrideEncoding=encoding) - if enctype == 5: - # do not used if defaulting to UTF-8 - encoding = None - - if text is not None: - return self.parseString(text, encoding=encoding, - href=href, media=media, title=title) - - def setFetcher(self, fetcher=None): - """Replace the default URL fetch function with a custom one. - - :param fetcher: - A function which gets a single parameter - - ``url`` - the URL to read - - and must return ``(encoding, content)`` where ``encoding`` is the - HTTP charset normally given via the Content-Type header (which may - simply omit the charset in which case ``encoding`` would be - ``None``) and ``content`` being the string (or unicode) content. - - The Mimetype should be 'text/css' but this has to be checked by the - fetcher itself (the default fetcher emits a warning if encountering - a different mimetype). - - Calling ``setFetcher`` with ``fetcher=None`` resets cssutils - to use its default function. - """ - self.__fetcher = fetcher - - @Deprecated('Use cssutils.CSSParser().parseFile() instead.') - def parse(self, filename, encoding=None, - href=None, media=None, title=None): - self.parseFile(filename, encoding, href, media, title) diff --git a/src/cssutils/prodparser.py b/src/cssutils/prodparser.py deleted file mode 100644 index 368f9a7b5b..0000000000 --- a/src/cssutils/prodparser.py +++ /dev/null @@ -1,666 +0,0 @@ -# -*- coding: utf-8 -*- -"""Productions parser used by css and stylesheets classes to parse -test into a cssutils.util.Seq and at the same time retrieving -additional specific cssutils.util.Item objects for later use. - -TODO: - - ProdsParser - - handle EOF or STOP? - - handle unknown @rules - - handle S: maybe save to Seq? parameterized? - - store['_raw']: always? - - - Sequence: - - opt first(), naive impl for now - -""" -__all__ = ['ProdParser', 'Sequence', 'Choice', 'Prod', 'PreDef'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: parse.py 1418 2008-08-09 19:27:50Z cthedot $' - -import cssutils -import sys - - -class ParseError(Exception): - """Base Exception class for ProdParser (used internally).""" - pass - -class Done(ParseError): - """Raised if Sequence or Choice is finished and no more Prods left.""" - pass - -class Exhausted(ParseError): - """Raised if Sequence or Choice is finished but token is given.""" - pass - -class Missing(ParseError): - """Raised if Sequence or Choice is not finished but no matching token given.""" - pass - -class NoMatch(ParseError): - """Raised if nothing in Sequence or Choice does match.""" - pass - - -class Choice(object): - """A Choice of productions (Sequence or single Prod).""" - - def __init__(self, *prods, **options): - """ - *prods - Prod or Sequence objects - options: - optional=False - """ - self._prods = prods - - try: - self.optional = options['optional'] - except KeyError, e: - for p in self._prods: - if p.optional: - self.optional = True - break - else: - self.optional = False - - self.reset() - - def reset(self): - """Start Choice from zero""" - self._exhausted = False - - def matches(self, token): - """Check if token matches""" - for prod in self._prods: - if prod.matches(token): - return True - return False - - def nextProd(self, token): - """ - Return: - - - next matching Prod or Sequence - - ``None`` if any Prod or Sequence is optional and no token matched - - raise ParseError if nothing matches and all are mandatory - - raise Exhausted if choice already done - - ``token`` may be None but this occurs when no tokens left.""" - if not self._exhausted: - optional = False - for x in self._prods: - if x.matches(token): - self._exhausted = True - x.reset() - return x - elif x.optional: - optional = True - else: - if not optional: - # None matched but also None is optional - raise ParseError(u'No match in %s' % self) - elif token: - raise Exhausted(u'Extra token') - - def __str__(self): - return u'Choice(%s)' % u', '.join([str(x) for x in self._prods]) - - -class Sequence(object): - """A Sequence of productions (Choice or single Prod).""" - def __init__(self, *prods, **options): - """ - *prods - Prod or Sequence objects - **options: - minmax = lambda: (1, 1) - callback returning number of times this sequence may run - """ - self._prods = prods - try: - minmax = options['minmax'] - except KeyError: - minmax = lambda: (1, 1) - - self._min, self._max = minmax() - if self._max is None: - # unlimited - try: - # py2.6/3 - self._max = sys.maxsize - except AttributeError: - # py<2.6 - self._max = sys.maxint - - self._prodcount = len(self._prods) - self.reset() - - def matches(self, token): - """Called by Choice to try to find if Sequence matches.""" - for prod in self._prods: - if prod.matches(token): - return True - try: - if not prod.optional: - break - except AttributeError: - pass - return False - - def reset(self): - """Reset this Sequence if it is nested.""" - self._roundstarted = False - self._i = 0 - self._round = 0 - - def _currentName(self): - """Return current element of Sequence, used by name""" - # TODO: current impl first only if 1st if an prod! - for prod in self._prods[self._i:]: - if not prod.optional: - return str(prod) - else: - return 'Sequence' - - optional = property(lambda self: self._min == 0) - - def nextProd(self, token): - """Return - - - next matching Prod or Choice - - raises ParseError if nothing matches - - raises Exhausted if sequence already done - """ - while self._round < self._max: - # for this round - i = self._i - round = self._round - p = self._prods[i] - if i == 0: - self._roundstarted = False - - # for next round - self._i += 1 - if self._i == self._prodcount: - self._round += 1 - self._i = 0 - - if p.matches(token): - self._roundstarted = True - # reset nested Choice or Prod to use from start - p.reset() - return p - - elif p.optional: - continue - - elif round < self._min: - raise Missing(u'Missing token for production %s' % p) - - elif not token: - if self._roundstarted: - raise Missing(u'Missing token for production %s' % p) - else: - raise Done() - - else: - raise NoMatch(u'No matching production for token') - - if token: - raise Exhausted(u'Extra token') - - def __str__(self): - return u'Sequence(%s)' % u', '.join([str(x) for x in self._prods]) - - -class Prod(object): - """Single Prod in Sequence or Choice.""" - def __init__(self, name, match, optional=False, - toSeq=None, toStore=None, - stop=False, stopAndKeep=False, - nextSor=False, mayEnd=False): - """ - name - name used for error reporting - match callback - function called with parameters tokentype and tokenvalue - returning True, False or raising ParseError - toSeq callback (optional) or False - calling toSeq(token, tokens) returns (type_, val) == (token[0], token[1]) - to be appended to seq else simply unaltered (type_, val) - - if False nothing is added - - toStore (optional) - key to save util.Item to store or callback(store, util.Item) - optional = False - wether Prod is optional or not - stop = False - if True stop parsing of tokens here - stopAndKeep - if True stop parsing of tokens here but return stopping - token in unused tokens - nextSor=False - next is S or other like , or / (CSSValue) - mayEnd = False - no token must follow even defined by Sequence. - Used for operator ',/ ' currently only - """ - self._name = name - self.match = match - self.optional = optional - self.stop = stop - self.stopAndKeep = stopAndKeep - self.nextSor = nextSor - self.mayEnd = mayEnd - - def makeToStore(key): - "Return a function used by toStore." - def toStore(store, item): - "Set or append store item." - if key in store: - store[key].append(item) - else: - store[key] = item - return toStore - - if toSeq or toSeq is False: - # called: seq.append(toSeq(value)) - self.toSeq = toSeq - else: - self.toSeq = lambda t, tokens: (t[0], t[1]) - - if hasattr(toStore, '__call__'): - self.toStore = toStore - elif toStore: - self.toStore = makeToStore(toStore) - else: - # always set! - self.toStore = None - - def matches(self, token): - """Return if token matches.""" - if not token: - return False - type_, val, line, col = token - return self.match(type_, val) - - def reset(self): - pass - - def __str__(self): - return self._name - - def __repr__(self): - return "" % ( - self.__class__.__name__, self._name, id(self)) - - -# global tokenizer as there is only one! -tokenizer = cssutils.tokenize2.Tokenizer() - -class ProdParser(object): - """Productions parser.""" - def __init__(self, clear=True): - self.types = cssutils.cssproductions.CSSProductions - self._log = cssutils.log - if clear: - tokenizer.clear() - - def _texttotokens(self, text): - """Build a generator which is the only thing that is parsed! - old classes may use lists etc - """ - if isinstance(text, basestring): - # DEFAULT, to tokenize strip space - return tokenizer.tokenize(text.strip()) - - elif isinstance(text, tuple): - # OLD: (token, tokens) or a single token - if len(text) == 2: - # (token, tokens) - def gen(token, tokens): - "new generator appending token and tokens" - yield token - for t in tokens: - yield t - - return (t for t in gen(*text)) - - else: - # single token - return (t for t in [text]) - - elif isinstance(text, list): - # OLD: generator from list - return (t for t in text) - - else: - # DEFAULT, already tokenized, assume generator - return text - - def _SorTokens(self, tokens, until=',/'): - """New tokens generator which has S tokens removed, - if followed by anything in ``until``, normally a ``,``.""" - def removedS(tokens): - for token in tokens: - if token[0] == self.types.S: - try: - next_ = tokens.next() - except StopIteration: - yield token - else: - if next_[1] in until: - # omit S as e.g. ``,`` has been found - yield next_ - elif next_[0] == self.types.COMMENT: - # pass COMMENT - yield next_ - else: - yield token - yield next_ - - elif token[0] == self.types.COMMENT: - # pass COMMENT - yield token - else: - yield token - break - # normal mode again - for token in tokens: - yield token - - return (token for token in removedS(tokens)) - - def parse(self, text, name, productions, keepS=False, store=None): - """ - text (or token generator) - to parse, will be tokenized if not a generator yet - - may be: - - a string to be tokenized - - a single token, a tuple - - a tuple of (token, tokensGenerator) - - already tokenized so a tokens generator - - name - used for logging - productions - used to parse tokens - keepS - if WS should be added to Seq or just be ignored - store UPDATED - If a Prod defines ``toStore`` the key defined there - is a key in store to be set or if store[key] is a list - the next Item is appended here. - - TODO: NEEDED? : - Key ``raw`` is always added and holds all unprocessed - values found - - returns - :wellformed: True or False - :seq: a filled cssutils.util.Seq object which is NOT readonly yet - :store: filled keys defined by Prod.toStore - :unusedtokens: token generator containing tokens not used yet - """ - tokens = self._texttotokens(text) - if not tokens: - self._log.error(u'No content to parse.') - # TODO: return??? - - seq = cssutils.util.Seq(readonly=False) - if not store: # store for specific values - store = {} - prods = [productions] # stack of productions - wellformed = True - - # while no real token is found any S are ignored - started = False - prod = None - # flag if default S handling should be done - defaultS = True - while True: - try: - token = tokens.next() - except StopIteration: - break - type_, val, line, col = token - - # default productions - if type_ == self.types.COMMENT: - # always append COMMENT - seq.append(cssutils.css.CSSComment(val), - cssutils.css.CSSComment, line, col) - elif defaultS and type_ == self.types.S: - # append S (but ignore starting ones) - if not keepS or not started: - continue - else: - seq.append(val, type_, line, col) -# elif type_ == self.types.ATKEYWORD: -# # @rule -# r = cssutils.css.CSSUnknownRule(cssText=val) -# seq.append(r, type(r), line, col) - elif type_ == self.types.INVALID: - # invalidate parse - wellformed = False - self._log.error(u'Invalid token: %r' % (token,)) - break - elif type_ == 'EOF': - # do nothing? (self.types.EOF == True!) - pass - else: - started = True # check S now - nextSor = False # reset - - try: - while True: - # find next matching production - try: - prod = prods[-1].nextProd(token) - except (Exhausted, NoMatch), e: - # try next - prod = None - if isinstance(prod, Prod): - # found actual Prod, not a Choice or Sequence - break - elif prod: - # nested Sequence, Choice - prods.append(prod) - else: - # nested exhausted, try in parent - if len(prods) > 1: - prods.pop() - else: - raise ParseError('No match') - except ParseError, e: - wellformed = False - self._log.error(u'%s: %s: %r' % (name, e, token)) - break - else: - # process prod - if prod.toSeq and not prod.stopAndKeep: - type_, val = prod.toSeq(token, tokens) - if val is not None: - seq.append(val, type_, line, col) - if prod.toStore: - prod.toStore(store, seq[-1]) - - if prod.stop: # EOF? - # stop here and ignore following tokens - break - - if prod.stopAndKeep: # e.g. ; - # stop here and ignore following tokens - # but keep this token for next run - tokenizer.push(token) - break - - if prod.nextSor: - # following is S or other token (e.g. ",")? - # remove S if - tokens = self._SorTokens(tokens, ',/') - defaultS = False - else: - defaultS = True - - lastprod = prod - while True: - # all productions exhausted? - try: - prod = prods[-1].nextProd(token=None) - except Done, e: - # ok - prod = None - - except Missing, e: - prod = None - # last was a S operator which may End a Sequence, then ok - if hasattr(lastprod, 'mayEnd') and not lastprod.mayEnd: - wellformed = False - self._log.error(u'%s: %s' % (name, e)) - - except ParseError, e: - prod = None - wellformed = False - self._log.error(u'%s: %s' % (name, e)) - - else: - if prods[-1].optional: - prod = None - elif prod and prod.optional: - # ignore optional - continue - - if prod and not prod.optional: - wellformed = False - self._log.error(u'%s: Missing token for production %r' - % (name, str(prod))) - break - elif len(prods) > 1: - # nested exhausted, next in parent - prods.pop() - else: - break - - # trim S from end - seq.rstrip() - return wellformed, seq, store, tokens - - -class PreDef(object): - """Predefined Prod definition for use in productions definition - for ProdParser instances. - """ - types = cssutils.cssproductions.CSSProductions - - @staticmethod - def char(name='char', char=u',', toSeq=None, - stop=False, stopAndKeep=False, - optional=True, nextSor=False): - "any CHAR" - return Prod(name=name, match=lambda t, v: v == char, toSeq=toSeq, - stop=stop, stopAndKeep=stopAndKeep, optional=optional, - nextSor=nextSor) - - @staticmethod - def comma(): - return PreDef.char(u'comma', u',') - - @staticmethod - def dimension(nextSor=False): - return Prod(name=u'dimension', - match=lambda t, v: t == PreDef.types.DIMENSION, - toSeq=lambda t, tokens: (t[0], cssutils.helper.normalize(t[1])), - nextSor=nextSor) - - @staticmethod - def function(toSeq=None, nextSor=False): - return Prod(name=u'function', - match=lambda t, v: t == PreDef.types.FUNCTION, - toSeq=toSeq, - nextSor=nextSor) - - @staticmethod - def funcEnd(stop=False): - ")" - return PreDef.char(u'end FUNC ")"', u')', - stop=stop) - - @staticmethod - def ident(toStore=None, nextSor=False): - return Prod(name=u'ident', - match=lambda t, v: t == PreDef.types.IDENT, - toStore=toStore, - nextSor=nextSor) - - @staticmethod - def number(nextSor=False): - return Prod(name=u'number', - match=lambda t, v: t == PreDef.types.NUMBER, - nextSor=nextSor) - - @staticmethod - def string(nextSor=False): - "string delimiters are removed by default" - return Prod(name=u'string', - match=lambda t, v: t == PreDef.types.STRING, - toSeq=lambda t, tokens: (t[0], cssutils.helper.stringvalue(t[1])), - nextSor=nextSor) - - @staticmethod - def percentage(nextSor=False): - return Prod(name=u'percentage', - match=lambda t, v: t == PreDef.types.PERCENTAGE, - nextSor=nextSor) - - @staticmethod - def S(toSeq=None, optional=False): - return Prod(name=u'whitespace', - match=lambda t, v: t == PreDef.types.S, - toSeq=toSeq, - optional=optional, - mayEnd=True) - - @staticmethod - def unary(): - "+ or -" - return Prod(name=u'unary +-', match=lambda t, v: v in (u'+', u'-'), - optional=True) - - @staticmethod - def uri(nextSor=False): - "'url(' and ')' are removed and URI is stripped" - return Prod(name=u'URI', - match=lambda t, v: t == PreDef.types.URI, - toSeq=lambda t, tokens: (t[0], cssutils.helper.urivalue(t[1])), - nextSor=nextSor) - - @staticmethod - def hexcolor(nextSor=False): - "#123456" - return Prod(name='HEX color', - match=lambda t, v: t == PreDef.types.HASH and ( - len(v) == 4 or len(v) == 7), - nextSor=nextSor - ) - - @staticmethod - def unicode_range(nextSor=False): - "u+123456-abc normalized to lower `u`" - return Prod(name='unicode-range', - match=lambda t, v: t == PreDef.types.UNICODE_RANGE, - toSeq=lambda t, tokens: (t[0], t[1].lower()), - nextSor=nextSor - ) - - @staticmethod - def variable(toSeq=None, nextSor=False): - return Prod(name=u'variable', - match=lambda t, v: u'var(' == cssutils.helper.normalize(v), - toSeq=toSeq, - nextSor=nextSor) - diff --git a/src/cssutils/profiles.py b/src/cssutils/profiles.py deleted file mode 100644 index 09d1e9a007..0000000000 --- a/src/cssutils/profiles.py +++ /dev/null @@ -1,572 +0,0 @@ -"""CSS profiles. - -Profiles is based on code by Kevin D. Smith, orginally used as cssvalues, -thanks! -""" -__all__ = ['Profiles'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssproperties.py 1116 2008-03-05 13:52:23Z cthedot $' - -import re - -class NoSuchProfileException(Exception): - """Raised if no profile with given name is found""" - pass - - -class Profiles(object): - """ - All profiles used for validation. ``cssutils.profile`` is a - preset object of this class and used by all properties for validation. - - Predefined profiles are (use - :meth:`~cssutils.profiles.Profiles.propertiesByProfile` to - get a list of defined properties): - - :attr:`~cssutils.profiles.Profiles.CSS_LEVEL_2` - Properties defined by CSS2.1 - :attr:`~cssutils.profiles.Profiles.CSS3_COLOR` - CSS 3 color properties - :attr:`~cssutils.profiles.Profiles.CSS3_BOX` - Currently overflow related properties only - :attr:`~cssutils.profiles.Profiles.CSS3_PAGED_MEDIA` - As defined at http://www.w3.org/TR/css3-page/ (at 090307) - - Predefined macros are: - - :attr:`~cssutils.profiles.Profiles._TOKEN_MACROS` - Macros containing the token values as defined to CSS2 - :attr:`~cssutils.profiles.Profiles._MACROS` - Additional general macros. - - If you want to redefine any of these macros do this in your custom - macros. - """ - CSS_LEVEL_2 = 'CSS Level 2.1' - CSS3_BOX = CSS_BOX_LEVEL_3 = 'CSS Box Module Level 3' - CSS3_COLOR = CSS_COLOR_LEVEL_3 = 'CSS Color Module Level 3' - CSS3_FONTS = 'CSS Fonts Module Level 3' - CSS3_FONT_FACE = 'CSS Fonts Module Level 3 @font-face properties' - CSS3_PAGED_MEDIA = 'CSS3 Paged Media Module' - - _TOKEN_MACROS = { - 'ident': r'[-]?{nmstart}{nmchar}*', - 'name': r'{nmchar}+', - 'nmstart': r'[_a-z]|{nonascii}|{escape}', - 'nonascii': r'[^\0-\177]', - 'unicode': r'\\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?', - 'escape': r'{unicode}|\\[ -~\200-\777]', - # 'escape': r'{unicode}|\\[ -~\200-\4177777]', - 'int': r'[-]?\d+', - 'nmchar': r'[\w-]|{nonascii}|{escape}', - 'num': r'[-]?\d+|[-]?\d*\.\d+', - 'positivenum': r'\d+|\d*\.\d+', - 'number': r'{num}', - 'string': r'{string1}|{string2}', - 'string1': r'"(\\\"|[^\"])*"', - 'uri': r'url\({w}({string}|(\\\)|[^\)])+){w}\)', - 'string2': r"'(\\\'|[^\'])*'", - 'nl': r'\n|\r\n|\r|\f', - 'w': r'\s*', - } - _MACROS = { - 'hexcolor': r'#[0-9a-f]{3}|#[0-9a-f]{6}', - 'rgbcolor': r'rgb\({w}{int}{w},{w}{int}{w},{w}{int}{w}\)|rgb\({w}{num}%{w},{w}{num}%{w},{w}{num}%{w}\)', - 'namedcolor': r'(transparent|orange|maroon|red|orange|yellow|olive|purple|fuchsia|white|lime|green|navy|blue|aqua|teal|black|silver|gray)', - 'uicolor': r'(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)', - 'color': r'{namedcolor}|{hexcolor}|{rgbcolor}|{uicolor}', - #'color': r'(maroon|red|orange|yellow|olive|purple|fuchsia|white|lime|green|navy|blue|aqua|teal|black|silver|gray|ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)|#[0-9a-f]{3}|#[0-9a-f]{6}|rgb\({w}{int}{w},{w}{int}{w},{w}{int}{w}\)|rgb\({w}{num}%{w},{w}{num}%{w},{w}{num}%{w}\)', - 'integer': r'{int}', - 'length': r'0|{num}(em|ex|px|in|cm|mm|pt|pc)', - 'positivelength': r'0|{positivenum}(em|ex|px|in|cm|mm|pt|pc)', - 'angle': r'0|{num}(deg|grad|rad)', - 'time': r'0|{num}m?s', - 'frequency': r'0|{num}k?Hz', - 'percentage': r'{num}%', - } - - def __init__(self, log=None): - """A few known profiles are predefined.""" - self._log = log - self._profileNames = [] # to keep order, REFACTOR! - self._profiles = {} - self._defaultProfiles = None - - self.addProfile(self.CSS_LEVEL_2, - properties[self.CSS_LEVEL_2], - macros[self.CSS_LEVEL_2]) - self.addProfile(self.CSS3_BOX, - properties[self.CSS3_BOX], - macros[self.CSS3_BOX]) - self.addProfile(self.CSS3_COLOR, - properties[self.CSS3_COLOR], - macros[self.CSS3_COLOR]) - - self.addProfile(self.CSS3_FONTS, - properties[self.CSS3_FONTS], - macros[self.CSS3_FONTS]) - - # new object for font-face only? - self.addProfile(self.CSS3_FONT_FACE, - properties[self.CSS3_FONT_FACE], - macros[self.CSS3_FONTS]) # same - - self.addProfile(self.CSS3_PAGED_MEDIA, - properties[self.CSS3_PAGED_MEDIA], - macros[self.CSS3_PAGED_MEDIA]) - - self.__update_knownNames() - - def _expand_macros(self, dictionary, macros): - """Expand macros in token dictionary""" - def macro_value(m): - return '(?:%s)' % macros[m.groupdict()['macro']] - for key, value in dictionary.items(): - if not hasattr(value, '__call__'): - while re.search(r'{[a-z][a-z0-9-]*}', value): - value = re.sub(r'{(?P[a-z][a-z0-9-]*)}', - macro_value, value) - dictionary[key] = value - return dictionary - - def _compile_regexes(self, dictionary): - """Compile all regular expressions into callable objects""" - for key, value in dictionary.items(): - if not hasattr(value, '__call__'): - value = re.compile('^(?:%s)$' % value, re.I).match - dictionary[key] = value - - return dictionary - - def __update_knownNames(self): - self._knownNames = [] - for properties in self._profiles.values(): - self._knownNames.extend(properties.keys()) - - def _getDefaultProfiles(self): - "If not explicitly set same as Profiles.profiles but in reverse order." - if not self._defaultProfiles: - return self.profiles - else: - return self._defaultProfiles - - def _setDefaultProfiles(self, profiles): - "profiles may be a single or a list of profile names" - if isinstance(profiles, basestring): - self._defaultProfiles = (profiles,) - else: - self._defaultProfiles = profiles - - defaultProfiles = property(_getDefaultProfiles, - _setDefaultProfiles, - doc=u"Names of profiles to use for validation." - u"To use e.g. the CSS2 profile set " - u"``cssutils.profile.defaultProfiles = " - u"cssutils.profile.CSS_LEVEL_2``") - - profiles = property(lambda self: self._profileNames, - doc=u'Names of all profiles in order as defined.') - - knownNames = property(lambda self: self._knownNames, - doc="All known property names of all profiles.") - - def addProfile(self, profile, properties, macros=None): - """Add a new profile with name `profile` (e.g. 'CSS level 2') - and the given `properties`. - - :param profile: - the new `profile`'s name - :param properties: - a dictionary of ``{ property-name: propery-value }`` items where - property-value is a regex which may use macros defined in given - ``macros`` or the standard macros Profiles.tokens and - Profiles.generalvalues. - - ``propery-value`` may also be a function which takes a single - argument which is the value to validate and which should return - True or False. - Any exceptions which may be raised during this custom validation - are reported or raised as all other cssutils exceptions depending - on cssutils.log.raiseExceptions which e.g during parsing normally - is False so the exceptions would be logged only. - :param macros: - may be used in the given properties definitions. There are some - predefined basic macros which may always be used in - :attr:`Profiles._TOKEN_MACROS` and :attr:`Profiles._MACROS`. - """ - if not macros: - macros = {} - m = Profiles._TOKEN_MACROS.copy() - m.update(Profiles._MACROS) - m.update(macros) - properties = self._expand_macros(properties, m) - self._profileNames.append(profile) - self._profiles[profile] = self._compile_regexes(properties) - - self.__update_knownNames() - - def removeProfile(self, profile=None, all=False): - """Remove `profile` or remove `all` profiles. - - :param profile: - profile name to remove - :param all: - if ``True`` removes all profiles to start with a clean state - :exceptions: - - :exc:`cssutils.profiles.NoSuchProfileException`: - If given `profile` cannot be found. - """ - if all: - self._profiles.clear() - del self._profileNames[:] - else: - try: - del self._profiles[profile] - del self._profileNames[self._profileNames.index(profile)] - except KeyError: - raise NoSuchProfileException(u'No profile %r.' % profile) - - self.__update_knownNames() - - def propertiesByProfile(self, profiles=None): - """Generator: Yield property names, if no `profiles` is given all - profile's properties are used. - - :param profiles: - a single profile name or a list of names. - """ - if not profiles: - profiles = self.profiles - elif isinstance(profiles, basestring): - profiles = (profiles, ) - try: - for profile in sorted(profiles): - for name in sorted(self._profiles[profile].keys()): - yield name - except KeyError, e: - raise NoSuchProfileException(e) - - def validate(self, name, value): - """Check if `value` is valid for given property `name` using **any** - profile. - - :param name: - a property name - :param value: - a CSS value (string) - :returns: - if the `value` is valid for the given property `name` in any - profile - """ - for profile in self.profiles: - if name in self._profiles[profile]: - try: - # custom validation errors are caught - r = bool(self._profiles[profile][name](value)) - except Exception, e: - self._log.error(e, error=Exception) - return False - if r: - return r - return False - - def validateWithProfile(self, name, value, profiles=None): - """Check if `value` is valid for given property `name` returning - ``(valid, profile)``. - - :param name: - a property name - :param value: - a CSS value (string) - :param profiles: - internal parameter used by Property.validate only - :returns: - ``valid, matching, profiles`` where ``valid`` is if the `value` - is valid for the given property `name` in any profile, - ``matching==True`` if it is valid in the given `profiles` - and ``profiles`` the profile names for which the value is valid - (or ``[]`` if not valid at all) - - Example:: - - >>> cssutils.profile.defaultProfiles = cssutils.profile.CSS_LEVEL_2 - >>> print cssutils.profile.validateWithProfile('color', 'rgba(1,1,1,1)') - (True, False, Profiles.CSS3_COLOR) - """ - if name not in self.knownNames: - return False, False, [] - else: - if not profiles: - profiles = self.defaultProfiles - elif isinstance(profiles, basestring): - profiles = (profiles, ) - - for profilename in profiles: - # check given profiles - if name in self._profiles[profilename]: - validate = self._profiles[profilename][name] - try: - if validate(value): - return True, True, [profilename] - except Exception, e: - self._log.error(e, error=Exception) - - for profilename in (p for p in self._profileNames - if p not in profiles): - # check remaining profiles as well - if name in self._profiles[profilename]: - validate = self._profiles[profilename][name] - try: - if validate(value): - return True, False, [profilename] - except Exception, e: - self._log.error(e, error=Exception) - - names = [] - for profilename, properties in self._profiles.items(): - # return profile to which name belongs - if name in properties.keys(): - names.append(profilename) - names.sort() - return False, False, names - - -properties = {} -macros = {} -""" -Define some regular expression fragments that will be used as -macros within the CSS property value regular expressions. -""" -macros[Profiles.CSS_LEVEL_2] = { - 'border-style': 'none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset', - 'border-color': '{color}', - 'border-width': '{length}|thin|medium|thick', - - 'background-color': r'{color}|transparent|inherit', - 'background-image': r'{uri}|none|inherit', - #'background-position': r'({percentage}|{length})(\s*({percentage}|{length}))?|((top|center|bottom)\s*(left|center|right)?)|((left|center|right)\s*(top|center|bottom)?)|inherit', - 'background-position': r'({percentage}|{length}|left|center|right)(\s*({percentage}|{length}|top|center|bottom))?|((top|center|bottom)\s*(left|center|right)?)|((left|center|right)\s*(top|center|bottom)?)|inherit', - 'background-repeat': r'repeat|repeat-x|repeat-y|no-repeat|inherit', - 'background-attachment': r'scroll|fixed|inherit', - - 'shape': r'rect\(({w}({length}|auto}){w},){3}{w}({length}|auto){w}\)', - 'counter': r'counter\({w}{identifier}{w}(?:,{w}{list-style-type}{w})?\)', - 'identifier': r'{ident}', - 'family-name': r'{string}|{identifier}({w}{identifier})*', - 'generic-family': r'serif|sans-serif|cursive|fantasy|monospace', - 'absolute-size': r'(x?x-)?(small|large)|medium', - 'relative-size': r'smaller|larger', - 'font-family': r'(({family-name}|{generic-family}){w},{w})*({family-name}|{generic-family})|inherit', - 'font-size': r'{absolute-size}|{relative-size}|{positivelength}|{percentage}|inherit', - 'font-style': r'normal|italic|oblique|inherit', - 'font-variant': r'normal|small-caps|inherit', - 'font-weight': r'normal|bold|bolder|lighter|[1-9]00|inherit', - 'line-height': r'normal|{number}|{length}|{percentage}|inherit', - 'list-style-image': r'{uri}|none|inherit', - 'list-style-position': r'inside|outside|inherit', - 'list-style-type': r'disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-(latin|alpha)|upper-(latin|alpha)|armenian|georgian|none|inherit', - 'margin-width': r'{length}|{percentage}|auto', - 'outline-color': r'{color}|invert|inherit', - 'outline-style': r'{border-style}|inherit', - 'outline-width': r'{border-width}|inherit', - 'padding-width': r'{length}|{percentage}', - 'specific-voice': r'{identifier}', - 'generic-voice': r'male|female|child', - 'content': r'{string}|{uri}|{counter}|attr\({w}{identifier}{w}\)|open-quote|close-quote|no-open-quote|no-close-quote', - 'border-attrs': r'{border-width}|{border-style}|{border-color}', - 'background-attrs': r'{background-color}|{background-image}|{background-repeat}|{background-attachment}|{background-position}', - 'list-attrs': r'{list-style-type}|{list-style-position}|{list-style-image}', - 'font-attrs': r'{font-style}|{font-variant}|{font-weight}', - 'outline-attrs': r'{outline-color}|{outline-style}|{outline-width}', - 'text-attrs': r'underline|overline|line-through|blink', - 'overflow': r'visible|hidden|scroll|auto|inherit', -} - -""" -Define the regular expressions for validation all CSS values -""" -properties[Profiles.CSS_LEVEL_2] = { - 'azimuth': r'{angle}|(behind\s+)?(left-side|far-left|left|center-left|center|center-right|right|far-right|right-side)(\s+behind)?|behind|leftwards|rightwards|inherit', - 'background-attachment': r'{background-attachment}', - 'background-color': r'{background-color}', - 'background-image': r'{background-image}', - 'background-position': r'{background-position}', - 'background-repeat': r'{background-repeat}', - # Each piece should only be allowed one time - 'background': r'{background-attrs}(\s+{background-attrs})*|inherit', - 'border-collapse': r'collapse|separate|inherit', - 'border-color': r'({border-color}|transparent)(\s+({border-color}|transparent)){0,3}|inherit', - 'border-spacing': r'{length}(\s+{length})?|inherit', - 'border-style': r'{border-style}(\s+{border-style}){0,3}|inherit', - 'border-top': r'{border-attrs}(\s+{border-attrs})*|inherit', - 'border-right': r'{border-attrs}(\s+{border-attrs})*|inherit', - 'border-bottom': r'{border-attrs}(\s+{border-attrs})*|inherit', - 'border-left': r'{border-attrs}(\s+{border-attrs})*|inherit', - 'border-top-color': r'{border-color}|transparent|inherit', - 'border-right-color': r'{border-color}|transparent|inherit', - 'border-bottom-color': r'{border-color}|transparent|inherit', - 'border-left-color': r'{border-color}|transparent|inherit', - 'border-top-style': r'{border-style}|inherit', - 'border-right-style': r'{border-style}|inherit', - 'border-bottom-style': r'{border-style}|inherit', - 'border-left-style': r'{border-style}|inherit', - 'border-top-width': r'{border-width}|inherit', - 'border-right-width': r'{border-width}|inherit', - 'border-bottom-width': r'{border-width}|inherit', - 'border-left-width': r'{border-width}|inherit', - 'border-width': r'{border-width}(\s+{border-width}){0,3}|inherit', - 'border': r'{border-attrs}(\s+{border-attrs})*|inherit', - 'bottom': r'{length}|{percentage}|auto|inherit', - 'caption-side': r'top|bottom|inherit', - 'clear': r'none|left|right|both|inherit', - 'clip': r'{shape}|auto|inherit', - 'color': r'{color}|inherit', - 'content': r'none|normal|{content}(\s+{content})*|inherit', - 'counter-increment': r'({identifier}(\s+{integer})?)(\s+({identifier}(\s+{integer})))*|none|inherit', - 'counter-reset': r'({identifier}(\s+{integer})?)(\s+({identifier}(\s+{integer})))*|none|inherit', - 'cue-after': r'{uri}|none|inherit', - 'cue-before': r'{uri}|none|inherit', - 'cue': r'({uri}|none|inherit){1,2}|inherit', - 'cursor': r'((({uri}{w},{w})*)?(auto|crosshair|default|pointer|move|(e|ne|nw|n|se|sw|s|w)-resize|text|wait|help|progress))|inherit', - 'direction': r'ltr|rtl|inherit', - 'display': r'inline|block|list-item|run-in|inline-block|table|inline-table|table-row-group|table-header-group|table-footer-group|table-row|table-column-group|table-column|table-cell|table-caption|none|inherit', - 'elevation': r'{angle}|below|level|above|higher|lower|inherit', - 'empty-cells': r'show|hide|inherit', - 'float': r'left|right|none|inherit', - 'font-family': r'{font-family}', - 'font-size': r'{font-size}', - 'font-style': r'{font-style}', - 'font-variant': r'{font-variant}', - 'font-weight': r'{font-weight}', - 'font': r'({font-attrs}\s+)*{font-size}({w}/{w}{line-height})?\s+{font-family}|caption|icon|menu|message-box|small-caption|status-bar|inherit', - 'height': r'{length}|{percentage}|auto|inherit', - 'left': r'{length}|{percentage}|auto|inherit', - 'letter-spacing': r'normal|{length}|inherit', - 'line-height': r'{line-height}', - 'list-style-image': r'{list-style-image}', - 'list-style-position': r'{list-style-position}', - 'list-style-type': r'{list-style-type}', - 'list-style': r'{list-attrs}(\s+{list-attrs})*|inherit', - 'margin-right': r'{margin-width}|inherit', - 'margin-left': r'{margin-width}|inherit', - 'margin-top': r'{margin-width}|inherit', - 'margin-bottom': r'{margin-width}|inherit', - 'margin': r'{margin-width}(\s+{margin-width}){0,3}|inherit', - 'max-height': r'{length}|{percentage}|none|inherit', - 'max-width': r'{length}|{percentage}|none|inherit', - 'min-height': r'{length}|{percentage}|none|inherit', - 'min-width': r'{length}|{percentage}|none|inherit', - 'orphans': r'{integer}|inherit', - 'outline-color': r'{outline-color}', - 'outline-style': r'{outline-style}', - 'outline-width': r'{outline-width}', - 'outline': r'{outline-attrs}(\s+{outline-attrs})*|inherit', - 'overflow': r'{overflow}', - 'padding-top': r'{padding-width}|inherit', - 'padding-right': r'{padding-width}|inherit', - 'padding-bottom': r'{padding-width}|inherit', - 'padding-left': r'{padding-width}|inherit', - 'padding': r'{padding-width}(\s+{padding-width}){0,3}|inherit', - 'page-break-after': r'auto|always|avoid|left|right|inherit', - 'page-break-before': r'auto|always|avoid|left|right|inherit', - 'page-break-inside': r'avoid|auto|inherit', - 'pause-after': r'{time}|{percentage}|inherit', - 'pause-before': r'{time}|{percentage}|inherit', - 'pause': r'({time}|{percentage}){1,2}|inherit', - 'pitch-range': r'{number}|inherit', - 'pitch': r'{frequency}|x-low|low|medium|high|x-high|inherit', - 'play-during': r'{uri}(\s+(mix|repeat))*|auto|none|inherit', - 'position': r'static|relative|absolute|fixed|inherit', - 'quotes': r'({string}\s+{string})(\s+{string}\s+{string})*|none|inherit', - 'richness': r'{number}|inherit', - 'right': r'{length}|{percentage}|auto|inherit', - 'speak-header': r'once|always|inherit', - 'speak-numeral': r'digits|continuous|inherit', - 'speak-punctuation': r'code|none|inherit', - 'speak': r'normal|none|spell-out|inherit', - 'speech-rate': r'{number}|x-slow|slow|medium|fast|x-fast|faster|slower|inherit', - 'stress': r'{number}|inherit', - 'table-layout': r'auto|fixed|inherit', - 'text-align': r'left|right|center|justify|inherit', - 'text-decoration': r'none|{text-attrs}(\s+{text-attrs})*|inherit', - 'text-indent': r'{length}|{percentage}|inherit', - 'text-transform': r'capitalize|uppercase|lowercase|none|inherit', - 'top': r'{length}|{percentage}|auto|inherit', - 'unicode-bidi': r'normal|embed|bidi-override|inherit', - 'vertical-align': r'baseline|sub|super|top|text-top|middle|bottom|text-bottom|{percentage}|{length}|inherit', - 'visibility': r'visible|hidden|collapse|inherit', - 'voice-family': r'({specific-voice}|{generic-voice}{w},{w})*({specific-voice}|{generic-voice})|inherit', - 'volume': r'{number}|{percentage}|silent|x-soft|soft|medium|loud|x-loud|inherit', - 'white-space': r'normal|pre|nowrap|pre-wrap|pre-line|inherit', - 'widows': r'{integer}|inherit', - 'width': r'{length}|{percentage}|auto|inherit', - 'word-spacing': r'normal|{length}|inherit', - 'z-index': r'auto|{integer}|inherit', -} - -# CSS Box Module Level 3 -macros[Profiles.CSS3_BOX] = { - 'overflow': macros[Profiles.CSS_LEVEL_2]['overflow'] - } -properties[Profiles.CSS3_BOX] = { - 'overflow': '{overflow}{w}{overflow}?|inherit', - 'overflow-x': '{overflow}|inherit', - 'overflow-y': '{overflow}|inherit' - } - -# CSS Color Module Level 3 -macros[Profiles.CSS3_COLOR] = { - # orange and transparent in CSS 2.1 - 'namedcolor': r'(currentcolor|transparent|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)', - # orange? - 'rgbacolor': r'rgba\({w}{int}{w},{w}{int}{w},{w}{int}{w},{w}{int}{w}\)|rgba\({w}{num}%{w},{w}{num}%{w},{w}{num}%{w},{w}{num}{w}\)', - 'hslcolor': r'hsl\({w}{int}{w},{w}{num}%{w},{w}{num}%{w}\)|hsla\({w}{int}{w},{w}{num}%{w},{w}{num}%{w},{w}{num}{w}\)', - 'x11color': r'aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen', - 'uicolor': r'(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)', - } -properties[Profiles.CSS3_COLOR] = { - 'color': r'{namedcolor}|{hexcolor}|{rgbcolor}|{rgbacolor}|{hslcolor}|inherit', - 'opacity': r'{num}|inherit' - } - -# CSS Fonts Module Level 3 http://www.w3.org/TR/css3-fonts/ -macros[Profiles.CSS3_FONTS] = { - 'family-name': r'{string}|{ident}', # but STRING is effectively an IDENT??? - 'font-face-name': 'local\({w}{ident}{w}\)', - 'font-stretch-names': r'(ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded)', - 'unicode-range': r'[uU]\+[0-9A-Fa-f?]{1,6}(\-[0-9A-Fa-f]{1,6})?' - } -properties[Profiles.CSS3_FONTS] = { - 'font-size-adjust': r'{number}|none|inherit', - 'font-stretch': r'normal|wider|narrower|{font-stretch-names}|inherit' - } -properties[Profiles.CSS3_FONT_FACE] = { - 'font-family': '{family-name}', - 'font-stretch': r'{font-stretch-names}', - 'font-style': r'normal|italic|oblique', - 'font-weight': r'normal|bold|[1-9]00', - 'src': r'({uri}{w}(format\({w}{string}{w}(\,{w}{string}{w})*\))?|{font-face-name})({w},{w}({uri}{w}(format\({w}{string}{w}(\,{w}{string}{w})*\))?|{font-face-name}))*', - 'unicode-range': '{unicode-range}({w},{w}{unicode-range})*' - } - - - -# CSS3 Paged Media -macros[Profiles.CSS3_PAGED_MEDIA] = { - 'pagesize': 'a5|a4|a3|b5|b4|letter|legal|ledger', - 'pagebreak': 'auto|always|avoid|left|right' - } -properties[Profiles.CSS3_PAGED_MEDIA] = { - 'fit': 'fill|hidden|meet|slice', - 'fit-position': r'auto|(({percentage}|{length})(\s*({percentage}|{length}))?|((top|center|bottom)\s*(left|center|right)?)|((left|center|right)\s*(top|center|bottom)?))', - 'image-orientation': 'auto|{angle}', - 'orphans': r'{integer}|inherit', - 'page': 'auto|{ident}', - 'page-break-before': '{pagebreak}|inherit', - 'page-break-after': '{pagebreak}|inherit', - 'page-break-inside': 'auto|avoid|inherit', - 'size': '({length}{w}){1,2}|auto|{pagesize}{w}(?:portrait|landscape)', - 'widows': r'{integer}|inherit' - } - - diff --git a/src/cssutils/sac.py b/src/cssutils/sac.py deleted file mode 100644 index 4e4fe0990f..0000000000 --- a/src/cssutils/sac.py +++ /dev/null @@ -1,428 +0,0 @@ -#!/usr/bin/env python -"""A validating CSSParser""" -__all__ = ['CSSParser'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: parse.py 1754 2009-05-30 14:50:13Z cthedot $' - -import helper -import codecs -import errorhandler -import os -import tokenize2 -import urllib -import sys - - -class ErrorHandler(object): - """Basic class for CSS error handlers. - - This class class provides a default implementation ignoring warnings and - recoverable errors and throwing a SAXParseException for fatal errors. - - If a CSS application needs to implement customized error handling, it must - extend this class and then register an instance with the CSS parser - using the parser's setErrorHandler method. The parser will then report all - errors and warnings through this interface. - - The parser shall use this class instead of throwing an exception: it is - up to the application whether to throw an exception for different types of - errors and warnings. Note, however, that there is no requirement that the - parser continue to provide useful information after a call to fatalError - (in other words, a CSS driver class could catch an exception and report a - fatalError). - """ - def __init__(self): - self._log = errorhandler.ErrorHandler() - - def error(self, exception, token=None): - self._log.error(exception, token, neverraise=True) - - def fatal(self, exception, token=None): - self._log.fatal(exception, token) - - def warn(self, exception, token=None): - self._log.warn(exception, token, neverraise=True) - - -class DocumentHandler(object): - """ - void endFontFace() - Receive notification of the end of a font face statement. - void endMedia(SACMediaList media) - Receive notification of the end of a media statement. - void endPage(java.lang.String name, java.lang.String pseudo_page) - Receive notification of the end of a media statement. - void importStyle(java.lang.String uri, SACMediaList media, java.lang.String defaultNamespaceURI) - Receive notification of a import statement in the style sheet. - void startFontFace() - Receive notification of the beginning of a font face statement. - void startMedia(SACMediaList media) - Receive notification of the beginning of a media statement. - void startPage(java.lang.String name, java.lang.String pseudo_page) - Receive notification of the beginning of a page statement. - """ - def __init__(self): - def log(msg): - sys.stderr.write('INFO\t%s\n' % msg) - self._log = log - - def comment(self, text, line=None, col=None): - "Receive notification of a comment." - self._log("comment %r at [%s, %s]" % (text, line, col)) - - def startDocument(self, encoding): - "Receive notification of the beginning of a style sheet." - # source - self._log("startDocument encoding=%s" % encoding) - - def endDocument(self, source=None, line=None, col=None): - "Receive notification of the end of a document." - self._log("endDocument EOF") - - def importStyle(self, uri, media, name, line=None, col=None): - "Receive notification of a import statement in the style sheet." - # defaultNamespaceURI??? - self._log("importStyle at [%s, %s]" % (line, col)) - - def namespaceDeclaration(self, prefix, uri, line=None, col=None): - "Receive notification of an unknown rule t-rule not supported by this parser." - # prefix might be None! - self._log("namespaceDeclaration at [%s, %s]" % (line, col)) - - def startSelector(self, selectors=None, line=None, col=None): - "Receive notification of the beginning of a rule statement." - # TODO selectorList! - self._log("startSelector at [%s, %s]" % (line, col)) - - def endSelector(self, selectors=None, line=None, col=None): - "Receive notification of the end of a rule statement." - self._log("endSelector at [%s, %s]" % (line, col)) - - def property(self, name, value='TODO', important=False, line=None, col=None): - "Receive notification of a declaration." - # TODO: value is LexicalValue? - self._log("property %r at [%s, %s]" % (name, line, col)) - - def ignorableAtRule(self, atRule, line=None, col=None): - "Receive notification of an unknown rule t-rule not supported by this parser." - self._log("ignorableAtRule %r at [%s, %s]" % (atRule, line, col)) - - - -class EchoHandler(DocumentHandler): - "Echos all input to property `out`" - def __init__(self): - super(EchoHandler, self).__init__() - self._out = [] - - out = property(lambda self: u''.join(self._out)) - - def startDocument(self, encoding): - super(EchoHandler, self).startDocument(encoding) - if u'utf-8' != encoding: - self._out.append(u'@charset "%s";\n' % encoding) - -# def comment(self, text, line=None, col=None): -# self._out.append(u'/*%s*/' % text) - - def importStyle(self, uri, media, name, line=None, col=None): - "Receive notification of a import statement in the style sheet." - # defaultNamespaceURI??? - super(EchoHandler, self).importStyle(uri, media, name, line, col) - self._out.append(u'@import %s%s%s;\n' % (helper.string(uri), - u'%s ' % media if media else u'', - u'%s ' % name if name else u'') - ) - - - def namespaceDeclaration(self, prefix, uri, line=None, col=None): - super(EchoHandler, self).namespaceDeclaration(prefix, uri, line, col) - self._out.append(u'@namespace %s%s;\n' % (u'%s ' % prefix if prefix else u'', - helper.string(uri))) - - def startSelector(self, selectors=None, line=None, col=None): - super(EchoHandler, self).startSelector(selectors, line, col) - if selectors: - self._out.append(u', '.join(selectors)) - self._out.append(u' {\n') - - def endSelector(self, selectors=None, line=None, col=None): - self._out.append(u' }') - - def property(self, name, value, important=False, line=None, col=None): - super(EchoHandler, self).property(name, value, line, col) - self._out.append(u' %s: %s%s;\n' % (name, value, - u' !important' if important else u'')) - - -class Parser(object): - """ - java.lang.String getParserVersion() - Returns a string about which CSS language is supported by this parser. - boolean parsePriority(InputSource source) - Parse a CSS priority value (e.g. - LexicalUnit parsePropertyValue(InputSource source) - Parse a CSS property value. - void parseRule(InputSource source) - Parse a CSS rule. - SelectorList parseSelectors(InputSource source) - Parse a comma separated list of selectors. - void parseStyleDeclaration(InputSource source) - Parse a CSS style declaration (without '{' and '}'). - void parseStyleSheet(InputSource source) - Parse a CSS document. - void parseStyleSheet(java.lang.String uri) - Parse a CSS document from a URI. - void setConditionFactory(ConditionFactory conditionFactory) - - void setDocumentHandler(DocumentHandler handler) - Allow an application to register a document event handler. - void setErrorHandler(ErrorHandler handler) - Allow an application to register an error event handler. - void setLocale(java.util.Locale locale) - Allow an application to request a locale for errors and warnings. - void setSelectorFactory(SelectorFactory selectorFactory) - """ - def __init__(self, documentHandler=None, errorHandler=None): - self._tokenizer = tokenize2.Tokenizer() - if documentHandler: - self.setDocumentHandler(documentHandler) - else: - self.setDocumentHandler(DocumentHandler()) - - if errorHandler: - self.setErrorHandler(errorHandler) - else: - self.setErrorHandler(ErrorHandler()) - - def parseString(self, cssText, encoding=None): - if isinstance(cssText, str): - cssText = codecs.getdecoder('css')(cssText, encoding=encoding)[0] - - tokens = self._tokenizer.tokenize(cssText, fullsheet=True) - - def COMMENT(val, line, col): - self._handler.comment(val[2:-2], line, col) - - def EOF(val, line, col): - self._handler.endDocument(val, line, col) - - def simple(t): - map = {'COMMENT': COMMENT, - 'S': lambda val, line, col: None, - 'EOF': EOF} - type_, val, line, col = t - if type_ in map: - map[type_](val, line, col) - return True - else: - return False - - # START PARSING - t = tokens.next() - type_, val, line, col = t - - encoding = 'utf-8' - if 'CHARSET_SYM' == type_: - # @charset "encoding"; - # S - encodingtoken = tokens.next() - semicolontoken = tokens.next() - if 'STRING' == type_: - encoding = helper.stringvalue(val) - # ; - if 'STRING' == encodingtoken[0] and semicolontoken: - encoding = helper.stringvalue(encodingtoken[1]) - else: - self._errorHandler.fatal(u'Invalid @charset') - - t = tokens.next() - type_, val, line, col = t - - self._handler.startDocument(encoding) - - while True: - start = (line, col) - try: - if simple(t): - pass - - elif 'ATKEYWORD' == type_ or type_ in ('PAGE_SYM', 'MEDIA_SYM', 'FONT_FACE_SYM'): - atRule = [val] - braces = 0 - while True: - # read till end ; - # TODO: or {} - t = tokens.next() - type_, val, line, col = t - atRule.append(val) - if u';' == val and not braces: - break - elif u'{' == val: - braces += 1 - elif u'}' == val: - braces -= 1 - if braces == 0: - break - - self._handler.ignorableAtRule(u''.join(atRule), *start) - - elif 'IMPORT_SYM' == type_: - # import URI or STRING media? name? - uri, media, name = None, None, None - while True: - t = tokens.next() - type_, val, line, col = t - if 'STRING' == type_: - uri = helper.stringvalue(val) - elif 'URI' == type_: - uri = helper.urivalue(val) - elif u';' == val: - break - - if uri: - self._handler.importStyle(uri, media, name) - else: - self._errorHandler.error(u'Invalid @import' - u' declaration at %r' - % (start,)) - - elif 'NAMESPACE_SYM' == type_: - prefix, uri = None, None - while True: - t = tokens.next() - type_, val, line, col = t - if 'IDENT' == type_: - prefix = val - elif 'STRING' == type_: - uri = helper.stringvalue(val) - elif 'URI' == type_: - uri = helper.urivalue(val) - elif u';' == val: - break - if uri: - self._handler.namespaceDeclaration(prefix, uri, *start) - else: - self._errorHandler.error(u'Invalid @namespace' - u' declaration at %r' - % (start,)) - - else: - # CSSSTYLERULE - selector = [] - selectors = [] - while True: - # selectors[, selector]* { - if 'S' == type_: - selector.append(u' ') - elif simple(t): - pass - elif u',' == val: - selectors.append(u''.join(selector).strip()) - selector = [] - elif u'{' == val: - selectors.append(u''.join(selector).strip()) - self._handler.startSelector(selectors, *start) - break - else: - selector.append(val) - - t = tokens.next() - type_, val, line, col = t - - end = None - while True: - # name: value [!important][;name: value [!important]]*;? - name, value, important = None, [], False - - while True: - # name: - t = tokens.next() - type_, val, line, col = t - if 'S' == type_: - pass - elif simple(t): - pass - elif 'IDENT' == type_: - if name: - self._errorHandler.error('more than one property name', t) - else: - name = val - elif u':' == val: - if not name: - self._errorHandler.error('no property name', t) - break - elif u';' == val: - self._errorHandler.error('premature end of property', t) - end = val - break - elif u'}' == val: - if name: - self._errorHandler.error('premature end of property', t) - end = val - break - else: - self._errorHandler.error('unexpected property name token %r' % val, t) - - while not u';' == end and not u'}' == end: - # value !;} - t = tokens.next() - type_, val, line, col = t - - if 'S' == type_: - value.append(u' ') - elif simple(t): - pass - elif u'!' == val or u';' == val or u'}' == val: - value = ''.join(value).strip() - if not value: - self._errorHandler.error('premature end of property (no value)', t) - end = val - break - else: - value.append(val) - - while u'!' == end: - # !important - t = tokens.next() - type_, val, line, col = t - - if simple(t): - pass - elif u'IDENT' == type_ and not important: - important = True - elif u';' == val or u'}' == val: - end = val - break - else: - self._errorHandler.error('unexpected priority token %r' % val) - - if name and value: - self._handler.property(name, value, important) - - if u'}' == end: - self._handler.endSelector(selectors, line=line, col=col) - break - else: - # reset - end = None - - else: - self._handler.endSelector(selectors, line=line, col=col) - - t = tokens.next() - type_, val, line, col = t - - except StopIteration: - break - - - - def setDocumentHandler(self, handler): - "Allow an application to register a document event `handler`." - self._handler = handler - - def setErrorHandler(self, handler): - "TODO" - self._errorHandler = handler - \ No newline at end of file diff --git a/src/cssutils/script.py b/src/cssutils/script.py deleted file mode 100644 index 9e5e5b0497..0000000000 --- a/src/cssutils/script.py +++ /dev/null @@ -1,354 +0,0 @@ -"""classes and functions used by cssutils scripts -""" -__all__ = ['CSSCapture', 'csscombine'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: parse.py 1323 2008-07-06 18:13:57Z cthedot $' - -import HTMLParser -import codecs -import cssutils -import errno -import logging -import os -import sys -import urllib2 -import urlparse - -try: - import cssutils.encutils as encutils -except ImportError: - try: - import encutils - except ImportError: - sys.exit("You need encutils from http://cthedot.de/encutils/") - -# types of sheets in HTML -LINK = 0 # -STYLE = 1 # - -class CSSCaptureHTMLParser(HTMLParser.HTMLParser): - """CSSCapture helper: Parse given data for link and style elements""" - curtag = u'' - sheets = [] # (type, [atts, cssText]) - - def _loweratts(self, atts): - return dict([(a.lower(), v.lower()) for a, v in atts]) - - def handle_starttag(self, tag, atts): - if tag == u'link': - atts = self._loweratts(atts) - if u'text/css' == atts.get(u'type', u''): - self.sheets.append((LINK, atts)) - elif tag == u'style': - # also get content of style - atts = self._loweratts(atts) - if u'text/css' == atts.get(u'type', u''): - self.sheets.append((STYLE, [atts, u''])) - self.curtag = tag - else: - # close as only intersting