diff --git a/Changelog.yaml b/Changelog.yaml index fade82b1ee..a08418e15c 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -4,6 +4,187 @@ # for important features/bug fixes. # Also, each release can have new and improved recipes. +- version: 0.7.14 + date: 2010-08-13 + + new features: + - title: "Device drivers for the: Teclast K-5, Samsung SNE-60 and Samsung i7500" + + - title: "When showing cover browser in a separate window, remember the last used window size" + + - title: "Add keyboard shortcuts to show/hide the Tag Browser, Book details and Cover Browser panels. Hover your mouse over the buttons that toggle them to see the shortcuts." + + - title: "Calibre library: When the case of title or author is changed, automatically rename the folders to reflect the new case, even on case insensitive filesystems" + + - title: "Metadata download: If downloaded title or author is all upper case, automatically fix the case" + + - title: "Add method to add books by ISBN. Click the arrow next to Add Books to add from a list of ISBNs." + tickets: [6327] + + - title: "Allow editing of tweaks via Preferences->Advanced" + + - title: "Add button to the manage authors dialog to automatically reset all author sort values" + + bug fixes: + - title: "Fix regression in 0.7.13 that broke changing libraries" + + - title: "MOBI Output: When processing an input document that specifies non-existant files in the OPF guide, don't crash." + tickets: [6490] + + - title: "E-book viewer: When opening consecutive documents in the same viewer, show the correct title in the titlebar" + + - title: "Set screen size to 540x718 in Kobo output profile" + + - title: "Dont allow calibredb to create custom columns with invalid labels." + tickets: [6487] + + - title: "Fix preference to 'search as you type' not working" + + - title: "iTunes driver: Fixed bug in PDF file name searching after adding to iTunes database (Windows only)" + + - title: "Displaying HTML comments: Do not start a new paragraph at the period in words like Ph.D" + tickets: [6462] + + - title: "Respect restriction in effect when refreshing book list" + + - title: "Fix drives being reversed for softrooted nook" + + + new recipes: + - title: "Yahoo News, Skeptical Enquirer and Skeptic" + author: Startson17 + + - title: "Bolivian newspapers" + author: Darko Miletic + + improved recipes: + - Esquire + - Big Oven + - NSPM + +- version: 0.7.13 + date: 2010-08-06 + + new features: + - title: "Add a button to the edit metadata dialog to generate a cover based on the book metadata" + tickets: [5959] + + - title: "When using series or title in a save template to generate a file path, remove leading prepositions. This behavior can be controlled via a tweak." + + - title: "News download: When downloading news for the Kindle, do not add date to the title, to allow the Kindle's periodical archiving to work." + tickets: [6411] + + - title: "Content Server OPDS feeds: Grouping of items by first alphabet is now case-insensitive." + + - title: "Do not allow the user to use save to disk to save files into the calibre library" + tickets: [6392] + + - title: "Switch to a new C based API for using ImageMagick. More robust and a minor speedup when doing image manipulations" + + - title: "Move cover downloading to a plugin based API. You can now add new cover sources to calibre using plugins." + + bug fixes: + - title: "Content server OPDS feeds: Handle the case when the author field is blank" + tickets: [6371] + + - title: "TXT Input: Strip out illegal chars from txt files." + tickets: [6335] + + - title: "Save to disk/send to device templates: Always render {series_index} as an empty string when the book has no series." + tickets: [6409] + + - title: "PD Novel driver: Remove covers when deleting books" + + + new recipes: + - title: "Snopes" + author: Startson17 + + - title: "dr.dk and Balkan Insight" + author: Darko Miletic + + - title: Folha de Sao Paulo + author: Saverio Palmieri Neto + + improved recipes: + - Honolulu Star Advertiser + - Nature News + - Associated Press + - Scientific American + - New Scientist + +- version: 0.7.12 + date: 2010-07-30 + + bug fixes: + - title: "Fix a typo that caused a harmless error message after setting preferences" + + - title: "Linux build system: No longer search for poppler-qt4 libraries as they are not needed" + +- version: 0.7.11 + date: 2010-07-30 + + new features: + - title: "EPUB metadata: When setting metadata in an EPUB file, if it has a well defined image based cover, update it" + + - title: "Support for Droid X, Samsung Vibrant and Promedia ebook reader" + + - title: "Add entry to Connect/share menu to conveniently stop and start the Content Server" + + - title: "News download: Make the navbars on the section index pages more useful, adding links to net and previous section" + + - title: "Add a button to reset confirm dialogs to Preferences->General" + + + bug fixes: + - title: "Fix crash in edit metadata dialog if you click OK before cover download completes" + tickets: [6337] + + - title: "Kobo driver: Show a warning when the user tries to export/view .kobo files. Also add support for the new sofroot vendor id" + + - title: "Update check. Do not be fooled by a redirecting proxy when checking for new version" + tickets: [6325] + + - title: "Add book count to tooltip of library button in toolbar" + tickets: [6340] + + - title: "Content server: When serving OPDS feeds send the correct content-type header." + tickets: [6329] + + - title: "PDF Output: Don't insert blank pages before every individual HTML file in the ebook." + tickets: [6315] + + - title: "Fix saving of cover when path to book folder contains non ascii characters" + tickets: [6328] + + - title: "Fix regression that broke showing send to actions for multiple email accounts" + + - title: "Fix bug in handlling of hexadecimal entities" + tickets: [6305] + + - title: "SONY driver: More fixes to handle broken media.xml files" + tickets: [6296] + + - title: "Linux installer: Fix rendering of viewer icon and restrict all icons to 128x128 since GNOME can't handle large icons" + + - title: "RTF Input: Fix handling of hard linebreaks" + tickets: [6208] + + - title: "RTF Output: Fix regression that broke rendering of bold and italic text" + tickets: [6098] + + new recipes: + - title: "Draw and Cook" + author: Startson17 + + improved recipes: + - La Nacion + - Vecernje Novosti + - Der Tagesspiegel + - Die Zeit Nachrichten + - Toms Hardware (DE) + - Welt Online + - version: 0.7.10 date: 2010-07-23 diff --git a/resources/content_server/mobile.css b/resources/content_server/mobile.css new file mode 100644 index 0000000000..9be755b954 --- /dev/null +++ b/resources/content_server/mobile.css @@ -0,0 +1,83 @@ +/* CSS for the mobile version of the content server webpage */ + +.navigation table.buttons { + width: 100%; +} + +.navigation .button { + width: 50%; +} + +.button a, .button:visited a { + padding: 0.5em; + font-size: 1.25em; + border: 1px solid black; + text-color: black; + background-color: #ddd; + border-top: 1px solid ThreeDLightShadow; + border-right: 1px solid ButtonShadow; + border-bottom: 1px solid ButtonShadow; + border-left: 1 px solid ThreeDLightShadow; + -moz-border-radius: 0.25em; + -webkit-border-radius: 0.25em; +} + +.button:hover a { + border-top: 1px solid #666; + border-right: 1px solid #CCC; + border-bottom: 1 px solid #CCC; + border-left: 1 px solid #666; + + +} + +div.navigation { + padding-bottom: 1em; + clear: both; +} + +#search_box { + border: 1px solid #393; + -moz-border-radius: 0.5em; + -webkit-border-radius: 0.5em; + padding: 1em; + margin-bottom: 0.5em; + float: right; +} + +#listing { + width: 100%; + border-collapse: collapse; +} +#listing td { + padding: 0.25em; +} + +#listing td.thumbnail { + height: 60px; + width: 60px; +} + +#listing tr:nth-child(even) { + + background: #eee; +} + +#listing .button a{ + display: inline-block; + width: 2.5em; + padding-left: 0em; + padding-right: 0em; + overflow: hidden; + text-align: center; +} + +#logo { + float: left; +} + +#spacer { + clear: both; +} + + diff --git a/resources/default_tweaks.py b/resources/default_tweaks.py index aaeb992151..07aee5c6fa 100644 --- a/resources/default_tweaks.py +++ b/resources/default_tweaks.py @@ -6,7 +6,7 @@ __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 +you know what you are doing. If you delete this file, it will be recreated from defaults. ''' @@ -24,6 +24,7 @@ series_index_auto_increment = 'next' # 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' +# nocomma : "fn ln" -> "ln fn" (without the comma) author_sort_copy_method = 'invert' @@ -72,4 +73,19 @@ gui_pubdate_display_format = 'MMM yyyy' # without changing anything is sufficient to change the sort. title_series_sorting = 'library_order' +# Control how title and series names are formatted when saving to disk/sending +# to device. If set to library_order, leading articles such as The and A will +# be put at the end +# If set to 'strictly_alphabetic', the titles will be sorted without processing +# For example, with library_order, "The Client" will become "Client, The". With +# strictly_alphabetic, it would remain "The Client". +save_template_title_series_sorting = 'library_order' +# Specify a folder that calibre should connect to at startup using +# connect_to_folder. This must be a full path to the folder. If the folder does +# not exist when calibre starts, it is ignored. If there are '\' characters in +# the path (such as in Windows paths), you must double them. +# Examples: +# auto_connect_to_folder = 'C:\\Users\\someone\\Desktop\\testlib' +# auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library' +auto_connect_to_folder = '' \ No newline at end of file diff --git a/resources/images/mimetypes/mobi.svg b/resources/images/mimetypes/mobi.svg index 1d290d2330..88d19f6c0d 100644 --- a/resources/images/mimetypes/mobi.svg +++ b/resources/images/mimetypes/mobi.svg @@ -1,8 +1,9 @@ + - + width="128" + height="128" + id="svg4486" + inkscape:version="0.47 r22583" + sodipodi:docname="epub.svg"> + id="metadata52"> image/svg+xml + + + id="defs4488"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + transform="matrix(1.0408163,0,0,0.6302428,-1.5714269,43.690218)" + id="g2478"> + + + + + + + + + + + mobi + + + diff --git a/resources/images/mimetypes/odt.svg b/resources/images/mimetypes/odt.svg new file mode 100644 index 0000000000..f8c3df5d04 --- /dev/null +++ b/resources/images/mimetypes/odt.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/images/mimetypes/rtf.svg b/resources/images/mimetypes/rtf.svg index 485ac41350..c40103d283 100644 --- a/resources/images/mimetypes/rtf.svg +++ b/resources/images/mimetypes/rtf.svg @@ -1,3791 +1,387 @@ + width="48" + height="48" + id="svg2454"> + id="defs2456"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="linearGradient5048"> + id="stop5050" + style="stop-color:#000000;stop-opacity:0" + offset="0" /> + id="stop5056" + style="stop-color:#000000;stop-opacity:1" + offset="0.5" /> + + gradientTransform="matrix(6.732488e-2,0,0,1.470022e-2,-0.3411391,37.040146)" /> + + + id="stop5062" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> - - - - - - - + id="stop5064" + style="stop-color:#000000;stop-opacity:0" + offset="1" /> + + + + + + + + + + + + + + + + + + + + + + + + id="stop41" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> + id="stop47" + style="stop-color:#000000;stop-opacity:1" + offset="0.18851049" /> + id="stop49" + style="stop-color:#000000;stop-opacity:0" + offset="0.25718147" /> - - - + id="stop51" + style="stop-color:#000000;stop-opacity:0" + offset="1" /> - - - - - - + r="139.55859" + id="radialGradient3721" + xlink:href="#XMLID_8_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.3617022,0,0,-0.3907784,0.8510637,47.517004)" /> + + + + + + + + + + + + + + + + + + + + id="filter3212" + color-interpolation-filters="sRGB" + height="1.3286875" + width="1.2969251" + y="-0.16434373" + x="-0.14846256"> + id="feGaussianBlur3214" + stdDeviation="0.77391625" /> + + + + + + + + + + - - - - - image/svg+xml - - - - + + d="M 7.7378475,42.430102 C 7.7378475,42.430102 7.7378475,45.999958 7.7378475,45.999958 C 6.5513473,46.006658 4.869468,45.200135 4.869468,44.2148 C 4.869468,43.229467 6.1935126,42.430103 7.7378475,42.430102 L 7.7378475,42.430102 z" + id="path2881" + style="opacity:0.3;fill:url(#radialGradient3732);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" /> + d="M 40.246148,42.430102 C 40.246148,42.430102 40.246148,45.999958 40.246148,45.999958 C 41.432648,46.006658 43.114528,45.200135 43.114528,44.2148 C 43.114528,43.229467 41.790483,42.430103 40.246148,42.430102 z" + id="path2883" + style="opacity:0.3;fill:url(#radialGradient3729);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + d="M 6.4999609,0.49719839 C 14.520256,0.49719839 22.540551,0.49719839 30.560847,0.49719839 C 31.086081,2.4573981 36.693941,7.3488012 41.500042,10.123605 C 41.500042,21.583338 41.500042,33.04307 41.500042,44.502803 C 29.833348,44.502803 18.166655,44.502803 6.4999609,44.502803 C 6.4999609,29.834268 6.4999609,15.165733 6.4999609,0.49719839 L 6.4999609,0.49719839 z" + id="path4160" + style="fill:url(#radialGradient3724);fill-opacity:1;stroke:url(#linearGradient3726);stroke-width:0.99992186;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" /> + d="M 18.912879,14 C 14.941321,19.117861 10.971558,24.242219 7,29.36008 C 7,34.571159 7,39.788922 7,45 C 16.433735,45 25.867403,45 35.301136,45 C 37.911168,41.636631 38.313471,41.123931 41,37.661986 C 41,32.936269 41,28.228706 41,23.48345 C 33.204587,20.134987 23.975066,16.174425 18.912879,14 z" + id="path3743" + style="opacity:0.1;fill:url(#linearGradient2721);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.91176528;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + d="M 18.912879,13 C 14.941321,18.117861 10.971558,23.242219 7,28.36008 C 7,33.571159 7,38.788922 7,44 C 16.433735,44 25.867403,44 35.301136,44 C 37.911168,40.636631 38.313471,40.123931 41,36.661986 C 41,31.936269 41,27.228706 41,22.48345 C 33.204587,19.134987 23.975066,15.174425 18.912879,13 z" + id="path3697" + style="opacity:0.4;fill:url(#linearGradient2718);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.91176528;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + + + + + + + + + diff --git a/resources/images/news/balkaninsight.png b/resources/images/news/balkaninsight.png new file mode 100644 index 0000000000..f2d5b35dee Binary files /dev/null and b/resources/images/news/balkaninsight.png differ diff --git a/resources/images/news/discover_magazine.png b/resources/images/news/discover_magazine.png new file mode 100644 index 0000000000..b63cf518d1 Binary files /dev/null and b/resources/images/news/discover_magazine.png differ diff --git a/resources/images/news/dr_dk.png b/resources/images/news/dr_dk.png new file mode 100644 index 0000000000..e584285e45 Binary files /dev/null and b/resources/images/news/dr_dk.png differ diff --git a/resources/images/news/fe_india.png b/resources/images/news/fe_india.png new file mode 100644 index 0000000000..759f2594cd Binary files /dev/null and b/resources/images/news/fe_india.png differ diff --git a/resources/images/news/futurismic.png b/resources/images/news/futurismic.png new file mode 100644 index 0000000000..1f5870e847 Binary files /dev/null and b/resources/images/news/futurismic.png differ diff --git a/resources/images/news/la_razon_bo.png b/resources/images/news/la_razon_bo.png new file mode 100644 index 0000000000..6224a2758a Binary files /dev/null and b/resources/images/news/la_razon_bo.png differ diff --git a/resources/images/news/los_tiempos_bo.png b/resources/images/news/los_tiempos_bo.png new file mode 100644 index 0000000000..f70a66e2d9 Binary files /dev/null and b/resources/images/news/los_tiempos_bo.png differ diff --git a/resources/recipes/DrawAndCook.recipe b/resources/recipes/DrawAndCook.recipe new file mode 100644 index 0000000000..1c080b85db --- /dev/null +++ b/resources/recipes/DrawAndCook.recipe @@ -0,0 +1,60 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class DrawAndCook(BasicNewsRecipe): + title = 'DrawAndCook' + __author__ = 'Starson17' + description = 'Drawings of recipes!' + language = 'en' + publisher = 'Starson17' + category = 'news, food, recipes' + use_embedded_content= False + no_stylesheets = True + oldest_article = 24 + remove_javascript = True + remove_empty_feeds = True + cover_url = 'http://farm5.static.flickr.com/4043/4471139063_4dafced67f_o.jpg' + max_articles_per_feed = 30 + + remove_attributes = ['style', 'font'] + + def parse_index(self): + feeds = [] + for title, url in [ + ("They Draw and Cook", "http://www.theydrawandcook.com/") + ]: + articles = self.make_links(url) + if articles: + feeds.append((title, articles)) + print 'feeds are: ', feeds + return feeds + + def make_links(self, url): + soup = self.index_to_soup(url) + title = '' + date = '' + current_articles = [] + soup = self.index_to_soup(url) + recipes = soup.findAll('div', attrs={'class': 'date-outer'}) + for recipe in recipes: + title = recipe.h3.a.string + page_url = recipe.h3.a['href'] + current_articles.append({'title': title, 'url': page_url, 'description':'', 'date':date}) + return current_articles + + + keep_only_tags = [dict(name='h3', attrs={'class':'post-title entry-title'}) + ,dict(name='div', attrs={'class':'post-body entry-content'}) + ] + + remove_tags = [dict(name='div', attrs={'class':['separator']}) + ,dict(name='div', attrs={'class':['post-share-buttons']}) + ] + + 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;} + img {max-width:100%; min-width:100%;} + 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/ap.recipe b/resources/recipes/ap.recipe index 0118cf0726..2b9f9e5571 100644 --- a/resources/recipes/ap.recipe +++ b/resources/recipes/ap.recipe @@ -6,31 +6,38 @@ class AssociatedPress(BasicNewsRecipe): title = u'Associated Press' description = 'Global news' - __author__ = 'Kovid Goyal' + __author__ = 'Kovid Goyal and Sujata Raman' use_embedded_content = False language = 'en' - + no_stylesheets = True max_articles_per_feed = 15 html2lrf_options = ['--force-page-break-before-tag="chapter"'] preprocess_regexps = [ (re.compile(i[0], re.IGNORECASE | re.DOTALL), i[1]) for i in [ - (r'.*?' , lambda match : ''), - (r'.*?', lambda match : ''), - (r'.*?', lambda match : ''), - (r'.*?', lambda match : ''), - (r'.*?', lambda match : ''), - (r'
.*?

', lambda match : '

'), - (r'

', lambda match : '

'), - (r'Learn more about our Privacy Policy.*?', lambda match : ''), + (r'', lambda match : '

'), ] ] + keep_only_tags = [ dict(name='div', attrs={'class':['body']}), + dict(name='div', attrs={'class':['entry-content']}), + ] + remove_tags = [dict(name='table', attrs={'class':['ap-video-table','ap-htmlfragment-table','ap-htmltable-table']}), + dict(name='span', attrs={'class':['apCaption','tabletitle']}), + dict(name='td', attrs={'bgcolor':['#333333']}), + ] + extra_css = ''' + .headline{font-family:Verdana,Arial,Helvetica,sans-serif;font-weight:bold;} + .bline{color:#003366;} + body{font-family:Arial,Helvetica,sans-serif;} + ''' - feeds = [ ('AP Headlines', 'http://hosted.ap.org/lineups/TOPHEADS-rss_2.0.xml?SITE=ORAST&SECTION=HOME'), - ('AP US News', 'http://hosted.ap.org/lineups/USHEADS-rss_2.0.xml?SITE=CAVIC&SECTION=HOME'), + + feeds = [ + ('AP Headlines', 'http://hosted.ap.org/lineups/TOPHEADS-rss_2.0.xml?SITE=ORAST&SECTION=HOME'), + ('AP US News', 'http://hosted.ap.org/lineups/USHEADS-rss_2.0.xml?SITE=CAVIC&SECTION=HOME'), ('AP World News', 'http://hosted.ap.org/lineups/WORLDHEADS-rss_2.0.xml?SITE=SCAND&SECTION=HOME'), ('AP Political News', 'http://hosted.ap.org/lineups/POLITICSHEADS-rss_2.0.xml?SITE=ORMED&SECTION=HOME'), ('AP Washington State News', 'http://hosted.ap.org/lineups/WASHINGTONHEADS-rss_2.0.xml?SITE=NYPLA&SECTION=HOME'), @@ -38,4 +45,5 @@ class AssociatedPress(BasicNewsRecipe): ('AP Health News', 'http://hosted.ap.org/lineups/HEALTHHEADS-rss_2.0.xml?SITE=FLDAY&SECTION=HOME'), ('AP Science News', 'http://hosted.ap.org/lineups/SCIENCEHEADS-rss_2.0.xml?SITE=OHCIN&SECTION=HOME'), ('AP Strange News', 'http://hosted.ap.org/lineups/STRANGEHEADS-rss_2.0.xml?SITE=WCNC&SECTION=HOME'), - ] + ] + diff --git a/resources/recipes/balkaninsight.recipe b/resources/recipes/balkaninsight.recipe new file mode 100644 index 0000000000..9d7396a9aa --- /dev/null +++ b/resources/recipes/balkaninsight.recipe @@ -0,0 +1,62 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +balkaninsight.com +''' + +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class BalkanInsight(BasicNewsRecipe): + title = 'Balkan Insight' + __author__ = 'Darko Miletic' + description = 'Get exclusive news and in depth information on business, politics, events and lifestyle in the Balkans. Free and exclusive premium content.' + publisher = 'BalkanInsight.com' + category = 'news, politics, Balcans' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = False + use_embedded_content = False + encoding = 'utf-8' + masthead_url = 'http://www.balkaninsight.com/templates/balkaninsight/images/aindex_02.jpg' + language = 'en' + publication_type = 'newsportal' + remove_empty_feeds = True + 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{font-family: Arial,Verdana,Helvetica,sans1,sans-serif} + img{margin-bottom: 0.8em} + h1,h2,h3,h4{font-family: Times,Georgia,serif1,serif; color: #24569E} + .article-deck {color:#777777; font-size: small;} + .main_news_img{font-size: small} """ + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] + + keep_only_tags = [dict(name='div', attrs={'id':'article'})] + remove_tags = [ + dict(name=['object','link','iframe']) + ] + + feeds = [ + (u'Albania' , u'http://www.balkaninsight.com/?tpl=653&tpid=144' ) + ,(u'Bosnia' , u'http://www.balkaninsight.com/?tpl=653&tpid=145' ) + ,(u'Bulgaria' , u'http://www.balkaninsight.com/?tpl=653&tpid=146' ) + ,(u'Croatia' , u'http://www.balkaninsight.com/?tpl=653&tpid=147' ) + ,(u'Kosovo' , u'http://www.balkaninsight.com/?tpl=653&tpid=148' ) + ,(u'Macedonia' , u'http://www.balkaninsight.com/?tpl=653&tpid=149' ) + ,(u'Montenegro' , u'http://www.balkaninsight.com/?tpl=653&tpid=150' ) + ,(u'Romania' , u'http://www.balkaninsight.com/?tpl=653&tpid=151' ) + ,(u'Serbia' , u'http://www.balkaninsight.com/?tpl=653&tpid=152' ) + ] + + 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/big_oven.recipe b/resources/recipes/big_oven.recipe index e1636daf72..d153255514 100644 --- a/resources/recipes/big_oven.recipe +++ b/resources/recipes/big_oven.recipe @@ -1,4 +1,5 @@ from calibre.web.feeds.news import BasicNewsRecipe +import re class BigOven(BasicNewsRecipe): title = 'BigOven' @@ -22,43 +23,42 @@ class BigOven(BasicNewsRecipe): , 'publisher' : publisher , 'language' : language } - + def get_browser(self): br = BasicNewsRecipe.get_browser() if self.username is not None and self.password is not None: - br.open('http://www.bigoven.com/') - br.select_form(name='form1') - br['TopMenu_bo1$email'] = self.username - br['TopMenu_bo1$password'] = self.password + br.open('http://www.bigoven.com/account/login?ReturnUrl=/') + br.select_form(nr=1) + br['Email'] = self.username + br['Password'] = self.password br.submit() return br remove_attributes = ['style', 'font'] - keep_only_tags = [dict(name='h1') - ,dict(name='div', attrs={'class':'img'}) - ,dict(name='div', attrs={'id':'intro'}) - ] - - remove_tags = [dict(name='div', attrs={'style':["overflow: visible;"]}) - ,dict(name='div', attrs={'class':['ctas']}) - #,dict(name='a', attrs={'class':['edit']}) - ,dict(name='p', attrs={'class':['byline']}) - ] - - feeds = [(u'4 & 5 Star Rated Recipes', u'http://feeds.feedburner.com/Bigovencom-RecipeRaves?format=xml')] + remove_tags = [dict(name='div', attrs={'class':['ppy-caption']}) + ,dict(name='div', attrs={'id':['float_corner']}) + ] def preprocess_html(self, soup): - for tag in soup.findAll(name='a', attrs={'class':['edit']}): - tag.parent.extract() for tag in soup.findAll(name='a', attrs={'class':['deflink']}): tag.replaceWith(tag.string) + for tag in soup.findAll(name='a', text=re.compile(r'.*View Metric.*', re.DOTALL)): + tag.parent.parent.extract() + for tag in soup.findAll(name='a', text=re.compile(r'.*Add my own photo.*', re.DOTALL)): + tag.parent.parent.extract() + for tag in soup.findAll(name='div', attrs={'class':['container']}): + if tag.find(name='h1'): + continue + if tag.find(name='h2', text=re.compile(r'.*Ingredients.*', re.DOTALL)): + print 'tag found Ingred h2' + continue + if tag.find(name='h2', text=re.compile(r'Preparation.*', re.DOTALL)): + print 'tag found Prep h2' + continue + tag.extract() return soup - 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:medium;} - p{font-family:Arial,Helvetica,sans-serif;font-size:small;} - body{font-family:Helvetica,Arial,sans-serif;font-size:small;} - ''' + feeds = [(u'4 & 5 Star Rated Recipes', u'http://feeds.feedburner.com/Bigovencom-RecipeRaves?format=xml')] + diff --git a/resources/recipes/dr_dk.recipe b/resources/recipes/dr_dk.recipe new file mode 100644 index 0000000000..742b36b355 --- /dev/null +++ b/resources/recipes/dr_dk.recipe @@ -0,0 +1,42 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +dr.dk +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class dr_dk(BasicNewsRecipe): + title = 'DR Nyheder' + __author__ = 'Darko Miletic' + description = 'Myndighederne indfører nu eskorte af brandbiler og ambulancer i Ishøj af frygt for hærværk.' + publisher = 'Nyhedsbureauet DR Nyheder' + category = 'news, politics, Denmark' + oldest_article = 2 + max_articles_per_feed = 200 + no_stylesheets = True + delay = 1 + encoding = 'utf8' + use_embedded_content = False + language = 'da' + extra_css = """ body{font-family: Verdana,Arial,sans-serif } + img{margin-bottom: 0.4em} + .txtContent,.stamp{font-size: small} + """ + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + keep_only_tags = [dict(name='div', attrs={'class':'articleContent'})] + remove_attributes=['xmlns:msxsl','width','height'] + + feeds = [(u'All news', u'http://www.dr.dk/Nyheder/Service/feeds/Allenyheder.htm')] + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup diff --git a/resources/recipes/elpais_impreso.recipe b/resources/recipes/elpais_impreso.recipe index b30db0707a..bba3bda217 100644 --- a/resources/recipes/elpais_impreso.recipe +++ b/resources/recipes/elpais_impreso.recipe @@ -9,9 +9,9 @@ from calibre import strftime from calibre.web.feeds.news import BasicNewsRecipe class ElPaisImpresa(BasicNewsRecipe): - title = 'El País - edicion impresa' + title = u'El Pa\xeds - edicion impresa' __author__ = 'Darko Miletic' - description = 'el periodico global en Español' + description = u'el periodico global en Espa\xf1ol' publisher = 'EDICIONES EL PAIS, S.L.' category = 'news, politics,Spain,actualidad,noticias,informacion,videos,fotografias,audios,graficos,nacional,internacional,deportes,economia,tecnologia,cultura,gente,television,sociedad,opinion,blogs,foros,chats,encuestas,entrevistas,participacion' no_stylesheets = True @@ -32,10 +32,10 @@ class ElPaisImpresa(BasicNewsRecipe): feeds = [ (u'Internacional' , index + u'internacional/' ) - ,(u'España' , index + u'espana/' ) + ,(u'Espa\xf1a' , index + u'espana/' ) ,(u'Economia' , index + u'economia/' ) ,(u'Opinion' , index + u'opinion/' ) - ,(u'Viñetas' , index + u'vineta/' ) + ,(u'Vi\xf1etas' , index + u'vineta/' ) ,(u'Sociedad' , index + u'sociedad/' ) ,(u'Cultura' , index + u'cultura/' ) ,(u'Tendencias' , index + u'tendencias/' ) diff --git a/resources/recipes/esquire.recipe b/resources/recipes/esquire.recipe index 96338d0b48..f559f5a6cf 100644 --- a/resources/recipes/esquire.recipe +++ b/resources/recipes/esquire.recipe @@ -1,15 +1,11 @@ -#!/usr/bin/env python - __license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' +__copyright__ = '2009-2010, Darko Miletic ' ''' www.esquire.com ''' -from calibre import strftime from calibre.web.feeds.news import BasicNewsRecipe -from calibre.ebooks.BeautifulSoup import Tag class Esquire(BasicNewsRecipe): title = 'Esquire' @@ -22,22 +18,20 @@ class Esquire(BasicNewsRecipe): no_stylesheets = True encoding = 'cp1250' use_embedded_content = False - language = 'en' - - lang = 'en-US' - cover_url = strftime('http://www.esquire.com/cm/esquire/cover-images/%Y_') + strftime('%m').strip('0') + '.jpg' + language = 'en' + publication_type = 'magazine' + masthead_url = 'http://www.esquire.com/cm/shared/site_images/print_this/esquire_logo.gif' conversion_options = { - 'comment' : description - , 'tags' : category - , 'publisher' : publisher - , 'language' : lang - , 'pretty_print' : True + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language } - keep_only_tags = [dict(name='div', attrs={'id':'content'})] - - remove_tags = [dict(name=['object','link','embed','iframe'])] + keep_only_tags = [dict(name='div', attrs={'id':['article_header','article_content']})] + remove_tags = [dict(name=['object','link','embed','iframe','base'])] + remove_attributes = ['width','height'] feeds = [ (u'Style' , u'http://www.esquire.com/style/rss/' ) @@ -47,17 +41,7 @@ class Esquire(BasicNewsRecipe): ,(u'Frontpage', u'http://www.esquire.com/rss/' ) ] - - def print_version(self, url): - rest = url.rpartition('?')[0] - article = rest.rpartition('/')[2] - return 'http://www.esquire.com/print-this/' + article - def preprocess_html(self, soup): - soup.html['xml:lang'] = self.lang - soup.html['lang'] = self.lang - mlang = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.lang)]) - soup.head.insert(0,mlang) for item in soup.findAll(style=True): del item['style'] return soup diff --git a/resources/recipes/fe_india.recipe b/resources/recipes/fe_india.recipe new file mode 100644 index 0000000000..7b5f380bdf --- /dev/null +++ b/resources/recipes/fe_india.recipe @@ -0,0 +1,46 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +financialexpress.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class FE_India(BasicNewsRecipe): + title = 'The Financial Express' + __author__ = 'Darko Miletic' + description = 'Financial news from India' + publisher = 'The Indian Express Limited' + category = 'news, politics, finances, India' + oldest_article = 30 + max_articles_per_feed = 200 + no_stylesheets = True + encoding = 'cp1252' + use_embedded_content = False + language = 'en_IN' + remove_empty_feeds = True + masthead_url = 'http://static.expressindia.com/frontend/fe/images/fe_logo.jpg' + publication_type = 'magazine' + extra_css = ' body{font-family: Arial,Helvetica,sans-serif } ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + keep_only_tags = [dict(attrs={'class':'txt'})] + remove_attributes = ['width','height'] + + feeds = [(u'Articles', u'http://www.expressindia.com/syndications/fe.xml')] + + def print_version(self, url): + article_raw = url.rpartition('/')[0] + article_id = article_raw.rpartition('/')[2] + return 'http://www.financialexpress.com/printer/news/' + article_id + '/' + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup diff --git a/resources/recipes/folhadesaopaulo.recipe b/resources/recipes/folhadesaopaulo.recipe new file mode 100644 index 0000000000..262a265020 --- /dev/null +++ b/resources/recipes/folhadesaopaulo.recipe @@ -0,0 +1,74 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2010, Saverio Palmieri Neto ' +''' +folha.uol.com.br +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class FolhaOnline(BasicNewsRecipe): + title = 'Folha de Sao Paulo' + __author__ = 'Saverio Palmieri Neto' + description = 'Brazilian news from Folha de Sao Paulo Online' + publisher = 'Folha de Sao Paulo' + category = 'Brasil, news' + oldest_article = 2 + max_articles_per_feed = 1000 + summary_length = 2048 + no_stylesheets = True + use_embedded_content = False + timefmt = ' [%d %b %Y (%a)]' + encoding = 'cp1252' + cover_url = 'http://lh5.ggpht.com/_hEb7sFmuBvk/TFoiKLRS5dI/AAAAAAAAADM/kcVKggZwKnw/capa_folha.jpg' + cover_margins = (5,5,'white') + remove_javascript = True + + keep_only_tags = [dict(name='div', attrs={'id':'articleNew'})] + + remove_tags = [ + dict(name='script') + ,dict(name='div', + attrs={'id':[ + 'articleButton' + ,'bookmarklets' + ,'ad-180x150-1' + ,'contextualAdsArticle' + ,'articleEnd' + ,'articleComments' + ]}) + ,dict(name='div', + attrs={'class':[ + 'openBox adslibraryArticle' + ]}) + ,dict(name='a') + ,dict(name='iframe') + ,dict(name='link') + ] + + + feeds = [ + (u'Em cima da hora', u'http://feeds.folha.uol.com.br/emcimadahora/rss091.xml') + ,(u'Ambiente', u'http://feeds.folha.uol.com.br/ambiente/rss091.xml') + ,(u'Bichos', u'http://feeds.folha.uol.com.br/bichos/rss091.xml') + ,(u'Poder', u'http://feeds.folha.uol.com.br/poder/rss091.xml') + ,(u'Ciencia', u'http://feeds.folha.uol.com.br/ciencia/rss091.xml') + ,(u'Cotidiano', u'http://feeds.folha.uol.com.br/cotidiado/rss091.xml') + ,(u'Saber', u'http://feeds.folha.uol.com.br/saber/rss091.xml') + ,(u'Equilíbrio e Saúde', u'http://feeds.folha.uol.com.br/equilibrioesaude/rss091.xml') + ,(u'Esporte', u'http://feeds.folha.uol.com.br/esporte/rss091.xml') + ,(u'Ilustrada', u'http://feeds.folha.uol.com.br/ilustrada/rss091.xml') + ,(u'Ilustríssima', u'http://feeds.folha.uol.com.br/ilustrissima/rss091.xml') + ,(u'Mercado', u'http://feeds.folha.uol.com.br/mercado/rss091.xml') + ,(u'Mundo', u'http://feeds.folha.uol.com.br/mundo/rss091.xml') + ,(u'Tec', u'http://feeds.folha.uol.com.br/tec/rss091.xml') + ,(u'Turismo', u'http://feeds.folha.uol.com.br/turismo/rss091.xml') + ] + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup + + language = 'pt' diff --git a/resources/recipes/freenature.recipe b/resources/recipes/freenature.recipe index 52c49d6502..cf06e7163d 100644 --- a/resources/recipes/freenature.recipe +++ b/resources/recipes/freenature.recipe @@ -4,28 +4,23 @@ import re class NatureNews(BasicNewsRecipe): title = u'Nature News' language = 'en' - __author__ = 'Krittika Goyal' + __author__ = 'Krittika Goyal, Starson17' oldest_article = 31 #days + remove_empty_feeds = True max_articles_per_feed = 50 - #encoding = 'latin1' no_stylesheets = True remove_tags_before = dict(name='h1', attrs={'class':'heading entry-title'}) remove_tags_after = dict(name='h2', attrs={'id':'comments'}) remove_tags = [ - #dict(name='iframe'), - #dict(name='div', attrs={'class':['pt-box-title', 'pt-box-content']}), - #dict(name='div', attrs={'id':['block-td_search_160', 'block-cam_search_160']}), dict(name='h2', attrs={'id':'comments'}), - dict(name='ul', attrs={'class':'toolsmenu xoxo'}), - ] + dict(attrs={'alt':'Advertisement'}), + dict(name='div', attrs={'class':'ad'}), + ] preprocess_regexps = [ - (re.compile(r'', re.DOTALL), lambda m: '') - ] + (re.compile(r'

ADVERTISEMENT

', re.DOTALL|re.IGNORECASE), lambda match: ''), + ] feeds = [('Nature News', 'http://feeds.nature.com/news/rss/most_recent')] - def get_article_url(self, article): - return article.get('id') - diff --git a/resources/recipes/futurismic.recipe b/resources/recipes/futurismic.recipe new file mode 100644 index 0000000000..e02d2c280b --- /dev/null +++ b/resources/recipes/futurismic.recipe @@ -0,0 +1,38 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +futurismic.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Futurismic(BasicNewsRecipe): + title = 'Futurismic' + __author__ = 'Darko Miletic' + description = 'Near-future science fiction and fact since 2001' + oldest_article = 15 + max_articles_per_feed = 100 + language = 'en' + encoding = 'utf-8' + no_stylesheets = True + use_embedded_content = False + publication_type = 'blog' + extra_css = ' body{font-family: Arial,Verdana,sans-serif} ' + + conversion_options = { + 'comment' : description + , 'tags' : 'blog, sf' + , 'publisher': 'Futurismic' + , 'language' : language + } + + remove_attributes = ['width','height'] + keep_only_tags = [dict(attrs={'class':['post','commentlist']})] + remove_tags = [dict(attrs={'class':['sociable','feedback','tagwords']})] + feeds = [(u'Posts', u'http://feeds2.feedburner.com/futurismic_feed')] + + def preprocess_html(self, soup): + return self.adeify_images(soup) + + diff --git a/resources/recipes/go_comics.recipe b/resources/recipes/go_comics.recipe new file mode 100644 index 0000000000..b98b628942 --- /dev/null +++ b/resources/recipes/go_comics.recipe @@ -0,0 +1,348 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = 'Copyright 2010 Starson17' +''' +www.gocomics.com +''' +from calibre.web.feeds.news import BasicNewsRecipe +import mechanize + +class GoComics(BasicNewsRecipe): + title = 'GoComics' + __author__ = 'Starson17' + __version__ = '1.02' + __date__ = '14 August 2010' + description = u'200+ Comics - Customize for more days/comics: Defaults to 7 days, 25 comics - 20 general, 5 editorial.' + category = 'news, comics' + language = 'en' + use_embedded_content= False + no_stylesheets = True + remove_javascript = True + cover_url = 'http://paulbuckley14059.files.wordpress.com/2008/06/calvin-and-hobbes.jpg' + + ####### USER PREFERENCES - COMICS, IMAGE SIZE AND NUMBER OF COMICS TO RETRIEVE ######## + # num_comics_to_get - I've tried up to 99 on Calvin&Hobbes + num_comics_to_get = 7 + # comic_size 300 is small, 600 is medium, 900 is large, 1500 is extra-large + comic_size = 900 + # CHOOSE COMIC STRIPS BELOW - REMOVE COMMENT '# ' FROM IN FRONT OF DESIRED STRIPS + # Please do not overload their servers by selecting all comics and 1000 strips from each! + + conversion_options = {'linearize_tables' : True + , 'comment' : description + , 'tags' : category + , 'language' : language + } + + keep_only_tags = [dict(name='div', attrs={'class':['feature','banner']}), + ] + + remove_tags = [dict(name='a', attrs={'class':['beginning','prev','cal','next','newest']}), + dict(name='div', attrs={'class':['tag-wrapper']}), + dict(name='ul', attrs={'class':['share-nav','feature-nav']}), + ] + + def get_browser(self): + br = BasicNewsRecipe.get_browser(self) + cookies = mechanize.CookieJar() + br = mechanize.build_opener(mechanize.HTTPCookieProcessor(cookies)) + br.addheaders = [('Referer','http://www.gocomics.com/')] + return br + + def parse_index(self): + feeds = [] + for title, url in [ + ######## COMICS - GENERAL ######## + (u"2 Cows and a Chicken", u"http://www.gocomics.com/2cowsandachicken"), + # (u"9 to 5", u"http://www.gocomics.com/9to5"), + # (u"The Academia Waltz", u"http://www.gocomics.com/academiawaltz"), + # (u"Adam@Home", u"http://www.gocomics.com/adamathome"), + # (u"Agnes", u"http://www.gocomics.com/agnes"), + # (u"Andy Capp", u"http://www.gocomics.com/andycapp"), + # (u"Animal Crackers", u"http://www.gocomics.com/animalcrackers"), + # (u"Annie", u"http://www.gocomics.com/annie"), + (u"The Argyle Sweater", u"http://www.gocomics.com/theargylesweater"), + # (u"Ask Shagg", u"http://www.gocomics.com/askshagg"), + (u"B.C.", u"http://www.gocomics.com/bc"), + # (u"Back in the Day", u"http://www.gocomics.com/backintheday"), + # (u"Bad Reporter", u"http://www.gocomics.com/badreporter"), + # (u"Baldo", u"http://www.gocomics.com/baldo"), + # (u"Ballard Street", u"http://www.gocomics.com/ballardstreet"), + # (u"Barkeater Lake", u"http://www.gocomics.com/barkeaterlake"), + # (u"The Barn", u"http://www.gocomics.com/thebarn"), + # (u"Basic Instructions", u"http://www.gocomics.com/basicinstructions"), + # (u"Bewley", u"http://www.gocomics.com/bewley"), + # (u"Big Top", u"http://www.gocomics.com/bigtop"), + # (u"Biographic", u"http://www.gocomics.com/biographic"), + (u"Birdbrains", u"http://www.gocomics.com/birdbrains"), + # (u"Bleeker: The Rechargeable Dog", u"http://www.gocomics.com/bleeker"), + # (u"Bliss", u"http://www.gocomics.com/bliss"), + (u"Bloom County", u"http://www.gocomics.com/bloomcounty"), + # (u"Bo Nanas", u"http://www.gocomics.com/bonanas"), + # (u"Bob the Squirrel", u"http://www.gocomics.com/bobthesquirrel"), + # (u"The Boiling Point", u"http://www.gocomics.com/theboilingpoint"), + # (u"Boomerangs", u"http://www.gocomics.com/boomerangs"), + # (u"The Boondocks", u"http://www.gocomics.com/boondocks"), + # (u"Bottomliners", u"http://www.gocomics.com/bottomliners"), + # (u"Bound and Gagged", u"http://www.gocomics.com/boundandgagged"), + # (u"Brainwaves", u"http://www.gocomics.com/brainwaves"), + # (u"Brenda Starr", u"http://www.gocomics.com/brendastarr"), + # (u"Brewster Rockit", u"http://www.gocomics.com/brewsterrockit"), + # (u"Broom Hilda", u"http://www.gocomics.com/broomhilda"), + (u"Calvin and Hobbes", u"http://www.gocomics.com/calvinandhobbes"), + # (u"Candorville", u"http://www.gocomics.com/candorville"), + # (u"Cathy", u"http://www.gocomics.com/cathy"), + # (u"C'est la Vie", u"http://www.gocomics.com/cestlavie"), + # (u"Chuckle Bros", u"http://www.gocomics.com/chucklebros"), + # (u"Citizen Dog", u"http://www.gocomics.com/citizendog"), + # (u"The City", u"http://www.gocomics.com/thecity"), + # (u"Cleats", u"http://www.gocomics.com/cleats"), + # (u"Close to Home", u"http://www.gocomics.com/closetohome"), + # (u"Compu-toon", u"http://www.gocomics.com/compu-toon"), + # (u"Cornered", u"http://www.gocomics.com/cornered"), + (u"Cul de Sac", u"http://www.gocomics.com/culdesac"), + # (u"Daddy's Home", u"http://www.gocomics.com/daddyshome"), + # (u"Deep Cover", u"http://www.gocomics.com/deepcover"), + # (u"Dick Tracy", u"http://www.gocomics.com/dicktracy"), + # (u"The Dinette Set", u"http://www.gocomics.com/dinetteset"), + # (u"Dog Eat Doug", u"http://www.gocomics.com/dogeatdoug"), + # (u"Domestic Abuse", u"http://www.gocomics.com/domesticabuse"), + # (u"Doodles", u"http://www.gocomics.com/doodles"), + (u"Doonesbury", u"http://www.gocomics.com/doonesbury"), + # (u"The Doozies", u"http://www.gocomics.com/thedoozies"), + # (u"The Duplex", u"http://www.gocomics.com/duplex"), + # (u"Eek!", u"http://www.gocomics.com/eek"), + # (u"The Elderberries", u"http://www.gocomics.com/theelderberries"), + # (u"Flight Deck", u"http://www.gocomics.com/flightdeck"), + # (u"Flo and Friends", u"http://www.gocomics.com/floandfriends"), + # (u"The Flying McCoys", u"http://www.gocomics.com/theflyingmccoys"), + (u"For Better or For Worse", u"http://www.gocomics.com/forbetterorforworse"), + # (u"For Heaven's Sake", u"http://www.gocomics.com/forheavenssake"), + # (u"Fort Knox", u"http://www.gocomics.com/fortknox"), + # (u"FoxTrot", u"http://www.gocomics.com/foxtrot"), + (u"FoxTrot Classics", u"http://www.gocomics.com/foxtrotclassics"), + # (u"Frank & Ernest", u"http://www.gocomics.com/frankandernest"), + # (u"Fred Basset", u"http://www.gocomics.com/fredbasset"), + # (u"Free Range", u"http://www.gocomics.com/freerange"), + # (u"Frog Applause", u"http://www.gocomics.com/frogapplause"), + # (u"The Fusco Brothers", u"http://www.gocomics.com/thefuscobrothers"), + (u"Garfield", u"http://www.gocomics.com/garfield"), + # (u"Garfield Minus Garfield", u"http://www.gocomics.com/garfieldminusgarfield"), + # (u"Gasoline Alley", u"http://www.gocomics.com/gasolinealley"), + # (u"Gil Thorp", u"http://www.gocomics.com/gilthorp"), + # (u"Ginger Meggs", u"http://www.gocomics.com/gingermeggs"), + # (u"Girls & Sports", u"http://www.gocomics.com/girlsandsports"), + # (u"Haiku Ewe", u"http://www.gocomics.com/haikuewe"), + # (u"Heart of the City", u"http://www.gocomics.com/heartofthecity"), + # (u"Heathcliff", u"http://www.gocomics.com/heathcliff"), + # (u"Herb and Jamaal", u"http://www.gocomics.com/herbandjamaal"), + # (u"Home and Away", u"http://www.gocomics.com/homeandaway"), + # (u"Housebroken", u"http://www.gocomics.com/housebroken"), + # (u"Hubert and Abby", u"http://www.gocomics.com/hubertandabby"), + # (u"Imagine This", u"http://www.gocomics.com/imaginethis"), + # (u"In the Bleachers", u"http://www.gocomics.com/inthebleachers"), + # (u"In the Sticks", u"http://www.gocomics.com/inthesticks"), + # (u"Ink Pen", u"http://www.gocomics.com/inkpen"), + # (u"It's All About You", u"http://www.gocomics.com/itsallaboutyou"), + # (u"Joe Vanilla", u"http://www.gocomics.com/joevanilla"), + # (u"La Cucaracha", u"http://www.gocomics.com/lacucaracha"), + # (u"Last Kiss", u"http://www.gocomics.com/lastkiss"), + # (u"Legend of Bill", u"http://www.gocomics.com/legendofbill"), + # (u"Liberty Meadows", u"http://www.gocomics.com/libertymeadows"), + (u"Lio", u"http://www.gocomics.com/lio"), + # (u"Little Dog Lost", u"http://www.gocomics.com/littledoglost"), + # (u"Little Otto", u"http://www.gocomics.com/littleotto"), + # (u"Loose Parts", u"http://www.gocomics.com/looseparts"), + # (u"Love Is...", u"http://www.gocomics.com/loveis"), + # (u"Maintaining", u"http://www.gocomics.com/maintaining"), + # (u"The Meaning of Lila", u"http://www.gocomics.com/meaningoflila"), + # (u"Middle-Aged White Guy", u"http://www.gocomics.com/middleagedwhiteguy"), + # (u"The Middletons", u"http://www.gocomics.com/themiddletons"), + # (u"Momma", u"http://www.gocomics.com/momma"), + # (u"Mutt & Jeff", u"http://www.gocomics.com/muttandjeff"), + # (u"Mythtickle", u"http://www.gocomics.com/mythtickle"), + # (u"Nest Heads", u"http://www.gocomics.com/nestheads"), + # (u"NEUROTICA", u"http://www.gocomics.com/neurotica"), + (u"New Adventures of Queen Victoria", u"http://www.gocomics.com/thenewadventuresofqueenvictoria"), + (u"Non Sequitur", u"http://www.gocomics.com/nonsequitur"), + # (u"The Norm", u"http://www.gocomics.com/thenorm"), + # (u"On A Claire Day", u"http://www.gocomics.com/onaclaireday"), + # (u"One Big Happy", u"http://www.gocomics.com/onebighappy"), + # (u"The Other Coast", u"http://www.gocomics.com/theothercoast"), + # (u"Out of the Gene Pool Re-Runs", u"http://www.gocomics.com/outofthegenepool"), + # (u"Overboard", u"http://www.gocomics.com/overboard"), + # (u"Pibgorn", u"http://www.gocomics.com/pibgorn"), + # (u"Pibgorn Sketches", u"http://www.gocomics.com/pibgornsketches"), + (u"Pickles", u"http://www.gocomics.com/pickles"), + # (u"Pinkerton", u"http://www.gocomics.com/pinkerton"), + # (u"Pluggers", u"http://www.gocomics.com/pluggers"), + (u"Pooch Cafe", u"http://www.gocomics.com/poochcafe"), + # (u"PreTeena", u"http://www.gocomics.com/preteena"), + # (u"The Quigmans", u"http://www.gocomics.com/thequigmans"), + # (u"Rabbits Against Magic", u"http://www.gocomics.com/rabbitsagainstmagic"), + (u"Real Life Adventures", u"http://www.gocomics.com/reallifeadventures"), + # (u"Red and Rover", u"http://www.gocomics.com/redandrover"), + # (u"Red Meat", u"http://www.gocomics.com/redmeat"), + # (u"Reynolds Unwrapped", u"http://www.gocomics.com/reynoldsunwrapped"), + # (u"Ronaldinho Gaucho", u"http://www.gocomics.com/ronaldinhogaucho"), + # (u"Rubes", u"http://www.gocomics.com/rubes"), + # (u"Scary Gary", u"http://www.gocomics.com/scarygary"), + (u"Shoe", u"http://www.gocomics.com/shoe"), + # (u"Shoecabbage", u"http://www.gocomics.com/shoecabbage"), + # (u"Skin Horse", u"http://www.gocomics.com/skinhorse"), + # (u"Slowpoke", u"http://www.gocomics.com/slowpoke"), + # (u"Speed Bump", u"http://www.gocomics.com/speedbump"), + # (u"State of the Union", u"http://www.gocomics.com/stateoftheunion"), + (u"Stone Soup", u"http://www.gocomics.com/stonesoup"), + # (u"Strange Brew", u"http://www.gocomics.com/strangebrew"), + # (u"Sylvia", u"http://www.gocomics.com/sylvia"), + # (u"Tank McNamara", u"http://www.gocomics.com/tankmcnamara"), + # (u"Tiny Sepuku", u"http://www.gocomics.com/tinysepuku"), + # (u"TOBY", u"http://www.gocomics.com/toby"), + # (u"Tom the Dancing Bug", u"http://www.gocomics.com/tomthedancingbug"), + # (u"Too Much Coffee Man", u"http://www.gocomics.com/toomuchcoffeeman"), + # (u"W.T. Duck", u"http://www.gocomics.com/wtduck"), + # (u"Watch Your Head", u"http://www.gocomics.com/watchyourhead"), + # (u"Wee Pals", u"http://www.gocomics.com/weepals"), + # (u"Winnie the Pooh", u"http://www.gocomics.com/winniethepooh"), + (u"Wizard of Id", u"http://www.gocomics.com/wizardofid"), + # (u"Working It Out", u"http://www.gocomics.com/workingitout"), + # (u"Yenny", u"http://www.gocomics.com/yenny"), + # (u"Zack Hill", u"http://www.gocomics.com/zackhill"), + (u"Ziggy", u"http://www.gocomics.com/ziggy"), + ######## COMICS - EDITORIAL ######## + ("Lalo Alcaraz","http://www.gocomics.com/laloalcaraz"), + ("Nick Anderson","http://www.gocomics.com/nickanderson"), + ("Chuck Asay","http://www.gocomics.com/chuckasay"), + ("Tony Auth","http://www.gocomics.com/tonyauth"), + ("Donna Barstow","http://www.gocomics.com/donnabarstow"), + # ("Bruce Beattie","http://www.gocomics.com/brucebeattie"), + # ("Clay Bennett","http://www.gocomics.com/claybennett"), + # ("Lisa Benson","http://www.gocomics.com/lisabenson"), + # ("Steve Benson","http://www.gocomics.com/stevebenson"), + # ("Chip Bok","http://www.gocomics.com/chipbok"), + # ("Steve Breen","http://www.gocomics.com/stevebreen"), + # ("Chris Britt","http://www.gocomics.com/chrisbritt"), + # ("Stuart Carlson","http://www.gocomics.com/stuartcarlson"), + # ("Ken Catalino","http://www.gocomics.com/kencatalino"), + # ("Paul Conrad","http://www.gocomics.com/paulconrad"), + # ("Jeff Danziger","http://www.gocomics.com/jeffdanziger"), + # ("Matt Davies","http://www.gocomics.com/mattdavies"), + # ("John Deering","http://www.gocomics.com/johndeering"), + # ("Bob Gorrell","http://www.gocomics.com/bobgorrell"), + # ("Walt Handelsman","http://www.gocomics.com/walthandelsman"), + # ("Clay Jones","http://www.gocomics.com/clayjones"), + # ("Kevin Kallaugher","http://www.gocomics.com/kevinkallaugher"), + # ("Steve Kelley","http://www.gocomics.com/stevekelley"), + # ("Dick Locher","http://www.gocomics.com/dicklocher"), + # ("Chan Lowe","http://www.gocomics.com/chanlowe"), + # ("Mike Luckovich","http://www.gocomics.com/mikeluckovich"), + # ("Gary Markstein","http://www.gocomics.com/garymarkstein"), + # ("Glenn McCoy","http://www.gocomics.com/glennmccoy"), + # ("Jim Morin","http://www.gocomics.com/jimmorin"), + # ("Jack Ohman","http://www.gocomics.com/jackohman"), + # ("Pat Oliphant","http://www.gocomics.com/patoliphant"), + # ("Joel Pett","http://www.gocomics.com/joelpett"), + # ("Ted Rall","http://www.gocomics.com/tedrall"), + # ("Michael Ramirez","http://www.gocomics.com/michaelramirez"), + # ("Marshall Ramsey","http://www.gocomics.com/marshallramsey"), + # ("Steve Sack","http://www.gocomics.com/stevesack"), + # ("Ben Sargent","http://www.gocomics.com/bensargent"), + # ("Drew Sheneman","http://www.gocomics.com/drewsheneman"), + # ("John Sherffius","http://www.gocomics.com/johnsherffius"), + # ("Small World","http://www.gocomics.com/smallworld"), + # ("Scott Stantis","http://www.gocomics.com/scottstantis"), + # ("Wayne Stayskal","http://www.gocomics.com/waynestayskal"), + # ("Dana Summers","http://www.gocomics.com/danasummers"), + # ("Paul Szep","http://www.gocomics.com/paulszep"), + # ("Mike Thompson","http://www.gocomics.com/mikethompson"), + # ("Tom Toles","http://www.gocomics.com/tomtoles"), + # ("Gary Varvel","http://www.gocomics.com/garyvarvel"), + # ("ViewsAfrica","http://www.gocomics.com/viewsafrica"), + # ("ViewsAmerica","http://www.gocomics.com/viewsamerica"), + # ("ViewsAsia","http://www.gocomics.com/viewsasia"), + # ("ViewsBusiness","http://www.gocomics.com/viewsbusiness"), + # ("ViewsEurope","http://www.gocomics.com/viewseurope"), + # ("ViewsLatinAmerica","http://www.gocomics.com/viewslatinamerica"), + # ("ViewsMidEast","http://www.gocomics.com/viewsmideast"), + # ("Views of the World","http://www.gocomics.com/viewsoftheworld"), + # ("Kerry Waghorn","http://www.gocomics.com/facesinthenews"), + # ("Dan Wasserman","http://www.gocomics.com/danwasserman"), + # ("Signe Wilkinson","http://www.gocomics.com/signewilkinson"), + # ("Wit of the World","http://www.gocomics.com/witoftheworld"), + # ("Don Wright","http://www.gocomics.com/donwright"), + ]: + articles = self.make_links(url) + if articles: + feeds.append((title, articles)) + return feeds + + def make_links(self, url): + title = 'Temp' + current_articles = [] + pages = range(1, self.num_comics_to_get+1) + for page in pages: + page_soup = self.index_to_soup(url) + if page_soup: + try: + strip_title = page_soup.h1.a.string + except: + strip_title = 'Error - no page_soup.h1.a.string' + try: + date_title = page_soup.find('ul', attrs={'class': 'feature-nav'}).li.string + except: + date_title = 'Error - no page_soup.h1.li.string' + title = strip_title + ' - ' + date_title + for i in range(2): + try: + strip_url_date = page_soup.h1.a['href'] + break #success - this is normal exit + except: + continue #try to get strip_url_date again + continue # give up on this strip date + for i in range(2): + try: + prev_strip_url_date = page_soup.find('a', attrs={'class': 'prev'})['href'] + break #success - this is normal exit + except: + continue #try to get prev_strip_url_date again + continue # give up on this prev strip date + if strip_url_date: + page_url = 'http://www.gocomics.com' + strip_url_date + else: + continue + if prev_strip_url_date: + prev_page_url = 'http://www.gocomics.com' + prev_strip_url_date + else: + continue + current_articles.append({'title': title, 'url': page_url, 'description':'', 'date':''}) + url = prev_page_url + current_articles.reverse() + return current_articles + + def preprocess_html(self, soup): + if soup.title: + title_string = soup.title.string.strip() + _cd = title_string.split(',',1)[1] + comic_date = ' '.join(_cd.split(' ', 4)[0:-1]) + if soup.h1.span: + artist = soup.h1.span.string + soup.h1.span.string.replaceWith(comic_date + artist) + feature_item = soup.find('p',attrs={'class':'feature_item'}) + if feature_item.a: + a_tag = feature_item.a + a_href = a_tag["href"] + img_tag = a_tag.img + img_tag["src"] = a_href + img_tag["width"] = self.comic_size + img_tag["height"] = None + return self.adeify_images(soup) + + 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;} + img {max-width:100%; min-width:100%;} + 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/la_razon_bo.recipe b/resources/recipes/la_razon_bo.recipe new file mode 100644 index 0000000000..b7cd59d043 --- /dev/null +++ b/resources/recipes/la_razon_bo.recipe @@ -0,0 +1,64 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.la-razon.com +''' + +from calibre import strftime +from calibre.web.feeds.news import BasicNewsRecipe + +class LaRazon_Bol(BasicNewsRecipe): + title = 'La Razón - Bolivia' + __author__ = 'Darko Miletic' + description = 'El diario nacional de Bolivia' + publisher = 'Praxsis S.R.L.' + category = 'news, politics, Bolivia' + oldest_article = 1 + max_articles_per_feed = 200 + no_stylesheets = True + encoding = 'cp1252' + use_embedded_content = False + language = 'es' + publication_type = 'newspaper' + delay = 1 + remove_empty_feeds = True + cover_url = strftime('http://www.la-razon.com/portadas/%Y%m%d_LaRazon.jpg') + masthead_url = 'http://www.la-razon.com/imagenes/logo.jpg' + extra_css = """ body{font-family: Arial,Helvetica,sans-serif } + img{margin-bottom: 0.4em} + .noticia-titulo{font-family: Georgia,"Times New Roman",Times,serif} + .lead{font-weight: bold; font-size: 0.8em} + """ + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + keep_only_tags = [dict(name='div', attrs={'class':['noticia-titulo','noticia-desarrollo']})] + remove_tags = [dict(name=['meta','link','form','iframe','embed','object'])] + remove_attributes = ['width','height'] + + feeds = [ + (u'Editorial' , u'http://www.la-razon.com/rss_editorial.php' ) + ,(u'Opinión' , u'http://www.la-razon.com/rss_opinion.php' ) + ,(u'Nacional' , u'http://www.la-razon.com/rss_nacional.php' ) + ,(u'Economia' , u'http://www.la-razon.com/rss_economia.php' ) + ,(u'Ciudades' , u'http://www.la-razon.com/rss_ciudades.php' ) + ,(u'Sociedad' , u'http://www.la-razon.com/rss_sociedad.php' ) + ,(u'Mundo' , u'http://www.la-razon.com/rss_sociedad.php' ) + ,(u'La Revista' , u'http://www.la-razon.com/rss_larevista.php' ) + ,(u'Sociales' , u'http://www.la-razon.com/rss_sociales.php' ) + ,(u'Mia' , u'http://www.la-razon.com/rss_mia.php' ) + ,(u'Marcas' , u'http://www.la-razon.com/rss_marcas.php' ) + ,(u'Escape' , u'http://www.la-razon.com/rss_escape.php' ) + ,(u'El Financiero' , u'http://www.la-razon.com/rss_financiero.php') + ,(u'Tendencias' , u'http://www.la-razon.com/rss_tendencias.php') + ] + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup diff --git a/resources/recipes/lanacion.recipe b/resources/recipes/lanacion.recipe index 000b4fb0f6..068f6b3555 100644 --- a/resources/recipes/lanacion.recipe +++ b/resources/recipes/lanacion.recipe @@ -9,17 +9,22 @@ from calibre.web.feeds.news import BasicNewsRecipe class Lanacion(BasicNewsRecipe): title = 'La Nacion' __author__ = 'Darko Miletic' - description = 'Noticias de Argentina y el resto del mundo' + description = "lanacion.com - Informacion actualizada las 24 horas, con noticias de Argentina y del mundo" publisher = 'La Nacion S.A.' category = 'news, politics, Argentina' - oldest_article = 2 + oldest_article = 1 max_articles_per_feed = 100 use_embedded_content = False no_stylesheets = True language = 'es' - encoding = 'cp1252' + publication_type = 'newspaper' + remove_empty_feeds = True 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} ' + 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} + .topNota h1{font-family: Arial,sans-serif} """ conversion_options = { @@ -29,19 +34,19 @@ class Lanacion(BasicNewsRecipe): , 'language' : language } - keep_only_tags = [dict(name='div', attrs={'class':'nota floatFix'})] + keep_only_tags = [dict(name='div', attrs={'class':['nota floatFix','topNota','nota','post']})] remove_tags = [ dict(name='div' , attrs={'class':'notaComentario floatFix noprint' }) - ,dict(name='ul' , attrs={'class':'cajaHerramientas cajaTop noprint'}) + ,dict(name='ul' , attrs={'class':['cajaHerramientas cajaTop noprint','herramientas noprint']}) ,dict(name='div' , attrs={'class':'cajaHerramientas noprint' }) - ,dict(attrs={'class':['titulosMultimedia','derecha','techo color']}) - ,dict(name=['iframe','embed','object']) + ,dict(attrs={'class':['titulosMultimedia','derecha','techo color','encuesta','izquierda compartir','floatFix']}) + ,dict(name=['iframe','embed','object','form','base','hr']) ] - remove_attributes = ['height','width'] + remove_tags_after = dict(attrs={'class':['tags','nota-destacado']}) + remove_attributes = ['height','width','visible'] feeds = [ (u'Ultimas noticias' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?origen=2' ) - ,(u'Diario de hoy' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?origen=1' ) ,(u'Politica' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=30' ) ,(u'Economia' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=272' ) ,(u'Deportes' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=131' ) @@ -50,8 +55,23 @@ class Lanacion(BasicNewsRecipe): ,(u'Opinion' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=28' ) ,(u'Espectaculos' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=120' ) ,(u'Exterior' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=7' ) - ,(u'Ciencia/Salud' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=498' ) + ,(u'Ciencia&Salud' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=498' ) ,(u'Revista' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=494' ) + ,(u'Enfoques' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=421' ) + ,(u'Comercio Exterior' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=347' ) + ,(u'Tecnologia' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=432' ) + ,(u'Arquitectura' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=366' ) + ,(u'Turismo' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=504' ) + ,(u'Al volante' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=371' ) + ,(u'El Campo' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=337' ) + ,(u'Moda y Belleza' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=1312' ) + ,(u'Inmuebles Comerciales', u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=1363' ) + ,(u'Countries' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=1348' ) + ,(u'adnCultura' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=6734' ) + ,(u'The Wall Street Journal Americas', u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=6373' ) + ,(u'Estilo de vida' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=7353' ) + ,(u'Management' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=7380' ) + ,(u'Bicentenario' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=7276' ) ] def preprocess_html(self, soup): diff --git a/resources/recipes/los_tiempos_bo.recipe b/resources/recipes/los_tiempos_bo.recipe new file mode 100644 index 0000000000..ae2774ff59 --- /dev/null +++ b/resources/recipes/los_tiempos_bo.recipe @@ -0,0 +1,63 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.lostiempos.com +''' + +from calibre import strftime +from calibre.web.feeds.news import BasicNewsRecipe + +class LosTiempos_Bol(BasicNewsRecipe): + title = 'Los Tiempos - Bolivia' + __author__ = 'Darko Miletic' + description = 'El periódico de mayor circulación en la ciudad de Cochabamba, Bolivia' + publisher = 'Los Tiempos' + category = 'news, politics, Bolivia' + oldest_article = 1 + max_articles_per_feed = 200 + no_stylesheets = True + encoding = 'cp1252' + use_embedded_content = False + language = 'es' + publication_type = 'newspaper' + delay = 1 + remove_empty_feeds = True + cover_url = strftime('http://www.lostiempos.com/media_recortes/%Y/%m/%d/portada_md_1.jpg') + masthead_url = 'http://www.lostiempos.com/img_stat/logo_tiempos_sin_beta.jpg' + extra_css = """ body{font-family: Arial,Helvetica,sans-serif } + img{margin-bottom: 0.4em} + h1,.hora,.breadcum,.pie_foto{font-family: Georgia,"Times New Roman",Times,serif} + .hora,.breadcum,.pie_foto{font-size: small} + .en_gris,.pie_foto{color: #666666} + """ + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + keep_only_tags = [dict(name='div', attrs={'id':'articulo'})] + remove_tags = [ + dict(name=['meta','link','form','iframe','embed','object','hr']) + ,dict(attrs={'class':['caja_fonts sin_border_bot','pub']}) + ] + remove_attributes = ['width','height'] + + feeds = [ + (u'Nacional' , u'http://www.lostiempos.com/rss/lostiempos-nacional.xml' ) + ,(u'Local' , u'http://www.lostiempos.com/rss/lostiempos-local.xml' ) + ,(u'Deportes' , u'http://www.lostiempos.com/rss/lostiempos-deportes.xml' ) + ,(u'Economía' , u'http://www.lostiempos.com/rss/lostiempos-economia.xml' ) + ,(u'Internacional' , u'http://www.lostiempos.com/rss/lostiempos-internacional.xml' ) + ,(u'Vida y Futuro' , u'http://www.lostiempos.com/rss/lostiempos-vida-y-futuro.xml' ) + ,(u'Tragaluz' , u'http://www.lostiempos.com/rss/lostiempos-tragaluz.xml' ) + ,(u'Opiniones' , u'http://www.lostiempos.com/rss/lostiempos-opiniones.xml' ) + ] + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup + diff --git a/resources/recipes/nation_ke.recipe b/resources/recipes/nation_ke.recipe index 07d012c965..873697b97d 100644 --- a/resources/recipes/nation_ke.recipe +++ b/resources/recipes/nation_ke.recipe @@ -6,10 +6,9 @@ www.standardmedia.co.ke import os from calibre import strftime, __appname__, __version__ -import calibre.utils.PythonMagickWand as pw -from ctypes import byref from calibre.web.feeds.news import BasicNewsRecipe from calibre.constants import preferred_encoding +from calibre.utils.magick import Image class NationKeRecipe(BasicNewsRecipe): @@ -95,19 +94,9 @@ class NationKeRecipe(BasicNewsRecipe): self.cover_img_path = None def prepare_cover_image(self, path_to_image, out_path): - with pw.ImageMagick(): - img = pw.NewMagickWand() - if img < 0: - raise RuntimeError('Out of memory') - if not pw.MagickReadImage(img, path_to_image): - severity = pw.ExceptionType(0) - msg = pw.MagickGetException(img, byref(severity)) - raise IOError('Failed to read image from: %s: %s' - %(path_to_image, msg)) - if not pw.MagickWriteImage(img, out_path): - raise RuntimeError('Failed to save image to %s'%out_path) - pw.DestroyMagickWand(img) - + img = Image() + img.open(path_to_image) + img.save(out_path) def default_cover(self, cover_file): ''' diff --git a/resources/recipes/new_scientist.recipe b/resources/recipes/new_scientist.recipe index b40be458bc..2e864565ff 100644 --- a/resources/recipes/new_scientist.recipe +++ b/resources/recipes/new_scientist.recipe @@ -1,4 +1,3 @@ - __license__ = 'GPL v3' __copyright__ = '2008-2010, AprilHare, Darko Miletic ' ''' @@ -36,7 +35,7 @@ class NewScientist(BasicNewsRecipe): remove_tags = [ dict(name='div' , attrs={'class':['hldBd','adline','pnl','infotext' ]}) - ,dict(name='div' , attrs={'id' :['compnl','artIssueInfo','artTools','comments','blgsocial']}) + ,dict(name='div' , attrs={'id' :['compnl','artIssueInfo','artTools','comments','blgsocial','sharebtns']}) ,dict(name='p' , attrs={'class':['marker','infotext' ]}) ,dict(name='meta' , attrs={'name' :'description' }) ,dict(name='a' , attrs={'rel' :'tag' }) diff --git a/resources/recipes/novosti.recipe b/resources/recipes/novosti.recipe index 3c770e883b..eecae620e4 100644 --- a/resources/recipes/novosti.recipe +++ b/resources/recipes/novosti.recipe @@ -11,7 +11,7 @@ from calibre.web.feeds.news import BasicNewsRecipe class Novosti(BasicNewsRecipe): title = 'Vecernje Novosti' __author__ = 'Darko Miletic' - description = 'Vesti' + description = 'U poÄetku su bile istinske veÄernje novine - pokrenute u vreme Tršćanske krize, Italijansko-jugoslovenskog konflikta oko grada Trsta - ali su brzo izrasle u dnevni informativno-politiÄki list, koji već godinama ima najveći tiraž u Srbiji.' publisher = 'Kompanija Novosti' category = 'news, politics, Serbia' oldest_article = 2 @@ -21,24 +21,22 @@ class Novosti(BasicNewsRecipe): encoding = 'utf-8' language = 'sr' publication_type = 'newspaper' - 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{font-family: Tahoma,Arial,Helvetica,sans1,sans-serif} ' + extra_css = """ @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} + .article_description,body{font-family: Arial,Helvetica,sans1,sans-serif} + .author{font-size: small} + .articleLead{font-size: large; font-weight: bold} + """ conversion_options = { - 'comment' : description - , 'tags' : category - , 'publisher' : publisher - , 'language' : language - , 'linearize_tables' : True + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language } preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] - keep_only_tags = [dict(name='div', attrs={'class':'jednaVest'})] - remove_tags = [dict(name='div', attrs={'class':['info','info_bottom','clip_div']})] + keep_only_tags = [dict(attrs={'class':['articleTitle','author','articleLead','articleBody']})] + remove_tags = [dict(name=['embed','object','iframe','base'])] - feeds = [(u'Vesti', u'http://www.novosti.rs/php/vesti/rss.php')] - - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - return self.adeify_images(soup) + feeds = [(u'Vesti', u'http://www.novosti.rs/rss/rss-vesti')] diff --git a/resources/recipes/nspm.recipe b/resources/recipes/nspm.recipe index c00e472636..13ff42b277 100644 --- a/resources/recipes/nspm.recipe +++ b/resources/recipes/nspm.recipe @@ -6,7 +6,6 @@ nspm.rs import re from calibre.web.feeds.news import BasicNewsRecipe -from calibre.ebooks.BeautifulSoup import Tag class Nspm(BasicNewsRecipe): title = 'Nova srpska politicka misao' @@ -14,33 +13,39 @@ class Nspm(BasicNewsRecipe): description = 'Casopis za politicku teoriju i drustvena istrazivanja' publisher = 'NSPM' category = 'news, politics, Serbia' - oldest_article = 2 + oldest_article = 7 max_articles_per_feed = 100 no_stylesheets = True use_embedded_content = False INDEX = 'http://www.nspm.rs/?alphabet=l' encoding = 'utf-8' language = 'sr' - publication_type = 'magazine' + delay = 2 + publication_type = 'magazine' masthead_url = 'http://www.nspm.rs/templates/jsn_epic_pro/images/logol.jpg' - 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: "Times New Roman", serif1, serif} .article_description{font-family: Arial, sans1, sans-serif} img{margin-top:0.5em; margin-bottom: 0.7em} .author{color: #990000; font-weight: bold} .author,.createdate{font-size: 0.9em} img{margin-top:0.5em; margin-bottom: 0.7em} ' + 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: "Times New Roman", serif1, serif} + .article_description{font-family: Arial, sans1, sans-serif} + img{margin-top:0.5em; margin-bottom: 0.7em} + .author{color: #990000; font-weight: bold} + .author,.createdate{font-size: 0.9em} """ conversion_options = { - 'comment' : description - , 'tags' : category - , 'publisher' : publisher - , 'language' : language + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + , 'linearize_tables' : True } preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] + keep_only_tags = [dict(attrs={'id':'jsn-mainbody'})] remove_tags = [ - dict(name=['link','object','embed','script','meta']) - ,dict(name='td', attrs={'class':'buttonheading'}) + dict(name=['link','object','embed','script','meta','base','iframe']) + ,dict(attrs={'class':'buttonheading'}) ] - keep_only_tags = [ - dict(attrs={'class':['contentpagetitle','author','createdate']}) - ,dict(name='p') - ] + remove_tags_after = dict(attrs={'class':'article_separator'}) remove_attributes = ['width','height'] def get_browser(self): @@ -48,25 +53,18 @@ class Nspm(BasicNewsRecipe): br.open(self.INDEX) return br - feeds = [(u'Nova srpska politicka misao', u'http://www.nspm.rs/feed/rss.html')] - - def print_version(self, url): - return url.replace('.html','/stampa.html') + feeds = [ + (u'Rubrike' , u'http://www.nspm.rs/rubrike/feed/rss.html') + ,(u'Debate' , u'http://www.nspm.rs/debate/feed/rss.html') + ,(u'Reci i misli' , u'http://www.nspm.rs/reci-i-misli/feed/rss.html') + ,(u'Samo smeh srbina spasava', u'http://www.nspm.rs/samo-smeh-srbina-spasava/feed/rss.html') + ,(u'Polemike' , u'http://www.nspm.rs/polemike/feed/rss.html') + ,(u'Prikazi' , u'http://www.nspm.rs/prikazi/feed/rss.html') + ,(u'Prenosimo' , u'http://www.nspm.rs/prenosimo/feed/rss.html') + ,(u'Hronika' , u'http://www.nspm.rs/tabela/hronika/feed/rss.html') + ] def preprocess_html(self, soup): for item in soup.body.findAll(style=True): del item['style'] - att = soup.find('a',attrs={'class':'contentpagetitle'}) - if att: - att.name = 'h1'; - del att['href'] - att2 = soup.find('td') - if att2: - att2.name = 'p'; - del att['valign'] - for pt in soup.findAll('img'): - brtag = Tag(soup,'br') - brtag2 = Tag(soup,'br') - pt.append(brtag) - pt.append(brtag2) - return soup + return self.adeify_images(soup) diff --git a/resources/recipes/nspm_int.recipe b/resources/recipes/nspm_int.recipe index 99c1707938..c6f94d904a 100644 --- a/resources/recipes/nspm_int.recipe +++ b/resources/recipes/nspm_int.recipe @@ -1,7 +1,5 @@ -#!/usr/bin/env python - __license__ = 'GPL v3' -__copyright__ = '2008, Darko Miletic ' +__copyright__ = '2008-2010, Darko Miletic ' ''' nspm.rs/nspm-in-english ''' @@ -11,29 +9,44 @@ from calibre.web.feeds.news import BasicNewsRecipe class Nspm_int(BasicNewsRecipe): title = 'NSPM in English' __author__ = 'Darko Miletic' - description = 'Magazine dedicated to political theory and sociological research' - oldest_article = 20 + description = 'Magazine dedicated to political theory and sociological research' + publisher = 'NSPM' + category = 'news, politics, Serbia' + oldest_article = 7 max_articles_per_feed = 100 - language = 'en' - no_stylesheets = True use_embedded_content = False - INDEX = 'http://www.nspm.rs/?alphabet=l' - cover_url = 'http://nspm.rs/templates/jsn_epic_pro/images/logol.jpg' - html2lrf_options = [ - '--comment', description - , '--base-font-size', '10' - , '--category', 'news, politics, Serbia, english' - , '--publisher', 'IIC NSPM' - ] + encoding = 'utf-8' + language = 'en' + delay = 2 + publication_type = 'magazine' + masthead_url = 'http://www.nspm.rs/templates/jsn_epic_pro/images/logol.jpg' + extra_css = """ + body{font-family: "Times New Roman", serif} + .article_description{font-family: Arial, sans-serif} + img{margin-top:0.5em; margin-bottom: 0.7em} + .author{color: #990000; font-weight: bold} + .author,.createdate{font-size: 0.9em} """ - def get_browser(self): - br = BasicNewsRecipe.get_browser() - br.open(self.INDEX) - return br + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + , 'linearize_tables' : True + } + keep_only_tags = [dict(attrs={'id':'jsn-mainbody'})] + remove_tags = [ + dict(name=['link','object','embed','script','meta','base','iframe']) + ,dict(attrs={'class':'buttonheading'}) + ] + remove_tags_after = dict(attrs={'class':'article_separator'}) + remove_attributes = ['width','height'] - keep_only_tags = [dict(name='div', attrs={'id':'jsn-mainbody'})] - remove_tags = [dict(name='div', attrs={'id':'yvComment' })] + feeds = [(u'Articles', u'http://www.nspm.rs/nspm-in-english/feed/rss.html')] - feeds = [ (u'NSPM in English', u'http://nspm.rs/nspm-in-english/feed/rss.html')] + def preprocess_html(self, soup): + for item in soup.body.findAll(style=True): + del item['style'] + return self.adeify_images(soup) \ No newline at end of file diff --git a/resources/recipes/rian_spa.recipe b/resources/recipes/rian_spa.recipe index 5d2115168b..2f6ecbcd98 100644 --- a/resources/recipes/rian_spa.recipe +++ b/resources/recipes/rian_spa.recipe @@ -1,13 +1,13 @@ __license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' +__copyright__ = '2009-2010, Darko Miletic ' ''' sp.rian.ru ''' from calibre.web.feeds.news import BasicNewsRecipe -class Ria_eng(BasicNewsRecipe): +class Ria_esp(BasicNewsRecipe): title = 'Ria Novosti' __author__ = 'Darko Miletic' description = 'Noticias desde Russia en Castellano' @@ -28,14 +28,10 @@ class Ria_eng(BasicNewsRecipe): } - keep_only_tags = [dict(name='div', attrs={'class':'articletxt'})] + keep_only_tags = [dict(name='div', attrs={'class':['mainnewsrubric','titleblock','mainnewstxt']})] remove_tags = [dict(name=['object','link','iframe','base'])] - remove_tags_after = dict(name='div',attrs={'class':'text'}) - feeds = [(u'Noticias', u'http://sp.rian.ru/export/rss2/index.xml')] - - def print_version(self, url): - return url.replace('.html','-print.html') + feeds = [(u'Noticias', u'http://rss.feedsportal.com/c/860/fe.ed/sp.rian.ru/export/rss2/index.xml')] diff --git a/resources/recipes/science_aas.recipe b/resources/recipes/science_aas.recipe index 092db8665e..d5f95c0b83 100644 --- a/resources/recipes/science_aas.recipe +++ b/resources/recipes/science_aas.recipe @@ -22,7 +22,7 @@ class ScienceAAS(BasicNewsRecipe): timefmt = ' [%A, %d %B, %Y]' needs_subscription = True LOGIN = 'http://www.sciencemag.org/cgi/login?uri=%2Findex.dtl' - + def get_browser(self): br = BasicNewsRecipe.get_browser() if self.username is not None and self.password is not None: diff --git a/resources/recipes/scientific_american.recipe b/resources/recipes/scientific_american.recipe index 15d82a2cb5..3970684788 100644 --- a/resources/recipes/scientific_american.recipe +++ b/resources/recipes/scientific_american.recipe @@ -14,7 +14,7 @@ class ScientificAmerican(BasicNewsRecipe): description = u'Popular science. Monthly magazine.' __author__ = 'Kovid Goyal and Sujata Raman' language = 'en' - + remove_javascript = True oldest_article = 30 max_articles_per_feed = 100 no_stylesheets = True @@ -31,11 +31,13 @@ class ScientificAmerican(BasicNewsRecipe): remove_tags_after = dict(id=['article']) remove_tags = [ dict(id=['sharetools', 'reddit']), - dict(name='script'), + #dict(name='script'), {'class':['float_left', 'atools']}, {"class": re.compile(r'also-in-this')}, dict(name='a',title = ["Get the Rest of the Article","Subscribe","Buy this Issue"]), dict(name = 'img',alt = ["Graphic - Get the Rest of the Article"]), + dict(name='div', attrs={'class':['commentbox']}), + dict(name='h2', attrs={'class':['discuss_h2']}), ] html2lrf_options = ['--base-font-size', '8'] @@ -110,3 +112,10 @@ class ScientificAmerican(BasicNewsRecipe): div.extract() return soup + + preprocess_regexps = [ + (re.compile(r'Already a Digital subscriber.*Now', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(r'If your institution has site license access, enter.*here.', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(r'to subscribe to our.*;.*\}', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(r'\)\(jQuery\);.*-->', re.DOTALL|re.IGNORECASE), lambda match: ''), + ] diff --git a/resources/recipes/skeptic.recipe b/resources/recipes/skeptic.recipe new file mode 100644 index 0000000000..4670345264 --- /dev/null +++ b/resources/recipes/skeptic.recipe @@ -0,0 +1,49 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class Skeptic(BasicNewsRecipe): + title = u'The Skeptic' + description = 'Discussions with leading experts and investigation of fringe science and paranormal claims.' + language = 'en' + __author__ = 'Starson17' + oldest_article = 31 + cover_url = 'http://www.skeptricks.com/images/Skeptic_Magazine.jpg' + remove_empty_feeds = True + remove_javascript = True + max_articles_per_feed = 50 + no_stylesheets = True + + remove_tags = [dict(name='div', attrs={'class':['Introduction','divider']}), + dict(name='div', attrs={'id':['feature', 'podcast']}), + dict(name='div', attrs={'id':re.compile(r'follow.*', re.DOTALL|re.IGNORECASE)}), + dict(name='hr'), + ] + + + feeds = [ + ('The Skeptic', 'http://www.skeptic.com/feed'), + ('E-Skeptic', 'http://www.skeptic.com/eskeptic'), + ('All-SkepticBlog', 'http://skepticblog.org/feed'), + ('Brian Dunning', 'http://skepticblog.org/author/dunning/feed/'), + ('Daniel Loxton', 'http://skepticblog.org/author/loxton/feed/'), + ('Kirsten Sanford', 'http://skepticblog.org/author/sanford/feed/'), + ('Mark Edward', 'http://skepticblog.org/author/edward/feed/'), + ('Michael Shermer', 'http://skepticblog.org/author/shermer/feed/'), + ('Phil Plait', 'http://skepticblog.org/author/plait/feed/'), + ('Ryan Johnson', 'http://skepticblog.org/author/johnson/feed/'), + ('Steven Novella', 'http://skepticblog.org/author/novella/feed/'), + ('Yau-Man Chan', 'http://skepticblog.org/author/chan/feed/'), + ] + + def get_browser(self): + br = BasicNewsRecipe.get_browser(self) + br.addheaders = [('Accept', 'text/html')] + return br + + 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/skeptical_enquirer.recipe b/resources/recipes/skeptical_enquirer.recipe new file mode 100644 index 0000000000..364c19c378 --- /dev/null +++ b/resources/recipes/skeptical_enquirer.recipe @@ -0,0 +1,50 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class TheSkepticalInquirer(BasicNewsRecipe): + title = u'The Skeptical Inquirer' + description = 'Investigation of fringe science and paranormal claims.' + language = 'en' + __author__ = 'Starson17' + oldest_article = 31 + cover_url = 'http://www.skeptricks.com/images/Skeptical_Inquirer_Magazine.jpg' + remove_empty_feeds = True + remove_javascript = True + max_articles_per_feed = 50 + no_stylesheets = True + + keep_only_tags = [dict(name='div', attrs={'id':['content', 'bio']})] + + remove_tags = [ + dict(name='div', attrs={'id':['socialMedia']}), + ] + + preprocess_regexps = [ + (re.compile(r'\.\(JavaScript must be enabled to view this email address\)', re.DOTALL|re.IGNORECASE), lambda match: ''), + ] + + def parse_index(self): + feeds = [] + for title, url in [("The Skeptical Inquirer", "http://www.csicop.org")]: + articles = self.make_links(url) + if articles: + feeds.append((title, articles)) + return feeds + + def make_links(self, url): + soup = self.index_to_soup(url) + title = '' + current_articles = [] + for item in soup.findAll(attrs={'class':['article-single bigger']}): + page_url = url + str(item.a["href"]) + title = str(item.a.string) + current_articles.append({'title': title, 'url': page_url, 'description':'', 'date':''}) + return current_articles + + 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/snopes.recipe b/resources/recipes/snopes.recipe new file mode 100644 index 0000000000..bfea0425d2 --- /dev/null +++ b/resources/recipes/snopes.recipe @@ -0,0 +1,46 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Starson17' +''' +snopes.com +''' +from calibre.web.feeds.recipes import BasicNewsRecipe + +class Snopes(BasicNewsRecipe): + title = 'Snopes' + __author__ = 'Starson17' + description = 'Urban Legends' + oldest_article = 21 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + encoding = 'utf8' + publisher = 'Snopes' + category = 'news, ' + language = 'en' + publication_type = 'newsportal' + remove_javascript = True + no_stylesheets = True + + conversion_options = { + 'comments' : description + ,'tags' : category + ,'language' : language + ,'publisher' : publisher + ,'linearize_tables': True + } + + keep_only_tags = [ + dict(name='h1'), + dict(name='div', attrs={'class':['article_text']}), + ] + + feeds = [ + ('Snopes', 'http://www.snopes.com/info/whatsnew.xml'), + ] + + extra_css = ''' + h1{font-family:Trebuchet MS,Bookman Old Style,Arial;color:#75b570} + h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:medium;} + p{font-family:Arial,Helvetica,sans-serif;font-size:small;} + body{font-family:Arial,Helvetica,sans-serif;font-size:small;} + ''' diff --git a/resources/recipes/standardmedia_ke.recipe b/resources/recipes/standardmedia_ke.recipe index bb5bf11623..b64f2d82f4 100644 --- a/resources/recipes/standardmedia_ke.recipe +++ b/resources/recipes/standardmedia_ke.recipe @@ -6,11 +6,10 @@ www.standardmedia.co.ke import os from calibre import strftime, __appname__, __version__ -import calibre.utils.PythonMagickWand as pw -from ctypes import byref from calibre.web.feeds.news import BasicNewsRecipe from calibre.constants import preferred_encoding +from calibre.utils.magick import Image class StandardMediaKeRecipe(BasicNewsRecipe): @@ -88,19 +87,9 @@ class StandardMediaKeRecipe(BasicNewsRecipe): self.cover_img_path = None def prepare_cover_image(self, path_to_image, out_path): - with pw.ImageMagick(): - img = pw.NewMagickWand() - if img < 0: - raise RuntimeError('Out of memory') - if not pw.MagickReadImage(img, path_to_image): - severity = pw.ExceptionType(0) - msg = pw.MagickGetException(img, byref(severity)) - raise IOError('Failed to read image from: %s: %s' - %(path_to_image, msg)) - if not pw.MagickWriteImage(img, out_path): - raise RuntimeError('Failed to save image to %s'%out_path) - pw.DestroyMagickWand(img) - + img = Image() + img.open(path_to_image) + img.save(out_path) def default_cover(self, cover_file): ''' diff --git a/resources/recipes/staradvertiser.recipe b/resources/recipes/staradvertiser.recipe index af806f4a87..c1ae48fbdc 100644 --- a/resources/recipes/staradvertiser.recipe +++ b/resources/recipes/staradvertiser.recipe @@ -30,10 +30,12 @@ class Starbulletin(BasicNewsRecipe): } remove_tags_before = dict(attrs={'id':'storyTitle'}) - remove_tags_after = dict(name='div', attrs={'class':'storytext'}) + remove_tags_after = dict(name='div',attrs={'class':'storytext'}) remove_tags = [ - dict(name=['object','link']) + dict(name=['object','link','script','span']) ,dict(attrs={'class':'insideStoryImage'}) + ,dict(attrs={'name':'fb_share'}) + ,dict(name='div',attrs={'class':'storytext'}) ] feeds = [ diff --git a/resources/recipes/tagesspiegel.recipe b/resources/recipes/tagesspiegel.recipe index e5d2600ae0..b355a72ebd 100644 --- a/resources/recipes/tagesspiegel.recipe +++ b/resources/recipes/tagesspiegel.recipe @@ -10,7 +10,7 @@ from calibre.web.feeds.news import BasicNewsRecipe class TagesspiegelRSS(BasicNewsRecipe): title = u'Der Tagesspiegel' - __author__ = 'ipaschke' + __author__ = 'Ingo Paschke' language = 'de' oldest_article = 7 max_articles_per_feed = 100 @@ -26,7 +26,7 @@ class TagesspiegelRSS(BasicNewsRecipe): .quote .cite{font-family:Georgia,Palatino,Palatino Linotype,FreeSerif,serif;font-size:xx-small} .hcf-inline-left{float:left;margin-right:15px;position:relative;} .hcf-inline-right{float:right;margin-right:15px;position:relative;} - .hcf-smart-box{font-family: Arial, Helvetica, sans-serif; font-size: xx-small; margin: 0px 15px 8px 0px; width: 300px;} + .hcf-smart-box{font-family: Arial, Helvetica, sans-serif; font-size: xx-small; margin: 0px 15px 8px 0px; width: 300px;} ''' no_stylesheets = True @@ -39,25 +39,30 @@ class TagesspiegelRSS(BasicNewsRecipe): dict(name='link'), dict(name='iframe'),dict(name='style'),dict(name='meta'),dict(name='button'), dict(name='div', attrs={'class':["hcf-jump-to-comments","hcf-clear","hcf-magnify hcf-media-control"] }), dict(name='span', attrs={'class':["hcf-mainsearch",] }), - dict(name='ul', attrs={'class':["hcf-tools"] }), + dict(name='ul', attrs={'class':["hcf-tools"]}), + dict(name='ul', attrs={'class': re.compile('hcf-services')}) ] def parse_index(self): soup = self.index_to_soup('http://www.tagesspiegel.de/zeitung/') def feed_title(div): - return ''.join(div.findAll(text=True, recursive=False)).strip() + return ''.join(div.findAll(text=True, recursive=False)).strip() if div is not None else None articles = {} key = None ans = [] + maincol = soup.find('div', attrs={'class':re.compile('hcf-main-col')}) - for div in soup.findAll(True, attrs={'class':['hcf-teaser', 'hcf-header', 'story headline']}): + for div in maincol.findAll(True, attrs={'class':['hcf-teaser', 'hcf-header', 'story headline']}): if div['class'] == 'hcf-header': - key = string.capwords(feed_title(div.em.a)) - articles[key] = [] - ans.append(key) + try: + key = string.capwords(feed_title(div.em.a)) + articles[key] = [] + ans.append(key) + except: + continue elif div['class'] == 'hcf-teaser' and getattr(div.contents[0],'name','') == 'h2': a = div.find('a', href=True) @@ -83,4 +88,3 @@ class TagesspiegelRSS(BasicNewsRecipe): ans = [(key, articles[key]) for key in ans if articles.has_key(key)] return ans - diff --git a/resources/recipes/theeconomictimes_india.recipe b/resources/recipes/theeconomictimes_india.recipe index 8756e08e66..5fef377f6e 100644 --- a/resources/recipes/theeconomictimes_india.recipe +++ b/resources/recipes/theeconomictimes_india.recipe @@ -1,13 +1,10 @@ -#!/usr/bin/env python - __license__ = 'GPL v3' -__copyright__ = '2008-2009, Darko Miletic ' +__copyright__ = '2008-2010, Darko Miletic ' ''' economictimes.indiatimes.com ''' from calibre.web.feeds.news import BasicNewsRecipe -from calibre.ebooks.BeautifulSoup import Tag class TheEconomicTimes(BasicNewsRecipe): title = 'The Economic Times India' @@ -21,18 +18,21 @@ class TheEconomicTimes(BasicNewsRecipe): use_embedded_content = False simultaneous_downloads = 1 encoding = 'utf-8' - lang = 'en-IN' - language = 'en_IN' - - - html2lrf_options = [ - '--comment', description - , '--category', category - , '--publisher', publisher - , '--ignore-tables' - ] - - html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\nlinearize_tables=True' + language = 'en_IN' + publication_type = 'newspaper' + masthead_url = 'http://economictimes.indiatimes.com/photo/2676871.cms' + extra_css = """ body{font-family: Arial,Helvetica,sans-serif} + .heading1{font-size: xx-large; font-weight: bold} """ + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + keep_only_tags = [dict(attrs={'class':['heading1','headingnext','Normal']})] + remove_tags = [dict(name=['object','link','embed','iframe','base','table','meta'])] feeds = [(u'All articles', u'http://economictimes.indiatimes.com/rssfeedsdefault.cms')] @@ -47,11 +47,6 @@ class TheEconomicTimes(BasicNewsRecipe): return rurl def preprocess_html(self, soup): - soup.html['xml:lang'] = self.lang - soup.html['lang'] = self.lang - mlang = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.lang)]) - mcharset = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset=utf-8")]) - soup.head.insert(0,mlang) - soup.head.insert(1,mcharset) + for item in soup.findAll(style=True): + del item['style'] return self.adeify_images(soup) - diff --git a/resources/recipes/tomshardware_de.recipe b/resources/recipes/tomshardware_de.recipe index aad3d60b17..287ea6ee12 100644 --- a/resources/recipes/tomshardware_de.recipe +++ b/resources/recipes/tomshardware_de.recipe @@ -50,12 +50,14 @@ class cdnet(BasicNewsRecipe): dict(name='div', attrs={'class':'greyBoxR clearfix'}), dict(name='div', attrs={'class':'greyBoxL clearfix'}), dict(name='div', attrs={'class':'greyBox clearfix'}), + dict(name='div', attrs={'class':'labelized'}), dict(id='')] #remove_tags_before = [dict(id='header-news-title')] - remove_tags_after = [dict(name='div', attrs={'class':'btmGreyTables'})] + remove_tags_after = [dict(name='div', attrs={'class':'labelized'})] #remove_tags_after = [dict(name='div', attrs={'class':'intelliTXT'})] feeds = [ ('tomshardware', 'http://www.tomshardware.com/de/feeds/rss2/tom-s-hardware-de,12-1.xml') ] + diff --git a/resources/recipes/vijesti.recipe b/resources/recipes/vijesti.recipe index 969b300486..c901755b78 100644 --- a/resources/recipes/vijesti.recipe +++ b/resources/recipes/vijesti.recipe @@ -36,7 +36,7 @@ class Vijesti(BasicNewsRecipe): keep_only_tags = [dict(name='div', attrs={'id':'mainnews'})] - remove_tags = [dict(name=['object','link','embed'])] + remove_tags = [dict(name=['object','link','embed','form'])] feeds = [(u'Sve vijesti', u'http://www.vijesti.me/rss.php' )] diff --git a/resources/recipes/welt.recipe b/resources/recipes/welt.recipe index 89e0d42c09..bd5af30a63 100644 --- a/resources/recipes/welt.recipe +++ b/resources/recipes/welt.recipe @@ -22,7 +22,7 @@ class weltDe(BasicNewsRecipe): remove_stylesheets = True remove_javascript = True encoding = 'utf-8' - html2epub_options = 'linearize_tables = True\nbase_font_size2=10' + html2epub_options = 'base_font_size=10' BasicNewsRecipe.summary_length = 100 @@ -83,10 +83,9 @@ class weltDe(BasicNewsRecipe): dict(name='div', attrs={'class':'articleOptions clear'}), dict(name='div', attrs={'class':'noPrint galleryIndex'}), dict(name='div', attrs={'class':'inlineBox inlineTagCloud'}), + dict(name='div', attrs={'class':'clear module imageGalleryBig bgColor1'}), dict(name='div', attrs={'class':'clear module writeComment bgColor1'}), dict(name='div', attrs={'class':'clear module textGallery bgColor1'}), - dict(name='div', attrs={'class':'clear module socialMedia bgColor1'}), - dict(name='div', attrs={'class':'clear module continuativeLinks'}), dict(name='div', attrs={'class':'moreArtH3'}), dict(name='div', attrs={'class':'jqmWindow'}), dict(name='div', attrs={'class':'clear gap4'}), @@ -99,7 +98,7 @@ class weltDe(BasicNewsRecipe): dict(name='div', attrs={'class':'headLineH3'}), dict(name='div', attrs={'class':'print'}), dict(name='div', attrs={'class':'clear menu'}), - dict(name='div', attrs={'class':'clear galleryContent'}), + dict(name='div', attrs={'class':'themenalarm'}), dict(name='p', attrs={'class':'jump'}), dict(name='a', attrs={'class':'commentLink'}), dict(name='h2', attrs={'class':'jumpHeading'}), @@ -110,7 +109,7 @@ class weltDe(BasicNewsRecipe): dict(name='table', attrs={'class':'textGallery'}), dict(name='li', attrs={'class':'active'})] - remove_tags_after = [dict(name='div', attrs={'class':'clear departmentLine'})] + remove_tags_after = [dict(name='div', attrs={'class':'themenalarm'})] extra_css = ''' h2{font-family:Arial,Helvetica,sans-serif; font-size: x-small; color: #003399;} @@ -122,6 +121,7 @@ class weltDe(BasicNewsRecipe): .photo {font-family:Arial,Helvetica,sans-serif; font-size: x-small; color: #666666;} ''' feeds = [ ('Politik', 'http://welt.de/politik/?service=Rss'), + ('Deutsche Dinge', 'http://www.welt.de/deutsche-dinge/?service=Rss'), ('Wirtschaft', 'http://welt.de/wirtschaft/?service=Rss'), ('Finanzen', 'http://welt.de/finanzen/?service=Rss'), ('Sport', 'http://welt.de/sport/?service=Rss'), @@ -137,3 +137,4 @@ class weltDe(BasicNewsRecipe): def print_version(self, url): return url.replace ('.html', '.html?print=true') + diff --git a/resources/recipes/wsj_free.recipe b/resources/recipes/wsj_free.recipe deleted file mode 100644 index e29bfe3dde..0000000000 --- a/resources/recipes/wsj_free.recipe +++ /dev/null @@ -1,314 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' - -''' -online.wsj.com -''' -import re -from calibre.web.feeds.recipes import BasicNewsRecipe -from calibre.ebooks.BeautifulSoup import Tag, NavigableString -from datetime import timedelta, date - -class WSJ(BasicNewsRecipe): - # formatting adapted from original recipe by Kovid Goyal and Sujata Raman - title = u'Wall Street Journal (free)' - __author__ = 'Nick Redding' - language = 'en' - description = ('All the free content from the Wall Street Journal (business, financial and political news)') - - no_stylesheets = True - timefmt = ' [%b %d]' - - # customization notes: delete sections you are not interested in - # set omit_paid_content to False if you want the paid content article snippets - # set oldest_article to the maximum number of days back from today to include articles - sectionlist = [ - ['/home-page','Front Page'], - ['/public/page/news-opinion-commentary.html','Commentary'], - ['/public/page/news-global-world.html','World News'], - ['/public/page/news-world-business.html','US News'], - ['/public/page/news-business-us.html','Business'], - ['/public/page/news-financial-markets-stock.html','Markets'], - ['/public/page/news-tech-technology.html','Technology'], - ['/public/page/news-personal-finance.html','Personal Finnce'], - ['/public/page/news-lifestyle-arts-entertainment.html','Life & Style'], - ['/public/page/news-real-estate-homes.html','Real Estate'], - ['/public/page/news-career-jobs.html','Careers'], - ['/public/page/news-small-business-marketing.html','Small Business'] - ] - oldest_article = 2 - omit_paid_content = True - - extra_css = '''h1{font-size:large; font-family:Times,serif;} - h2{font-family:Times,serif; font-size:small; font-style:italic;} - .subhead{font-family:Times,serif; font-size:small; font-style:italic;} - .insettipUnit {font-family:Times,serif;font-size:xx-small;} - .targetCaption{font-size:x-small; font-family:Times,serif; font-style:italic; margin-top: 0.25em;} - .article{font-family:Times,serif; font-size:x-small;} - .tagline { font-size:xx-small;} - .dateStamp {font-family:Times,serif;} - h3{font-family:Times,serif; font-size:xx-small;} - .byline {font-family:Times,serif; font-size:xx-small; list-style-type: none;} - .metadataType-articleCredits {list-style-type: none;} - h6{font-family:Times,serif; font-size:small; font-style:italic;} - .paperLocation{font-size:xx-small;}''' - - - remove_tags_before = dict({'class':re.compile('^articleHeadlineBox')}) - remove_tags = [ dict({'id':re.compile('^articleTabs_tab_')}), - #dict(id=["articleTabs_tab_article", "articleTabs_tab_comments", - # "articleTabs_tab_interactive","articleTabs_tab_video", - # "articleTabs_tab_map","articleTabs_tab_slideshow"]), - {'class': ['footer_columns','network','insetCol3wide','interactive','video','slideshow','map', - 'insettip','insetClose','more_in', "insetContent", - # 'articleTools_bottom','articleTools_bottom mjArticleTools', - 'aTools', 'tooltip', - 'adSummary', 'nav-inline','insetFullBracket']}, - dict({'class':re.compile('^articleTools_bottom')}), - dict(rel='shortcut icon') - ] - remove_tags_after = [dict(id="article_story_body"), {'class':"article story"}] - - def get_browser(self): - br = BasicNewsRecipe.get_browser() - return br - - - def preprocess_html(self,soup): - - def decode_us_date(datestr): - udate = datestr.strip().lower().split() - m = ['january','february','march','april','may','june','july','august','september','october','november','december'].index(udate[0])+1 - d = int(udate[1]) - y = int(udate[2]) - return date(y,m,d) - - # check if article is paid content - if self.omit_paid_content: - divtags = soup.findAll('div','tooltip') - if divtags: - for divtag in divtags: - if divtag.find(text="Subscriber Content"): - return None - - # check if article is too old - datetag = soup.find('li',attrs={'class' : re.compile("^dateStamp")}) - if datetag: - dateline_string = self.tag_to_string(datetag,False) - date_items = dateline_string.split(',') - datestring = date_items[0]+date_items[1] - article_date = decode_us_date(datestring) - earliest_date = date.today() - timedelta(days=self.oldest_article) - if article_date < earliest_date: - self.log("Skipping article dated %s" % datestring) - return None - datetag.parent.extract() - - # place dateline in article heading - - bylinetag = soup.find('h3','byline') - if bylinetag: - h3bylinetag = bylinetag - else: - bylinetag = soup.find('li','byline') - if bylinetag: - h3bylinetag = bylinetag.h3 - if not h3bylinetag: - h3bylinetag = bylinetag - bylinetag = bylinetag.parent - if bylinetag: - if h3bylinetag.a: - bylinetext = 'By '+self.tag_to_string(h3bylinetag.a,False) - else: - bylinetext = self.tag_to_string(h3bylinetag,False) - h3byline = Tag(soup,'h3',[('class','byline')]) - if bylinetext.isspace() or (bylinetext == ''): - h3byline.insert(0,NavigableString(date_items[0]+','+date_items[1])) - else: - h3byline.insert(0,NavigableString(bylinetext+u'\u2014'+date_items[0]+','+date_items[1])) - bylinetag.replaceWith(h3byline) - else: - headlinetag = soup.find('div',attrs={'class' : re.compile("^articleHeadlineBox")}) - if headlinetag: - dateline = Tag(soup,'h3', [('class','byline')]) - dateline.insert(0,NavigableString(date_items[0]+','+date_items[1])) - headlinetag.insert(len(headlinetag),dateline) - else: # if no date tag, don't process this page--it's not a news item - return None - # This gets rid of the annoying superfluous bullet symbol preceding columnist bylines - ultag = soup.find('ul',attrs={'class' : 'cMetadata metadataType-articleCredits'}) - if ultag: - a = ultag.h3 - if a: - ultag.replaceWith(a) - return soup - - def parse_index(self): - - articles = {} - key = None - ans = [] - - def parse_index_page(page_name,page_title): - - def article_title(tag): - atag = tag.find('h2') # title is usually in an h2 tag - if not atag: # if not, get text from the a tag - atag = tag.find('a',href=True) - if not atag: - return '' - t = self.tag_to_string(atag,False) - if t == '': - # sometimes the title is in the second a tag - atag.extract() - atag = tag.find('a',href=True) - if not atag: - return '' - return self.tag_to_string(atag,False) - return t - return self.tag_to_string(atag,False) - - def article_author(tag): - atag = tag.find('strong') # author is usually in a strong tag - if not atag: - atag = tag.find('h4') # if not, look for an h4 tag - if not atag: - return '' - return self.tag_to_string(atag,False) - - def article_summary(tag): - atag = tag.find('p') - if not atag: - return '' - subtag = atag.strong - if subtag: - subtag.extract() - return self.tag_to_string(atag,False) - - def article_url(tag): - atag = tag.find('a',href=True) - if not atag: - return '' - url = re.sub(r'\?.*', '', atag['href']) - return url - - def handle_section_name(tag): - # turns a tag into a section name with special processing - # for Wat's News, U.S., World & U.S. and World - s = self.tag_to_string(tag,False) - if ("What" in s) and ("News" in s): - s = "What's News" - elif (s == "U.S.") or (s == "World & U.S.") or (s == "World"): - s = s + " News" - return s - - - - mainurl = 'http://online.wsj.com' - pageurl = mainurl+page_name - #self.log("Page url %s" % pageurl) - soup = self.index_to_soup(pageurl) - # Find each instance of div with class including "headlineSummary" - for divtag in soup.findAll('div',attrs={'class' : re.compile("^headlineSummary")}): - # divtag contains all article data as ul's and li's - # first, check if there is an h3 tag which provides a section name - stag = divtag.find('h3') - if stag: - 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' - else: - section_name = handle_section_name(stag) - else: - section_name = "What's News" - #self.log("div Section %s" % section_name) - # find each top-level ul in the div - # we don't restrict to class = newsItem because the section_name - # sometimes changes via a ul tag inside the div - for ultag in divtag.findAll('ul',recursive=False): - stag = ultag.find('h3') - if stag: - if stag.parent.name == 'ul': - # section name has changed - section_name = handle_section_name(stag) - #self.log("ul Section %s" % section_name) - # delete the h3 tag so it doesn't get in the way - stag.extract() - # find each top level li in the ul - for litag in ultag.findAll('li',recursive=False): - stag = litag.find('h3') - if stag: - # section name has changed - section_name = handle_section_name(stag) - #self.log("li Section %s" % section_name) - # delete the h3 tag so it doesn't get in the way - stag.extract() - # if there is a ul tag inside the li it is superfluous; - # it is probably a list of related articles - utag = litag.find('ul') - if utag: - utag.extract() - # now skip paid subscriber articles if desired - subscriber_tag = litag.find(text="Subscriber Content") - if subscriber_tag: - if self.omit_paid_content: - continue - # delete the tip div so it doesn't get in the way - tiptag = litag.find("div", { "class" : "tipTargetBox" }) - if tiptag: - tiptag.extract() - h1tag = litag.h1 - # if there's an h1 tag, it's parent is a div which should replace - # the li tag for the analysis - if h1tag: - litag = h1tag.parent - h5tag = litag.h5 - if h5tag: - # section mame has changed - section_name = self.tag_to_string(h5tag,False) - #self.log("h5 Section %s" % section_name) - # delete the h5 tag so it doesn't get in the way - h5tag.extract() - url = article_url(litag) - if url == '': - continue - if url.startswith("/article"): - url = mainurl+url - if not url.startswith("http://online.wsj.com"): - continue - if not url.endswith(".html"): - continue - if 'video' in url: - continue - title = article_title(litag) - if title == '': - continue - #self.log("URL %s" % url) - #self.log("Title %s" % title) - pubdate = '' - #self.log("Date %s" % pubdate) - author = article_author(litag) - if author == '': - author = section_name - elif author == section_name: - author = '' - else: - author = section_name+': '+author - #if not author == '': - # self.log("Author %s" % author) - description = article_summary(litag) - #if not description == '': - # self.log("Description %s" % description) - if not articles.has_key(page_title): - articles[page_title] = [] - articles[page_title].append(dict(title=title,url=url,date=pubdate,description=description,author=author,content='')) - - - for page_name,page_title in self.sectionlist: - parse_index_page(page_name,page_title) - ans.append(page_title) - - ans = [(key, articles[key]) for key in ans if articles.has_key(key)] - return ans diff --git a/resources/recipes/yahoo_news.recipe b/resources/recipes/yahoo_news.recipe new file mode 100644 index 0000000000..7cef78013c --- /dev/null +++ b/resources/recipes/yahoo_news.recipe @@ -0,0 +1,34 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class YahooNews(BasicNewsRecipe): + title = 'Yahoo News' + __author__ = 'Starson17' + description = 'Yahoo-Science' + language = 'en' + use_embedded_content= False + no_stylesheets = True + linearize_tables = True + oldest_article = 24 + remove_javascript = True + remove_empty_feeds = True + max_articles_per_feed = 10 + + feeds = [#There are dozens of other feeds at http://news.yahoo.com/rss + (u'Top Stories', u'http://rss.news.yahoo.com/rss/topstories'), + (u'Science', u'http://rss.news.yahoo.com/rss/science') + ] + + keep_only_tags = [dict(name='div', attrs={'id':'yn-story'})] + + remove_tags = [dict(name='div', attrs={'class':['hd', 'ft', 'yn-share-social']}), + dict(name='div', attrs={'id':['yn-story-minor-media']})] + + preprocess_regexps = [(re.compile(r'Play Video', re.DOTALL),lambda match: '')] + + 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/zeitde.recipe b/resources/recipes/zeitde.recipe index df9c647f10..7f2ca0f6b2 100644 --- a/resources/recipes/zeitde.recipe +++ b/resources/recipes/zeitde.recipe @@ -6,88 +6,105 @@ Fetch Die Zeit. ''' from calibre.web.feeds.news import BasicNewsRecipe - +from calibre.ebooks.BeautifulSoup import Tag class ZeitDe(BasicNewsRecipe): - title = 'Die Zeit Nachrichten' - description = 'Die Zeit - Online Nachrichten' + title = 'ZEIT Online' + description = 'ZEIT Online' language = 'de' lang = 'de_DE' - __author__ = 'Martin Pitt and Sujata Raman' + __author__ = 'Martin Pitt, Sujata Raman and Ingo Paschke' use_embedded_content = False max_articles_per_feed = 40 remove_empty_feeds = True no_stylesheets = True + no_javascript = True encoding = 'utf-8' - feeds = [ + ('Seite 1', 'http://newsfeed.zeit.de/index_xml'), ('Politik', 'http://newsfeed.zeit.de/politik/index'), ('Wirtschaft', 'http://newsfeed.zeit.de/wirtschaft/index'), ('Meinung', 'http://newsfeed.zeit.de/meinung/index'), ('Gesellschaft', 'http://newsfeed.zeit.de/gesellschaft/index'), ('Kultur', 'http://newsfeed.zeit.de/kultur/index'), ('Wissen', 'http://newsfeed.zeit.de/wissen/index'), + ('Digital', 'http://newsfeed.zeit.de/digital/index'), + ('Studium', 'http://newsfeed.zeit.de/studium/index'), + ('Karriere', 'http://newsfeed.zeit.de/karriere/index'), + ('Lebensart', 'http://newsfeed.zeit.de/lebensart/index'), + ('Reisen', 'http://newsfeed.zeit.de/reisen/index'), + ('Auto', 'http://newsfeed.zeit.de/auto/index'), + ('Sport', 'http://newsfeed.zeit.de/sport/index'), ] extra_css = ''' .supertitle{color:#990000; font-family:Arial,Helvetica,sans-serif;font-size:xx-small;} - .excerpt{font-family:Georgia,Palatino,Palatino Linotype,FreeSerif,serif;font-size:large;} - .title{font-family:Arial,Helvetica,sans-serif;font-size:large} + .excerpt{font-family:Georgia,Palatino,Palatino Linotype,FreeSerif,serif;font-size:small;} + .title{font-family:Arial,Helvetica,sans-serif;font-size:large;clear:right;} .caption{color:#666666; font-family:Arial,Helvetica,sans-serif;font-size:xx-small;} .copyright{color:#666666; font-family:Arial,Helvetica,sans-serif;font-size:xx-small;} .article{font-family:Georgia,Palatino,Palatino Linotype,FreeSerif,serif;font-size:x-small} + .quote{font-family:Georgia,Palatino,Palatino Linotype,FreeSerif,serif;font-size:x-small} + .quote .cite{font-family:Georgia,Palatino,Palatino Linotype,FreeSerif,serif;font-size:xx-small} .headline iconportrait_inline{font-family:Arial,Helvetica,sans-serif;font-size:x-small} + .inline{float:left;margin-top:0;margin-right:15px;position:relative;width:180px; } + img.inline{float:none} + .intertitle{font-family:Georgia,Palatino,Palatino Linotype,FreeSerif,serif;font-size:x-small;font-weight:700} + .ebinfobox{font-family:Georgia,Palatino,Palatino Linotype,FreeSerif,serif;font-size:xx-small;list-style-type:none;float:right;margin-top:0;border-left-style:solid;border-left-width:1px;padding-left:10px;} + .infobox {border-style: solid; border-width: 1px;padding:8px;} + .infobox dt {font-weight:700;} ''' #filter_regexps = [r'ad.de.doubleclick.net/'] keep_only_tags = [ dict(name='div', attrs={'class':["article"]}) , + dict(name='ul', attrs={'class':["tools"]}) , ] remove_tags = [ - dict(name='link'), dict(name='iframe'),dict(name='style'), - dict(name='div', attrs={'class':["pagination block","pagenav","inline link"] }), - dict(name='div', attrs={'id':["place_5","place_4"]}) + dict(name='link'), dict(name='iframe'),dict(name='style'),dict(name='meta'), + dict(name='div', attrs={'class':["pagination block","pagenav","inline link", "copyright"] }), + dict(name='p', attrs={'class':["ressortbacklink", "copyright"] }), + dict(name='div', attrs={'id':["place_5","place_4","comments"]}) ] - + remove_attributes = ['style', 'font'] def get_article_url(self, article): - - ans = article.get('guid',None) - - try: - self.log('Looking for full story link in', ans) - soup = self.index_to_soup(ans) - x = soup.find(text="Auf einer Seite lesen") - - if x is not None: - - a = x.parent - if a and a.has_key('href'): - ans = a['href'] - self.log('Found full story link', ans) - except: - pass + ans = article.get('link',None) + ans += "?page=all" if 'video' in ans or 'quiz' in ans : - ans = None return ans - + def get_cover_url(self): + try: + inhalt = self.index_to_soup('http://www.zeit.de/inhalt') + return inhalt.find('div', attrs={'class':'singlearchive clearfix'}).img['src'].replace('icon_','') + except: + return 'http://images.zeit.de/bilder/titelseiten_zeit/1946/001_001.jpg' def preprocess_html(self, soup): soup.html['xml:lang'] = self.lang soup.html['lang'] = self.lang mtag = '' soup.head.insert(0,mtag) - + title = soup.find('h2', attrs={'class':'title'}) + if title is None: + print "no title" + return soup + info = Tag(soup,'ul',[('class','ebinfobox')]) + tools = soup.find('ul', attrs={'class':'tools'}) + #author = tools.find('li','author first') + for tag in ['author first', 'date', 'date first', 'author', 'source']: + line = tools.find('li', tag) + if line: + info.insert(0,line) + title.parent.insert(0,info) + tools.extract() return soup - #def print_version(self,url): - # return url.replace('http://www.zeit.de/', 'http://images.zeit.de/text/').replace('?from=rss', '') - diff --git a/resources/templates/rtf.xsl b/resources/templates/rtf.xsl index c3162b0c15..bf016efaaf 100644 --- a/resources/templates/rtf.xsl +++ b/resources/templates/rtf.xsl @@ -262,7 +262,7 @@ line-height: - + pt; @@ -412,6 +412,10 @@ page-break-after:always + + + + diff --git a/setup/build_environment.py b/setup/build_environment.py index f4989d5d55..b29ee88cc3 100644 --- a/setup/build_environment.py +++ b/setup/build_environment.py @@ -115,7 +115,6 @@ if iswindows: poppler_lib_dirs = consolidate('POPPLER_LIB_DIR', sw_lib_dir) popplerqt4_lib_dirs = poppler_lib_dirs poppler_libs = ['poppler'] - popplerqt4_libs = poppler_libs + ['QtCore4', 'QtGui4'] magick_inc_dirs = [os.path.join(prefix, 'build', 'ImageMagick-6.5.6')] magick_lib_dirs = [os.path.join(magick_inc_dirs[0], 'VisualMagick', 'lib')] magick_libs = ['CORE_RL_wand_', 'CORE_RL_magick_'] @@ -129,8 +128,8 @@ elif isosx: popplerqt4_inc_dirs = poppler_inc_dirs + [poppler_inc_dirs[0]+'/qt4'] poppler_lib_dirs = consolidate('POPPLER_LIB_DIR', '/sw/lib') + poppler_libs = ['poppler'] popplerqt4_lib_dirs = poppler_lib_dirs - poppler_libs = popplerqt4_libs = ['poppler'] podofo_inc = '/sw/podofo' podofo_lib = '/sw/lib' magick_inc_dirs = consolidate('MAGICK_INC', @@ -162,9 +161,6 @@ else: poppler_libs = pkgconfig_libs('poppler', '', '') if not poppler_libs: poppler_libs = ['poppler'] - popplerqt4_libs = pkgconfig_libs('poppler-qt4', '', '') - if not popplerqt4_libs: - popplerqt4_libs = ['poppler-qt4', 'poppler'] magick_libs = pkgconfig_libs('MagickWand', '', '') if not magick_libs: magick_libs = ['MagickWand', 'MagickCore'] diff --git a/setup/extensions.py b/setup/extensions.py index 5251737101..df6f0ffbcd 100644 --- a/setup/extensions.py +++ b/setup/extensions.py @@ -72,6 +72,13 @@ extensions = [ lib_dirs=chmlib_lib_dirs, cflags=["-D__PYTHON__"]), + Extension('magick', + ['calibre/utils/magick/magick.c'], + headers=['calibre/utils/magick/magick_constants.h'], + libraries=magick_libs, + lib_dirs=magick_lib_dirs, + inc_dirs=magick_inc_dirs + ), Extension('pdfreflow', reflow_sources, diff --git a/setup/installer/cx_Freeze/HISTORY.txt b/setup/installer/cx_Freeze/HISTORY.txt deleted file mode 100644 index acf9ad0dfe..0000000000 --- a/setup/installer/cx_Freeze/HISTORY.txt +++ /dev/null @@ -1,244 +0,0 @@ -Changes from 4.0 to 4.0.1 - 1) Added support for Python 2.6. On Windows a manifest file is now required - because of the switch to using the new Microsoft C runtime. - 2) Ensure that hooks are run for builtin modules. - -Changes from 4.0b1 to 4.0 - 1) Added support for copying files to the target directory. - 2) Added support for a hook that runs when a module is missing. - 3) Added support for binary path includes as well as excludes; use sequences - rather than dictionaries as a more convenient API; exclude the standard - locations for 32-bit and 64-bit libaries in multi-architecture systems. - 4) Added support for searching zip files (egg files) for modules. - 5) Added support for handling system exit exceptions similarly to what Python - does itself as requested by Sylvain. - 6) Added code to wait for threads to shut down like the normal Python - interpreter does. Thanks to Mariano Disanzo for discovering this - discrepancy. - 7) Hooks added or modified based on feedback from many people. - 8) Don't include the version name in the display name of the MSI. - 9) Use the OS dependent path normalization routines rather than simply use the - lowercase value as on Unix case is important; thanks to Artie Eoff for - pointing this out. -10) Include a version attribute in the cx_Freeze package and display it in the - output for the --version option to the script. -11) Include build instructions as requested by Norbert Sebok. -12) Add support for copying files when modules are included which require data - files to operate properly; add support for copying the necessary files for - the Tkinter and matplotlib modules. -13) Handle deferred imports recursively as needed; ensure that from lists do - not automatically indicate that they are part of the module or the deferred - import processing doesn't actually work! -14) Handle the situation where a module imports everything from a package and - the __all__ variable has been defined but the package has not actually - imported everything in the __all__ variable during initialization. -15) Modified license text to more closely match the Python Software Foundation - license as was intended. -16) Added sample script for freezing an application using matplotlib. -17) Renamed freeze to cxfreeze to avoid conflict with another package that uses - that executable as requested by Siegfried Gevatter. - -Changes from 3.0.3 to 4.0b1 - 1) Added support for placing modules in library.zip or in a separate zip file - for each executable that is produced. - 2) Added support for copying binary dependent files (DLLs and shared - libraries) - 3) Added support for including all submodules in a package - 4) Added support for including icons in Windows executables - 5) Added support for constants module which can be used for determining - certain build constants at runtime - 6) Added support for relative imports available in Python 2.5 and up - 7) Added support for building Windows installers (Python 2.5 and up) and - RPM packages - 8) Added support for distutils configuration scripts - 9) Added support for hooks which can force inclusion or exclusion of modules - when certain modules are included -10) Added documentation and samples -11) Added setup.py for building the cx_Freeze package instead of a script - used to build only the frozen bases -12) FreezePython renamed to a script called freeze in the Python distribution -13) On Linux and other platforms that support it set LD_RUN_PATH to include - the directory in which the executable is located - -Changes from 3.0.2 to 3.0.3 - 1) In Common.c, used MAXPATHLEN defined in the Python OS independent include - file rather than the PATH_MAX define which is OS dependent and is not - available on IRIX as noted by Andrew Jones. - 2) In the initscript ConsoleSetLibPath.py, added lines from initscript - Console.py that should have been there since the only difference between - that script and this one is the automatic re-execution of the executable. - 3) Added an explicit "import encodings" to the initscripts in order to handle - Unicode encodings a little better. Thanks to Ralf Schmitt for pointing out - the problem and its solution. - 4) Generated a meaningful name for the extension loader script so that it is - clear which particular extension module is being loaded when an exception - is being raised. - 5) In MakeFrozenBases.py, use distutils to figure out a few more - platform-dependent linker flags as suggested by Ralf Schmitt. - -Changes from 3.0.1 to 3.0.2 - 1) Add support for compressing the byte code in the zip files that are - produced. - 2) Add better support for the win32com package as requested by Barry Scott. - 3) Prevent deletion of target file if it happens to be identical to the - source file. - 4) Include additional flags for local modifications to a Python build as - suggested by Benjamin Rutt. - 5) Expanded instructions for building cx_Freeze from source based on a - suggestion from Gregg Lind. - 6) Fix typo in help string. - -Changes from 3.0 to 3.0.1 - 1) Added option --default-path which is used to specify the path used when - finding modules. This is particularly useful when performing cross - compilations (such as for building a frozen executable for Windows CE). - 2) Added option --shared-lib-name which can be used to specify the name of - the shared library (DLL) implementing the Python runtime that is required - for the frozen executable to work. This option is also particularly useful - when cross compiling since the normal method for determining this - information cannot be used. - 3) Added option --zip-include which allows for additional files to be added - to the zip file that contains the modules that implement the Python - script. Thanks to Barray Warsaw for providing the initial patch. - 4) Added support for handling read-only files properly. Thanks to Peter - Grayson for pointing out the problem and providing a solution. - 5) Added support for a frozen executable to be a symbolic link. Thanks to - Robert Kiendl for providing the initial patch. - 6) Enhanced the support for running a frozen executable that uses an existing - Python installation to locate modules it requires. This is primarily of - use for embedding Python where the interface is C but the ability to run - from source is still desired. - 7) Modified the documentation to indicate that building from source on - Windows currently requires the mingw compiler (http://www.mingw.org). - 8) Workaround the problem in Python 2.3 (fixed in Python 2.4) which causes a - broken module to be left in sys.modules if an ImportError takes place - during the execution of the code in that module. Thanks to Roger Binns - for pointing this out. - -Changes from 3.0 beta3 to 3.0 - 1) Ensure that ldd is only run on extension modules. - 2) Allow for using a compiler other than gcc for building the frozen base - executables by setting the environment variable CC. - 3) Ensure that the import lock is not held while executing the main script; - otherwise, attempts to import a module within a thread will hang that - thread as noted by Roger Binns. - 4) Added support for replacing the paths in all frozen modules with something - else (so that for example the path of the machine on which the freezing - was done is not displayed in tracebacks) - -Changes from 3.0 beta2 to 3.0 beta3 - 1) Explicitly include the warnings module so that at runtime warnings are - suppressed as when running Python normally. - 2) Improve the extension loader so that an ImportError is raised when the - dynamic module is not located; otherwise an error about missing attributes - is raised instead. - 3) Extension loaders are only created when copying dependencies since the - normal module should be loadable in the situation where a Python - installation is available. - 4) Added support for Python 2.4. - 5) Fixed the dependency checking for wxPython to be a little more - intelligent. - -Changes from 3.0 beta1 to 3.0 beta2 - 1) Fix issues with locating the initscripts and bases relative to the - directory in which the executable was started. - 2) Added new base executable ConsoleKeepPath which is used when an existing - Python installation is required (such as for FreezePython itself). - 3) Forced the existence of a Python installation to be ignored when using the - standard Console base executable. - 4) Remove the existing file when copying dependent files; otherwise, an error - is raised when attempting to overwrite read-only files. - 5) Added option -O (or -OO) to FreezePython to set the optimization used when - generating bytecode. - -Changes from 2.2 to 3.0 beta1 - 1) cx_Freeze now requires Python 2.3 or higher since it takes advantage of - the ability of Python 2.3 and higher to import modules from zip files. - This makes the freezing process considerably simpler and also allows for - the execution of multiple frozen packages (such as found in COM servers or - shared libraries) without requiring modification to the Python modules. - 2) All external dependencies have been removed. cx_Freeze now only requires - a standard Python distribution to do its work. - 3) Added the ability to define the initialization scripts that cx_Freeze uses - on startup of the frozen program. Previously, these scripts were written - in C and could not easily be changed; now they are written in Python and - can be found in the initscripts directory (and chosen with the - new --init-script option to FreezePython). - 4) The base executable ConsoleSetLibPath has been removed and replaced with - the initscript ConsoleSetLibPath. - 5) Removed base executables for Win32 services and Win32 COM servers. This - functionality will be restored in the future but it is not currently in a - state that is ready for release. If this functionality is required, please - use py2exe or contact me for my work in progress. - 6) The attribute sys.frozen is now set so that more recent pywin32 modules - work as expected when frozen. - 7) Added option --include-path to FreezePython to allow overriding of - sys.path without modifying the environment variable PYTHONPATH. - 8) Added option --target-dir/--install-dir to specify the directory in which - the frozen executable and its dependencies will be placed. - 9) Removed the option --shared-lib since it was used for building shared - libraries and can be managed with the initscript SharedLib.py. -10) MakeFrozenBases.py now checks the platform specific include directory as - requested by Michael Partridge. - - -Changes from 2.1 to 2.2 - 1) Add option (--ext-list-file) to FreezePython to write the list of - extensions copied to the installation directory to a file. This option is - useful in cases where multiple builds are performed into the same - installation directory. - 2) Pass the arguments on the command line through to Win32 GUI applications. - Thanks to Michael Porter for pointing this out. - 3) Link directly against the python DLL when building the frozen bases on - Windows, thus eliminating the need for building an import library. - 4) Force sys.path to include the directory in which the script to be frozen - is found. - 5) Make sure that the installation directory exists before attempting to - copy the target binary into it. - 6) The Win32GUI base has been modified to display fatal errors in message - boxes, rather than printing errors to stderr, since on Windows the - standard file IO handles are all closed. - -Changes from 2.0 to 2.1 - 1) Remove dependency on Python 2.2. Thanks to Paul Moore for not only - pointing it out but providing patches. - 2) Set up the list of frozen modules in advance, rather than doing it after - Python is initialized so that implicit imports done by Python can be - satisfied. The bug in Python 2.3 that demonstrated this issue has been - fixed in the first release candidate. Thanks to Thomas Heller for pointing - out the obvious in this instance! - 3) Added additional base executable (ConsoleSetLibPath) to support setting - the LD_LIBRARY_PATH variable on Unix platforms and restarting the - executable to put the new setting into effect. This is primarily of use - in distributing wxPython applications on Unix where the shared library - has an embedded RPATH value which can cause problems. - 4) Small improvements of documentation based on feedback from several people. - 5) Print information about the files written or copied during the freezing - process. - 6) Do not copy extensions when freezing if the path is being overridden since - it is expected that a full Python installation is available to the target - users of the frozen binary. - 7) Provide meaningful error message when the wxPython library cannot be - found during the freezing process. - -Changes from 1.1 to 2.0 - 1) Added support for in process (DLL) COM servers using PythonCOM. - 2) Ensured that the frozen flag is set prior to determining the full path for - the program in order to avoid warnings about Python not being found on - some platforms. - 3) Added include file and resource file to the source tree to avoid the - dependency on the Wine message compiler for Win32 builds. - 4) Dropped the option --copy-extensions; this now happens automatically since - the resulting binary is useless without them. - 5) Added a sample for building a Win32 service. - 6) Make use of improved modules from Python 2.3 (which function under 2.2) - -Changes from 1.0 to 1.1 - 1) Fixed import error with C extensions in packages; thanks to Thomas Heller - for pointing out the solution to this problem. - 2) Added options to FreezePython to allow for the inclusion of modules which - will not be found by the module finder (--include-modules) and the - exclusion of modules which will be found by the module finder but should - not be included (--exclude-modules). - 3) Fixed typo in README.txt. - diff --git a/setup/installer/cx_Freeze/LICENSE.txt b/setup/installer/cx_Freeze/LICENSE.txt deleted file mode 100644 index cb9ee05a8a..0000000000 --- a/setup/installer/cx_Freeze/LICENSE.txt +++ /dev/null @@ -1,53 +0,0 @@ -Copyright © 2007-2008, Colt Engineering, Edmonton, Alberta, Canada. -Copyright © 2001-2006, Computronix (Canada) Ltd., Edmonton, Alberta, Canada. -All rights reserved. - -NOTE: this license is derived from the Python Software Foundation License -which can be found at http://www.python.org/psf/license - -License for cx_Freeze 4.0.1 ---------------------------- - -1. This LICENSE AGREEMENT is between the copyright holders and the Individual - or Organization ("Licensee") accessing and otherwise using cx_Freeze - software in source or binary form and its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, the - copyright holders hereby grant Licensee a nonexclusive, royalty-free, - world-wide license to reproduce, analyze, test, perform and/or display - publicly, prepare derivative works, distribute, and otherwise use cx_Freeze - alone or in any derivative version, provided, however, that this License - Agreement and this notice of copyright are retained in cx_Freeze alone or in - any derivative version prepared by Licensee. - -3. In the event Licensee prepares a derivative work that is based on or - incorporates cx_Freeze or any part thereof, and wants to make the derivative - work available to others as provided herein, then Licensee hereby agrees to - include in any such work a brief summary of the changes made to cx_Freeze. - -4. The copyright holders are making cx_Freeze available to Licensee on an - "AS IS" basis. THE COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, - EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, THE COPYRIGHT - HOLDERS MAKE NO AND DISCLAIM ANY REPRESENTATION OR WARRANTY OF - MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF - CX_FREEZE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. - -5. THE COPYRIGHT HOLDERS SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF - CX_FREEZE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS - A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING CX_FREEZE, OR ANY - DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material breach - of its terms and conditions. - -7. Nothing in this License Agreement shall be deemed to create any relationship - of agency, partnership, or joint venture between the copyright holders and - Licensee. This License Agreement does not grant permission to use - copyright holder's trademarks or trade name in a trademark sense to endorse - or promote products or services of Licensee, or any third party. - -8. By copying, installing or otherwise using cx_Freeze, Licensee agrees to be - bound by the terms and conditions of this License Agreement. - -Computronix® is a registered trademark of Computronix (Canada) Ltd. - diff --git a/setup/installer/cx_Freeze/MANIFEST.in b/setup/installer/cx_Freeze/MANIFEST.in deleted file mode 100644 index 2348a66973..0000000000 --- a/setup/installer/cx_Freeze/MANIFEST.in +++ /dev/null @@ -1,6 +0,0 @@ -include MANIFEST.in -include *.txt -recursive-include doc *.html -recursive-include initscripts *.py -recursive-include samples *.py -recursive-include source *.c *.rc diff --git a/setup/installer/cx_Freeze/PKG-INFO b/setup/installer/cx_Freeze/PKG-INFO deleted file mode 100644 index aa53b57914..0000000000 --- a/setup/installer/cx_Freeze/PKG-INFO +++ /dev/null @@ -1,22 +0,0 @@ -Metadata-Version: 1.0 -Name: cx_Freeze -Version: 4.0.1 -Summary: create standalone executables from Python scripts -Home-page: http://cx-freeze.sourceforge.net -Author: Anthony Tuininga -Author-email: anthony.tuininga@gmail.com -License: Python Software Foundation License -Description: create standalone executables from Python scripts -Keywords: freeze -Platform: UNKNOWN -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: Python Software Foundation License -Classifier: Natural Language :: English -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: C -Classifier: Programming Language :: Python -Classifier: Topic :: Software Development :: Build Tools -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: System :: Software Distribution -Classifier: Topic :: Utilities diff --git a/setup/installer/cx_Freeze/README.txt b/setup/installer/cx_Freeze/README.txt deleted file mode 100644 index 1ac67dc749..0000000000 --- a/setup/installer/cx_Freeze/README.txt +++ /dev/null @@ -1,12 +0,0 @@ -Please see cx_Freeze.html for documentation on how to use cx_Freeze. - -To build: - -python setup.py build -python setup.py install - -On Windows I have used the MinGW compiler (http://www.mingw.org) - -python setup.py build --compiler=mingw32 -python setup.py build --compiler=mingw32 install - diff --git a/setup/installer/cx_Freeze/cx_Freeze/__init__.py b/setup/installer/cx_Freeze/cx_Freeze/__init__.py deleted file mode 100644 index 545883eb3e..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -version = "4.0.1" - -import sys -from dist import * -if sys.platform == "win32" and sys.version_info[:2] >= (2, 5): - from windist import * -from finder import * -from freezer import * -from main import * - -del dist -del finder -del freezer - diff --git a/setup/installer/cx_Freeze/cx_Freeze/dist.py b/setup/installer/cx_Freeze/cx_Freeze/dist.py deleted file mode 100644 index c2af2ac623..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/dist.py +++ /dev/null @@ -1,279 +0,0 @@ -import distutils.command.bdist_rpm -import distutils.command.build -import distutils.command.install -import distutils.core -import distutils.dir_util -import distutils.dist -import distutils.util -import distutils.version -import os -import sys - -import cx_Freeze - -__all__ = [ "bdist_rpm", "build", "build_exe", "install", "install_exe", - "setup" ] - -class Distribution(distutils.dist.Distribution): - - def __init__(self, attrs): - self.executables = [] - distutils.dist.Distribution.__init__(self, attrs) - - -class bdist_rpm(distutils.command.bdist_rpm.bdist_rpm): - - def finalize_options(self): - distutils.command.bdist_rpm.bdist_rpm.finalize_options(self) - self.use_rpm_opt_flags = 1 - - def _make_spec_file(self): - contents = distutils.command.bdist_rpm.bdist_rpm._make_spec_file(self) - return [c for c in contents if c != 'BuildArch: noarch'] - - -class build(distutils.command.build.build): - user_options = distutils.command.build.build.user_options + [ - ('build-exe=', None, 'build directory for executables') - ] - - def get_sub_commands(self): - subCommands = distutils.command.build.build.get_sub_commands(self) - if self.distribution.executables: - subCommands.append("build_exe") - return subCommands - - def initialize_options(self): - distutils.command.build.build.initialize_options(self) - self.build_exe = None - - def finalize_options(self): - distutils.command.build.build.finalize_options(self) - if self.build_exe is None: - dirName = "exe.%s-%s" % \ - (distutils.util.get_platform(), sys.version[0:3]) - self.build_exe = os.path.join(self.build_base, dirName) - - -class build_exe(distutils.core.Command): - description = "build executables from Python scripts" - user_options = [ - ('build-exe=', 'b', - 'directory for built executables'), - ('optimize=', 'O', - 'optimization level: -O1 for "python -O", ' - '-O2 for "python -OO" and -O0 to disable [default: -O0]'), - ('excludes=', 'e', - 'comma-separated list of modules to exclude'), - ('includes=', 'i', - 'comma-separated list of modules to include'), - ('packages=', 'p', - 'comma-separated list of packages to include'), - ('replace-paths=', None, - 'comma-separated list of paths to replace in included modules'), - ('path=', None, - 'comma-separated list of paths to search'), - ('init-script=', 'i', - 'name of script to use during initialization'), - ('base=', None, - 'name of base executable to use'), - ('compressed', 'c', - 'create a compressed zipfile'), - ('copy-dependent-files', None, - 'copy all dependent files'), - ('create-shared-zip', None, - 'create a shared zip file containing shared modules'), - ('append-script-to-exe', None, - 'append the script module to the exe'), - ('include-in-shared-zip', None, - 'include the script module in the shared zip file'), - ('icon', None, - 'include the icon along with the frozen executable(s)'), - ('constants=', None, - 'comma-separated list of constants to include'), - ('include-files=', 'f', - 'list of tuples of additional files to include in distribution'), - ('bin-includes', None, - 'list of names of files to include when determining dependencies'), - ('bin-excludes', None, - 'list of names of files to exclude when determining dependencies') - ] - boolean_options = ["compressed", "copy_dependent_files", - "create_shared_zip", "append_script_to_exe", - "include_in_shared_zip"] - - def _normalize(self, attrName): - value = getattr(self, attrName) - if value is None: - normalizedValue = [] - elif isinstance(value, basestring): - normalizedValue = value.split() - else: - normalizedValue = list(value) - setattr(self, attrName, normalizedValue) - - def initialize_options(self): - self.optimize = 0 - self.build_exe = None - self.excludes = [] - self.includes = [] - self.packages = [] - self.replace_paths = [] - self.compressed = None - self.copy_dependent_files = None - self.init_script = None - self.base = None - self.path = None - self.create_shared_zip = None - self.append_script_to_exe = None - self.include_in_shared_zip = None - self.icon = None - self.constants = [] - self.include_files = [] - self.bin_excludes = [] - self.bin_includes = [] - - def finalize_options(self): - self.set_undefined_options('build', ('build_exe', 'build_exe')) - self.optimize = int(self.optimize) - self._normalize("excludes") - self._normalize("includes") - self._normalize("packages") - self._normalize("constants") - - def run(self): - metadata = self.distribution.metadata - constantsModule = cx_Freeze.ConstantsModule(metadata.version) - for constant in self.constants: - parts = constant.split("=") - if len(parts) == 1: - name = constant - value = None - else: - name, stringValue = parts - value = eval(stringValue) - constantsModule.values[name] = value - freezer = cx_Freeze.Freezer(self.distribution.executables, - [constantsModule], self.includes, self.excludes, self.packages, - self.replace_paths, self.compressed, self.optimize, - self.copy_dependent_files, self.init_script, self.base, - self.path, self.create_shared_zip, self.append_script_to_exe, - self.include_in_shared_zip, self.build_exe, icon = self.icon, - includeFiles = self.include_files, - binIncludes = self.bin_includes, - binExcludes = self.bin_excludes) - freezer.Freeze() - - -class install(distutils.command.install.install): - user_options = distutils.command.install.install.user_options + [ - ('install-exe=', None, - 'installation directory for executables') - ] - - def expand_dirs(self): - distutils.command.install.install.expand_dirs(self) - self._expand_attrs(['install_exe']) - - def get_sub_commands(self): - subCommands = distutils.command.install.install.get_sub_commands(self) - if self.distribution.executables: - subCommands.append("install_exe") - return [s for s in subCommands if s != "install_egg_info"] - - def initialize_options(self): - distutils.command.install.install.initialize_options(self) - self.install_exe = None - - def finalize_options(self): - if self.prefix is None and sys.platform == "win32": - import _winreg - key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, - r"Software\Microsoft\Windows\CurrentVersion") - prefix = str(_winreg.QueryValueEx(key, "ProgramFilesDir")[0]) - metadata = self.distribution.metadata - dirName = "%s-%s" % (metadata.name, metadata.version) - self.prefix = "%s/%s" % (prefix, dirName) - distutils.command.install.install.finalize_options(self) - self.convert_paths('exe') - if self.root is not None: - self.change_roots('exe') - - def select_scheme(self, name): - distutils.command.install.install.select_scheme(self, name) - if self.install_exe is None: - if sys.platform == "win32": - self.install_exe = '$base' - else: - metadata = self.distribution.metadata - dirName = "%s-%s" % (metadata.name, metadata.version) - self.install_exe = '$base/lib/%s' % dirName - - -class install_exe(distutils.core.Command): - description = "install executables built from Python scripts" - user_options = [ - ('install-dir=', 'd', 'directory to install executables to'), - ('build-dir=', 'b', 'build directory (where to install from)'), - ('force', 'f', 'force installation (overwrite existing files)'), - ('skip-build', None, 'skip the build steps') - ] - - def initialize_options(self): - self.install_dir = None - self.force = 0 - self.build_dir = None - self.skip_build = None - - def finalize_options(self): - self.set_undefined_options('build', ('build_exe', 'build_dir')) - self.set_undefined_options('install', - ('install_exe', 'install_dir'), - ('force', 'force'), - ('skip_build', 'skip_build')) - - def run(self): - if not self.skip_build: - self.run_command('build_exe') - self.outfiles = self.copy_tree(self.build_dir, self.install_dir) - if sys.platform != "win32": - baseDir = os.path.dirname(os.path.dirname(self.install_dir)) - binDir = os.path.join(baseDir, "bin") - if not os.path.exists(binDir): - os.makedirs(binDir) - sourceDir = os.path.join("..", self.install_dir[len(baseDir) + 1:]) - for executable in self.distribution.executables: - name = os.path.basename(executable.targetName) - source = os.path.join(sourceDir, name) - target = os.path.join(binDir, name) - if os.path.exists(target): - os.unlink(target) - os.symlink(source, target) - self.outfiles.append(target) - - def get_inputs(self): - return self.distribution.executables or [] - - def get_outputs(self): - return self.outfiles or [] - - -def _AddCommandClass(commandClasses, name, cls): - if name not in commandClasses: - commandClasses[name] = cls - - -def setup(**attrs): - attrs["distclass"] = Distribution - commandClasses = attrs.setdefault("cmdclass", {}) - if sys.platform == "win32": - if sys.version_info[:2] >= (2, 5): - _AddCommandClass(commandClasses, "bdist_msi", cx_Freeze.bdist_msi) - else: - _AddCommandClass(commandClasses, "bdist_rpm", cx_Freeze.bdist_rpm) - _AddCommandClass(commandClasses, "build", build) - _AddCommandClass(commandClasses, "build_exe", build_exe) - _AddCommandClass(commandClasses, "install", install) - _AddCommandClass(commandClasses, "install_exe", install_exe) - distutils.core.setup(**attrs) - diff --git a/setup/installer/cx_Freeze/cx_Freeze/finder.py b/setup/installer/cx_Freeze/cx_Freeze/finder.py deleted file mode 100644 index f815db97be..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/finder.py +++ /dev/null @@ -1,455 +0,0 @@ -""" -Base class for finding modules. -""" - -import dis -import imp -import marshal -import new -import opcode -import os -import sys -import zipfile - -import cx_Freeze.hooks - -BUILD_LIST = opcode.opmap["BUILD_LIST"] -INPLACE_ADD = opcode.opmap["INPLACE_ADD"] -LOAD_CONST = opcode.opmap["LOAD_CONST"] -IMPORT_NAME = opcode.opmap["IMPORT_NAME"] -IMPORT_FROM = opcode.opmap["IMPORT_FROM"] -STORE_NAME = opcode.opmap["STORE_NAME"] -STORE_GLOBAL = opcode.opmap["STORE_GLOBAL"] -STORE_OPS = (STORE_NAME, STORE_GLOBAL) - -__all__ = [ "Module", "ModuleFinder" ] - -class ModuleFinder(object): - - def __init__(self, includeFiles, excludes, path, replacePaths): - self.includeFiles = includeFiles - self.excludes = dict.fromkeys(excludes) - self.replacePaths = replacePaths - self.path = path or sys.path - self.modules = [] - self.aliases = {} - self._modules = dict.fromkeys(excludes) - self._builtinModules = dict.fromkeys(sys.builtin_module_names) - self._badModules = {} - self._zipFileEntries = {} - self._zipFiles = {} - cx_Freeze.hooks.initialize(self) - - def _AddModule(self, name): - """Add a module to the list of modules but if one is already found, - then return it instead; this is done so that packages can be - handled properly.""" - module = self._modules.get(name) - if module is None: - module = self._modules[name] = Module(name) - self.modules.append(module) - if name in self._badModules: - del self._badModules[name] - return module - - def _DetermineParent(self, caller): - """Determine the parent to use when searching packages.""" - if caller is not None: - if caller.path is not None: - return caller - return self._GetParentByName(caller.name) - - def _EnsureFromList(self, caller, packageModule, fromList, - deferredImports): - """Ensure that the from list is satisfied. This is only necessary for - package modules. If the caller is the package itself, actually - attempt to import right then since it must be a submodule; otherwise - defer until after all global names are defined in order to avoid - spurious complaints about missing modules.""" - if caller is not packageModule: - deferredImports.append((packageModule, fromList)) - else: - if fromList == ("*",): - fromList = packageModule.allNames - for name in fromList: - if name in packageModule.globalNames: - continue - subModuleName = "%s.%s" % (packageModule.name, name) - self._ImportModule(subModuleName, deferredImports, caller) - - def _FindModule(self, name, path): - try: - return imp.find_module(name, path) - except ImportError: - if not path: - path = [] - for location in path: - if name in self._zipFileEntries: - break - if location in self._zipFiles: - continue - if os.path.isdir(location) or not zipfile.is_zipfile(location): - self._zipFiles[location] = None - continue - zip = zipfile.ZipFile(location) - for archiveName in zip.namelist(): - baseName, ext = os.path.splitext(archiveName) - if ext not in ('.pyc', '.pyo'): - continue - moduleName = ".".join(baseName.split("/")) - if moduleName in self._zipFileEntries: - continue - self._zipFileEntries[moduleName] = (zip, archiveName) - self._zipFiles[location] = None - info = self._zipFileEntries.get(name) - if info is not None: - zip, archiveName = info - fp = zip.read(archiveName) - info = (".pyc", "rb", imp.PY_COMPILED) - return fp, os.path.join(zip.filename, archiveName), info - raise - - def _GetParentByName(self, name): - """Return the parent module given the name of a module.""" - pos = name.rfind(".") - if pos > 0: - parentName = name[:pos] - return self._modules[parentName] - - def _ImportAllSubModules(self, module, deferredImports, recursive = True): - """Import all sub modules to the given package.""" - suffixes = dict.fromkeys([s[0] for s in imp.get_suffixes()]) - for dir in module.path: - try: - fileNames = os.listdir(dir) - except os.error: - continue - for fileName in fileNames: - name, ext = os.path.splitext(fileName) - if ext not in suffixes: - continue - if name == "__init__": - continue - subModuleName = "%s.%s" % (module.name, name) - subModule, returnError = \ - self._InternalImportModule(subModuleName, - deferredImports) - if returnError and subModule is None: - raise ImportError, "No module named %s" % subModuleName - module.globalNames[name] = None - if subModule.path and recursive: - self._ImportAllSubModules(subModule, deferredImports, - recursive) - - def _ImportDeferredImports(self, deferredImports): - """Import any sub modules that were deferred, if applicable.""" - while deferredImports: - newDeferredImports = [] - for packageModule, subModuleNames in deferredImports: - self._EnsureFromList(packageModule, packageModule, - subModuleNames, newDeferredImports) - deferredImports = newDeferredImports - - def _ImportModule(self, name, deferredImports, caller = None, - relativeImportIndex = 0): - """Attempt to find the named module and return it or None if no module - by that name could be found.""" - - # absolute import (available in Python 2.5 and up) - # the name given is the only name that will be searched - if relativeImportIndex == 0: - module, returnError = self._InternalImportModule(name, - deferredImports) - - # old style relative import (only possibility in Python 2.4 and prior) - # the name given is tried in all parents until a match is found and if - # no match is found, the global namespace is searched - elif relativeImportIndex < 0: - parent = self._DetermineParent(caller) - while parent is not None: - fullName = "%s.%s" % (parent.name, name) - module, returnError = self._InternalImportModule(fullName, - deferredImports) - if module is not None: - parent.globalNames[name] = None - return module - parent = self._GetParentByName(parent.name) - module, returnError = self._InternalImportModule(name, - deferredImports) - - # new style relative import (available in Python 2.5 and up) - # the index indicates how many levels to traverse and only that level - # is searched for the named module - elif relativeImportIndex > 0: - parent = caller - if parent.path is not None: - relativeImportIndex -= 1 - while parent is not None and relativeImportIndex > 0: - parent = self._GetParentByName(parent.name) - relativeImportIndex -= 1 - if parent is None: - module = None - returnError = True - elif not name: - module = parent - else: - name = "%s.%s" % (parent.name, name) - module, returnError = self._InternalImportModule(name, - deferredImports) - - # if module not found, track that fact - if module is None: - if caller is None: - raise ImportError, "No module named %s" % name - self._RunHook("missing", name, caller) - if returnError and name not in caller.ignoreNames: - callers = self._badModules.setdefault(name, {}) - callers[caller.name] = None - - return module - - def _InternalImportModule(self, name, deferredImports): - """Internal method used for importing a module which assumes that the - name given is an absolute name. None is returned if the module - cannot be found.""" - try: - return self._modules[name], False - except KeyError: - pass - if name in self._builtinModules: - module = self._AddModule(name) - self._RunHook("load", module.name, module) - return module, False - pos = name.rfind(".") - if pos < 0: - path = self.path - searchName = name - parentModule = None - else: - parentName = name[:pos] - parentModule, returnError = \ - self._InternalImportModule(parentName, deferredImports) - if parentModule is None: - return None, returnError - path = parentModule.path - searchName = name[pos + 1:] - if name in self.aliases: - actualName = self.aliases[name] - module, returnError = \ - self._InternalImportModule(actualName, deferredImports) - self._modules[name] = module - return module, returnError - try: - fp, path, info = self._FindModule(searchName, path) - except ImportError: - self._modules[name] = None - return None, True - module = self._LoadModule(name, fp, path, info, deferredImports, - parentModule) - return module, False - - def _LoadModule(self, name, fp, path, info, deferredImports, - parent = None): - """Load the module, given the information acquired by the finder.""" - suffix, mode, type = info - if type == imp.PKG_DIRECTORY: - return self._LoadPackage(name, path, parent, deferredImports) - module = self._AddModule(name) - module.file = path - module.parent = parent - if type == imp.PY_SOURCE: - module.code = compile(fp.read() + "\n", path, "exec") - elif type == imp.PY_COMPILED: - if isinstance(fp, str): - magic = fp[:4] - else: - magic = fp.read(4) - if magic != imp.get_magic(): - raise ImportError, "Bad magic number in %s" % path - if isinstance(fp, str): - module.code = marshal.loads(fp[8:]) - module.inZipFile = True - else: - fp.read(4) - module.code = marshal.load(fp) - self._RunHook("load", module.name, module) - if module.code is not None: - if self.replacePaths: - topLevelModule = module - while topLevelModule.parent is not None: - topLevelModule = topLevelModule.parent - module.code = self._ReplacePathsInCode(topLevelModule, - module.code) - self._ScanCode(module.code, module, deferredImports) - return module - - def _LoadPackage(self, name, path, parent, deferredImports): - """Load the package, given its name and path.""" - module = self._AddModule(name) - module.path = [path] - fp, path, info = imp.find_module("__init__", module.path) - self._LoadModule(name, fp, path, info, deferredImports, parent) - return module - - def _ReplacePathsInCode(self, topLevelModule, co): - """Replace paths in the code as directed, returning a new code object - with the modified paths in place.""" - origFileName = newFileName = os.path.normpath(co.co_filename) - for searchValue, replaceValue in self.replacePaths: - if searchValue == "*": - searchValue = os.path.dirname(topLevelModule.file) - if topLevelModule.path: - searchValue = os.path.dirname(searchValue) - if searchValue: - searchValue = searchValue + os.pathsep - elif not origFileName.startswith(searchValue): - continue - newFileName = replaceValue + origFileName[len(searchValue):] - break - constants = list(co.co_consts) - for i, value in enumerate(constants): - if isinstance(value, type(co)): - constants[i] = self._ReplacePathsInCode(topLevelModule, value) - return new.code(co.co_argcount, co.co_nlocals, co.co_stacksize, - co.co_flags, co.co_code, tuple(constants), co.co_names, - co.co_varnames, newFileName, co.co_name, co.co_firstlineno, - co.co_lnotab, co.co_freevars, co.co_cellvars) - - def _RunHook(self, hookName, moduleName, *args): - """Run hook for the given module if one is present.""" - name = "%s_%s" % (hookName, moduleName.replace(".", "_")) - method = getattr(cx_Freeze.hooks, name, None) - if method is not None: - method(self, *args) - - def _ScanCode(self, co, module, deferredImports): - """Scan code, looking for imported modules and keeping track of the - constants that have been created in order to better tell which - modules are truly missing.""" - opIndex = 0 - arguments = [] - code = co.co_code - numOps = len(code) - while opIndex < numOps: - op = ord(code[opIndex]) - opIndex += 1 - if op >= dis.HAVE_ARGUMENT: - opArg = ord(code[opIndex]) + ord(code[opIndex + 1]) * 256 - opIndex += 2 - if op == LOAD_CONST: - arguments.append(co.co_consts[opArg]) - elif op == IMPORT_NAME: - name = co.co_names[opArg] - if len(arguments) == 2: - relativeImportIndex, fromList = arguments - else: - relativeImportIndex = -1 - fromList, = arguments - if name not in module.excludeNames: - subModule = self._ImportModule(name, deferredImports, - module, relativeImportIndex) - if subModule is not None: - module.globalNames.update(subModule.globalNames) - if fromList and subModule.path is not None: - self._EnsureFromList(module, subModule, fromList, - deferredImports) - elif op == IMPORT_FROM: - opIndex += 3 - elif op not in (BUILD_LIST, INPLACE_ADD): - if op in STORE_OPS: - name = co.co_names[opArg] - if name == "__all__": - module.allNames.extend(arguments) - module.globalNames[name] = None - arguments = [] - for constant in co.co_consts: - if isinstance(constant, type(co)): - self._ScanCode(constant, module, deferredImports) - - def AddAlias(self, name, aliasFor): - """Add an alias for a particular module; when an attempt is made to - import a module using the alias name, import the actual name - instead.""" - self.aliases[name] = aliasFor - - def ExcludeModule(self, name): - """Exclude the named module from the resulting frozen executable.""" - self.excludes[name] = None - self._modules[name] = None - - def IncludeFile(self, path, moduleName = None): - """Include the named file as a module in the frozen executable.""" - name, ext = os.path.splitext(os.path.basename(path)) - if moduleName is None: - moduleName = name - info = (ext, "r", imp.PY_SOURCE) - deferredImports = [] - module = self._LoadModule(moduleName, file(path, "U"), path, info, - deferredImports) - self._ImportDeferredImports(deferredImports) - return module - - def IncludeFiles(self, sourcePath, targetPath): - """Include the files in the given directory in the target build.""" - self.includeFiles.append((sourcePath, targetPath)) - - def IncludeModule(self, name): - """Include the named module in the frozen executable.""" - deferredImports = [] - module = self._ImportModule(name, deferredImports) - self._ImportDeferredImports(deferredImports) - return module - - def IncludePackage(self, name): - """Include the named package and any submodules in the frozen - executable.""" - deferredImports = [] - module = self._ImportModule(name, deferredImports) - if module.path: - self._ImportAllSubModules(module, deferredImports) - self._ImportDeferredImports(deferredImports) - return module - - def ReportMissingModules(self): - if self._badModules: - print "Missing modules:" - names = self._badModules.keys() - names.sort() - for name in names: - callers = self._badModules[name].keys() - callers.sort() - print "?", name, "imported from", ", ".join(callers) - print - - -class Module(object): - - def __init__(self, name): - self.name = name - self.file = None - self.path = None - self.code = None - self.parent = None - self.globalNames = {} - self.excludeNames = {} - self.ignoreNames = {} - self.allNames = [] - self.inZipFile = False - - def __repr__(self): - parts = ["name=%s" % repr(self.name)] - if self.file is not None: - parts.append("file=%s" % repr(self.file)) - if self.path is not None: - parts.append("path=%s" % repr(self.path)) - return "" % ", ".join(parts) - - def AddGlobalName(self, name): - self.globalNames[name] = None - - def ExcludeName(self, name): - self.excludeNames[name] = None - - def IgnoreName(self, name): - self.ignoreNames[name] = None - diff --git a/setup/installer/cx_Freeze/cx_Freeze/freezer.py b/setup/installer/cx_Freeze/cx_Freeze/freezer.py deleted file mode 100644 index e0739e8a4e..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/freezer.py +++ /dev/null @@ -1,550 +0,0 @@ -""" -Base class for freezing scripts into executables. -""" - -import datetime -import distutils.sysconfig -import imp -import marshal -import os -import shutil -import socket -import stat -import struct -import sys -import time -import zipfile - -import cx_Freeze -import cx_Freeze.util - -__all__ = [ "ConfigError", "ConstantsModule", "Executable", "Freezer" ] - -if sys.platform == "win32": - pythonDll = "python%s%s.dll" % sys.version_info[:2] - GLOBAL_BIN_PATH_EXCLUDES = [cx_Freeze.util.GetSystemDir()] - GLOBAL_BIN_INCLUDES = [ - pythonDll, - "gdiplus.dll", - "mfc71.dll", - "msvcp71.dll", - "msvcr71.dll" - ] - GLOBAL_BIN_EXCLUDES = [ - "comctl32.dll", - "oci.dll", - "cx_Logging.pyd" - ] -else: - extension = distutils.sysconfig.get_config_var("SO") - pythonSharedLib = "libpython%s.%s%s" % \ - (sys.version_info[:2] + (extension,)) - GLOBAL_BIN_INCLUDES = [pythonSharedLib] - GLOBAL_BIN_EXCLUDES = [ - "libclntsh.so", - "libwtc9.so" - ] - GLOBAL_BIN_PATH_EXCLUDES = ["/lib", "/lib32", "/lib64", "/usr/lib", - "/usr/lib32", "/usr/lib64"] - - -# NOTE: the try: except: block in this code is not necessary under Python 2.4 -# and higher and can be removed once support for Python 2.3 is no longer needed -EXTENSION_LOADER_SOURCE = \ -""" -import imp, os, sys - -found = False -for p in sys.path: - if not os.path.isdir(p): - continue - f = os.path.join(p, "%s") - if not os.path.exists(f): - continue - try: - m = imp.load_dynamic(__name__, f) - except ImportError: - del sys.modules[__name__] - raise - sys.modules[__name__] = m - found = True - break -if not found: - del sys.modules[__name__] - raise ImportError, "No module named %%s" %% __name__ -""" - - -class Freezer(object): - - def __init__(self, executables, constantsModules = [], includes = [], - excludes = [], packages = [], replacePaths = [], compress = None, - optimizeFlag = 0, copyDependentFiles = None, initScript = None, - base = None, path = None, createLibraryZip = None, - appendScriptToExe = None, appendScriptToLibrary = None, - targetDir = None, binIncludes = [], binExcludes = [], - binPathIncludes = [], binPathExcludes = [], icon = None, - includeFiles = []): - self.executables = executables - self.constantsModules = constantsModules - self.includes = includes - self.excludes = excludes - self.packages = packages - self.replacePaths = replacePaths - self.compress = compress - self.optimizeFlag = optimizeFlag - self.copyDependentFiles = copyDependentFiles - self.initScript = initScript - self.base = base - self.path = path - self.createLibraryZip = createLibraryZip - self.appendScriptToExe = appendScriptToExe - self.appendScriptToLibrary = appendScriptToLibrary - self.targetDir = targetDir - self.binIncludes = [os.path.normcase(n) \ - for n in GLOBAL_BIN_INCLUDES + binIncludes] - self.binExcludes = [os.path.normcase(n) \ - for n in GLOBAL_BIN_EXCLUDES + binExcludes] - self.binPathIncludes = [os.path.normcase(n) for n in binPathIncludes] - self.binPathExcludes = [os.path.normcase(n) \ - for n in GLOBAL_BIN_PATH_EXCLUDES + binPathExcludes] - self.icon = icon - self.includeFiles = includeFiles - self._VerifyConfiguration() - - def _CopyFile(self, source, target, copyDependentFiles, - includeMode = False): - normalizedSource = os.path.normcase(os.path.normpath(source)) - normalizedTarget = os.path.normcase(os.path.normpath(target)) - if normalizedTarget in self.filesCopied: - return - if normalizedSource == normalizedTarget: - return - self._RemoveFile(target) - targetDir = os.path.dirname(target) - self._CreateDirectory(targetDir) - print "copying", source, "->", target - shutil.copyfile(source, target) - if includeMode: - shutil.copymode(source, target) - self.filesCopied[normalizedTarget] = None - if copyDependentFiles: - for source in self._GetDependentFiles(source): - target = os.path.join(targetDir, os.path.basename(source)) - self._CopyFile(source, target, copyDependentFiles) - - def _CreateDirectory(self, path): - if not os.path.isdir(path): - print "creating directory", path - os.makedirs(path) - - def _FreezeExecutable(self, exe): - if self.createLibraryZip: - finder = self.finder - else: - finder = self._GetModuleFinder(exe) - if exe.script is None: - scriptModule = None - else: - scriptModule = finder.IncludeFile(exe.script, exe.moduleName) - self._CopyFile(exe.base, exe.targetName, exe.copyDependentFiles, - includeMode = True) - if exe.icon is not None: - if sys.platform == "win32": - cx_Freeze.util.AddIcon(exe.targetName, exe.icon) - else: - targetName = os.path.join(os.path.dirname(exe.targetName), - os.path.basename(exe.icon)) - self._CopyFile(exe.icon, targetName, - copyDependentFiles = False) - if not os.access(exe.targetName, os.W_OK): - mode = os.stat(exe.targetName).st_mode - os.chmod(exe.targetName, mode | stat.S_IWUSR) - if not exe.appendScriptToLibrary: - if exe.appendScriptToExe: - fileName = exe.targetName - else: - baseFileName, ext = os.path.splitext(exe.targetName) - fileName = baseFileName + ".zip" - self._RemoveFile(fileName) - if not self.createLibraryZip and exe.copyDependentFiles: - scriptModule = None - self._WriteModules(fileName, exe.initScript, finder, exe.compress, - exe.copyDependentFiles, scriptModule) - - def _GetBaseFileName(self, argsSource = None): - if argsSource is None: - argsSource = self - name = argsSource.base - if name is None: - if argsSource.copyDependentFiles: - name = "Console" - else: - name = "ConsoleKeepPath" - argsSource.base = self._GetFileName("bases", name) - if argsSource.base is None: - raise ConfigError("no base named %s", name) - - def _GetDependentFiles(self, path): - dependentFiles = self.dependentFiles.get(path) - if dependentFiles is None: - if sys.platform == "win32": - origPath = os.environ["PATH"] - os.environ["PATH"] = origPath + os.pathsep + \ - os.pathsep.join(sys.path) - dependentFiles = cx_Freeze.util.GetDependentFiles(path) - os.environ["PATH"] = origPath - else: - dependentFiles = [] - for line in os.popen('ldd "%s"' % path): - parts = line.strip().split(" => ") - if len(parts) != 2: - continue - dependentFile = parts[1] - if dependentFile == "not found": - print "WARNING: cannot find", parts[0] - continue - pos = dependentFile.find(" (") - if pos >= 0: - dependentFile = dependentFile[:pos].strip() - if dependentFile: - dependentFiles.append(dependentFile) - dependentFiles = self.dependentFiles[path] = \ - [f for f in dependentFiles if self._ShouldCopyFile(f)] - return dependentFiles - - def _GetFileName(self, dir, name): - if os.path.isabs(name): - return name - name = os.path.normcase(name) - fullDir = os.path.join(os.path.dirname(cx_Freeze.__file__), dir) - if os.path.isdir(fullDir): - for fileName in os.listdir(fullDir): - if name == os.path.splitext(os.path.normcase(fileName))[0]: - return os.path.join(fullDir, fileName) - - def _GetInitScriptFileName(self, argsSource = None): - if argsSource is None: - argsSource = self - name = argsSource.initScript - if name is None: - if argsSource.copyDependentFiles: - name = "Console" - else: - name = "ConsoleKeepPath" - argsSource.initScript = self._GetFileName("initscripts", name) - if argsSource.initScript is None: - raise ConfigError("no initscript named %s", name) - - def _GetModuleFinder(self, argsSource = None): - if argsSource is None: - argsSource = self - finder = cx_Freeze.ModuleFinder(self.includeFiles, argsSource.excludes, - argsSource.path, argsSource.replacePaths) - if argsSource.copyDependentFiles: - finder.IncludeModule("imp") - finder.IncludeModule("os") - finder.IncludeModule("sys") - if argsSource.compress: - finder.IncludeModule("zlib") - for name in argsSource.includes: - finder.IncludeModule(name) - for name in argsSource.packages: - finder.IncludePackage(name) - return finder - - def _PrintReport(self, fileName, modules): - print "writing zip file", fileName - print - print " %-25s %s" % ("Name", "File") - print " %-25s %s" % ("----", "----") - for module in modules: - if module.path: - print "P", - else: - print "m", - print "%-25s" % module.name, module.file or "" - print - - def _RemoveFile(self, path): - if os.path.exists(path): - os.chmod(path, 0777) - os.remove(path) - - def _ShouldCopyFile(self, path): - dir, name = os.path.split(os.path.normcase(path)) - parts = name.split(".") - tweaked = False - while True: - if not parts[-1].isdigit(): - break - parts.pop(-1) - tweaked = True - if tweaked: - name = ".".join(parts) - if name in self.binIncludes: - return True - if name in self.binExcludes: - return False - for path in self.binPathIncludes: - if dir.startswith(path): - return True - for path in self.binPathExcludes: - if dir.startswith(path): - return False - return True - - def _VerifyCanAppendToLibrary(self): - if not self.createLibraryZip: - raise ConfigError("script cannot be appended to library zip if " - "one is not being created") - - def _VerifyConfiguration(self): - if self.compress is None: - self.compress = True - if self.copyDependentFiles is None: - self.copyDependentFiles = True - if self.createLibraryZip is None: - self.createLibraryZip = True - if self.appendScriptToExe is None: - self.appendScriptToExe = False - if self.appendScriptToLibrary is None: - self.appendScriptToLibrary = \ - self.createLibraryZip and not self.appendScriptToExe - if self.targetDir is None: - self.targetDir = os.path.abspath("dist") - self._GetInitScriptFileName() - self._GetBaseFileName() - if self.path is None: - self.path = sys.path - if self.appendScriptToLibrary: - self._VerifyCanAppendToLibrary() - for sourceFileName, targetFileName in self.includeFiles: - if not os.path.exists(sourceFileName): - raise ConfigError("cannot find file/directory named %s", - sourceFileName) - if os.path.isabs(targetFileName): - raise ConfigError("target file/directory cannot be absolute") - for executable in self.executables: - executable._VerifyConfiguration(self) - - def _WriteModules(self, fileName, initScript, finder, compress, - copyDependentFiles, scriptModule = None): - initModule = finder.IncludeFile(initScript, "cx_Freeze__init__") - if scriptModule is None: - for module in self.constantsModules: - module.Create(finder) - modules = [m for m in finder.modules \ - if m.name not in self.excludeModules] - else: - modules = [initModule, scriptModule] - self.excludeModules[initModule.name] = None - self.excludeModules[scriptModule.name] = None - itemsToSort = [(m.name, m) for m in modules] - itemsToSort.sort() - modules = [m for n, m in itemsToSort] - self._PrintReport(fileName, modules) - if scriptModule is None: - finder.ReportMissingModules() - targetDir = os.path.dirname(fileName) - self._CreateDirectory(targetDir) - filesToCopy = [] - if os.path.exists(fileName): - mode = "a" - else: - mode = "w" - outFile = zipfile.PyZipFile(fileName, mode, zipfile.ZIP_DEFLATED) - for module in modules: - if module.code is None and module.file is not None: - fileName = os.path.basename(module.file) - baseFileName, ext = os.path.splitext(fileName) - if baseFileName != module.name and module.name != "zlib": - if "." in module.name: - fileName = module.name + ext - generatedFileName = "ExtensionLoader_%s.py" % \ - module.name.replace(".", "_") - module.code = compile(EXTENSION_LOADER_SOURCE % fileName, - generatedFileName, "exec") - target = os.path.join(targetDir, fileName) - filesToCopy.append((module, target)) - if module.code is None: - continue - fileName = "/".join(module.name.split(".")) - if module.path: - fileName += "/__init__" - if module.file is not None and os.path.exists(module.file): - mtime = os.stat(module.file).st_mtime - else: - mtime = time.time() - zipTime = time.localtime(mtime)[:6] - data = imp.get_magic() + struct.pack("" % self.script - - def _VerifyConfiguration(self, freezer): - if self.path is None: - self.path = freezer.path - if self.targetDir is None: - self.targetDir = freezer.targetDir - if self.includes is None: - self.includes = freezer.includes - if self.excludes is None: - self.excludes = freezer.excludes - if self.packages is None: - self.packages = freezer.packages - if self.replacePaths is None: - self.replacePaths = freezer.replacePaths - if self.compress is None: - self.compress = freezer.compress - if self.copyDependentFiles is None: - self.copyDependentFiles = freezer.copyDependentFiles - if self.appendScriptToExe is None: - self.appendScriptToExe = freezer.appendScriptToExe - if self.appendScriptToLibrary is None: - self.appendScriptToLibrary = freezer.appendScriptToLibrary - if self.initScript is None: - self.initScript = freezer.initScript - else: - freezer._GetInitScriptFileName(self) - if self.base is None: - self.base = freezer.base - else: - freezer._GetBaseFileName(self) - if self.appendScriptToLibrary: - freezer._VerifyCanAppendToLibrary() - if self.icon is None: - self.icon = freezer.icon - if self.script is not None: - name, ext = os.path.splitext(os.path.basename(self.script)) - if self.appendScriptToLibrary: - self.moduleName = "%s__main__" % os.path.normcase(name) - else: - self.moduleName = "__main__" - if self.targetName is None: - baseName, ext = os.path.splitext(self.base) - self.targetName = name + ext - self.targetName = os.path.join(self.targetDir, self.targetName) - - -class ConstantsModule(object): - - def __init__(self, releaseString = None, copyright = None, - moduleName = "BUILD_CONSTANTS", timeFormat = "%B %d, %Y %H:%M:%S"): - self.moduleName = moduleName - self.timeFormat = timeFormat - self.values = {} - self.values["BUILD_RELEASE_STRING"] = releaseString - self.values["BUILD_COPYRIGHT"] = copyright - - def Create(self, finder): - """Create the module which consists of declaration statements for each - of the values.""" - today = datetime.datetime.today() - sourceTimestamp = 0 - for module in finder.modules: - if module.file is None: - continue - if module.inZipFile: - continue - if not os.path.exists(module.file): - raise ConfigError("no file named %s", module.file) - timestamp = os.stat(module.file).st_mtime - sourceTimestamp = max(sourceTimestamp, timestamp) - sourceTimestamp = datetime.datetime.fromtimestamp(sourceTimestamp) - self.values["BUILD_TIMESTAMP"] = today.strftime(self.timeFormat) - self.values["BUILD_HOST"] = socket.gethostname().split(".")[0] - self.values["SOURCE_TIMESTAMP"] = \ - sourceTimestamp.strftime(self.timeFormat) - module = finder._AddModule(self.moduleName) - sourceParts = [] - names = self.values.keys() - names.sort() - for name in names: - value = self.values[name] - sourceParts.append("%s = %r" % (name, value)) - source = "\n".join(sourceParts) - module.code = compile(source, "%s.py" % self.moduleName, "exec") - diff --git a/setup/installer/cx_Freeze/cx_Freeze/hooks.py b/setup/installer/cx_Freeze/cx_Freeze/hooks.py deleted file mode 100644 index edc2f78788..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/hooks.py +++ /dev/null @@ -1,281 +0,0 @@ -import os -import sys - -def initialize(finder): - """upon initialization of the finder, this routine is called to set up some - automatic exclusions for various platforms.""" - finder.ExcludeModule("FCNTL") - finder.ExcludeModule("os.path") - if os.name == "nt": - finder.ExcludeModule("fcntl") - finder.ExcludeModule("grp") - finder.ExcludeModule("pwd") - finder.ExcludeModule("termios") - else: - finder.ExcludeModule("_winreg") - finder.ExcludeModule("msilib") - finder.ExcludeModule("msvcrt") - finder.ExcludeModule("nt") - if os.name not in ("os2", "ce"): - finder.ExcludeModule("ntpath") - finder.ExcludeModule("nturl2path") - finder.ExcludeModule("pythoncom") - finder.ExcludeModule("pywintypes") - finder.ExcludeModule("winerror") - finder.ExcludeModule("winsound") - finder.ExcludeModule("win32api") - finder.ExcludeModule("win32con") - finder.ExcludeModule("win32event") - finder.ExcludeModule("win32file") - finder.ExcludeModule("win32pdh") - finder.ExcludeModule("win32pipe") - finder.ExcludeModule("win32process") - finder.ExcludeModule("win32security") - finder.ExcludeModule("win32service") - finder.ExcludeModule("wx.activex") - if os.name != "posix": - finder.ExcludeModule("posix") - if os.name != "mac": - finder.ExcludeModule("Carbon") - finder.ExcludeModule("gestalt") - finder.ExcludeModule("ic") - finder.ExcludeModule("mac") - finder.ExcludeModule("MacOS") - finder.ExcludeModule("macpath") - finder.ExcludeModule("macurl2path") - if os.name != "nt": - finder.ExcludeModule("EasyDialogs") - if os.name != "os2": - finder.ExcludeModule("os2") - finder.ExcludeModule("os2emxpath") - finder.ExcludeModule("_emx_link") - if os.name != "ce": - finder.ExcludeModule("ce") - if os.name != "riscos": - finder.ExcludeModule("riscos") - finder.ExcludeModule("riscosenviron") - finder.ExcludeModule("riscospath") - finder.ExcludeModule("rourl2path") - if sys.platform[:4] != "java": - finder.ExcludeModule("java.lang") - finder.ExcludeModule("org.python.core") - - -def load_cElementTree(finder, module): - """the cElementTree module implicitly loads the elementtree.ElementTree - module; make sure this happens.""" - finder.IncludeModule("elementtree.ElementTree") - - -def load_ceODBC(finder, module): - """the ceODBC module implicitly imports both datetime and decimal; make - sure this happens.""" - finder.IncludeModule("datetime") - finder.IncludeModule("decimal") - - -def load_cx_Oracle(finder, module): - """the cx_Oracle module implicitly imports datetime; make sure this - happens.""" - finder.IncludeModule("datetime") - - -def load_docutils_frontend(finder, module): - """The optik module is the old name for the optparse module; ignore the - module if it cannot be found.""" - module.IgnoreName("optik") - - -def load_dummy_threading(finder, module): - """the dummy_threading module plays games with the name of the threading - module for its own purposes; ignore that here""" - finder.ExcludeModule("_dummy_threading") - - -def load_email(finder, module): - """the email package has a bunch of aliases as the submodule names were - all changed to lowercase in Python 2.5; mimic that here.""" - if sys.version_info[:2] >= (2, 5): - for name in ("Charset", "Encoders", "Errors", "FeedParser", - "Generator", "Header", "Iterators", "Message", "Parser", - "Utils", "base64MIME", "quopriMIME"): - finder.AddAlias("email.%s" % name, "email.%s" % name.lower()) - - -def load_ftplib(finder, module): - """the ftplib module attempts to import the SOCKS module; ignore this - module if it cannot be found""" - module.IgnoreName("SOCKS") - - -def load_matplotlib(finder, module): - """the matplotlib module requires data to be found in mpl-data in the - same directory as the frozen executable so oblige it""" - dir = os.path.join(module.path[0], "mpl-data") - finder.IncludeFiles(dir, "mpl-data") - - -def load_matplotlib_numerix(finder, module): - """the numpy.numerix module loads a number of modules dynamically""" - for name in ("ma", "fft", "linear_algebra", "random_array", "mlab"): - finder.IncludeModule("%s.%s" % (module.name, name)) - - -def load_numpy_linalg(finder, module): - """the numpy.linalg module implicitly loads the lapack_lite module; make - sure this happens""" - finder.IncludeModule("numpy.linalg.lapack_lite") - - -def load_pty(finder, module): - """The sgi module is not needed for this module to function.""" - module.IgnoreName("sgi") - - -def load_pythoncom(finder, module): - """the pythoncom module is actually contained in a DLL but since those - cannot be loaded directly in Python 2.5 and higher a special module is - used to perform that task; simply use that technique directly to - determine the name of the DLL and ensure it is included as a normal - extension; also load the pywintypes module which is implicitly - loaded.""" - import pythoncom - module.file = pythoncom.__file__ - module.code = None - finder.IncludeModule("pywintypes") - - -def load_pywintypes(finder, module): - """the pywintypes module is actually contained in a DLL but since those - cannot be loaded directly in Python 2.5 and higher a special module is - used to perform that task; simply use that technique directly to - determine the name of the DLL and ensure it is included as a normal - extension.""" - import pywintypes - module.file = pywintypes.__file__ - module.code = None - - -def load_PyQt4_Qt(finder, module): - """the PyQt4.Qt module is an extension module which imports a number of - other modules and injects their namespace into its own. It seems a - foolish way of doing things but perhaps there is some hidden advantage - to this technique over pure Python; ignore the absence of some of - the modules since not every installation includes all of them.""" - finder.IncludeModule("PyQt4.QtCore") - finder.IncludeModule("PyQt4.QtGui") - finder.IncludeModule("sip") - for name in ("PyQt4.QtSvg", "PyQt4.Qsci", "PyQt4.QtAssistant", - "PyQt4.QtNetwork", "PyQt4.QtOpenGL", "PyQt4.QtScript", "PyQt4._qt", - "PyQt4.QtSql", "PyQt4.QtSvg", "PyQt4.QtTest", "PyQt4.QtXml"): - try: - finder.IncludeModule(name) - except ImportError: - pass - - -def load_Tkinter(finder, module): - """the Tkinter module has data files that are required to be loaded so - ensure that they are copied into the directory that is expected at - runtime.""" - import Tkinter - import _tkinter - tk = _tkinter.create() - tclDir = os.path.dirname(tk.call("info", "library")) - tclSourceDir = os.path.join(tclDir, "tcl%s" % _tkinter.TCL_VERSION) - tkSourceDir = os.path.join(tclDir, "tk%s" % _tkinter.TK_VERSION) - finder.IncludeFiles(tclSourceDir, "tcl") - finder.IncludeFiles(tkSourceDir, "tk") - - -def load_tempfile(finder, module): - """the tempfile module attempts to load the fcntl and thread modules but - continues if these modules cannot be found; ignore these modules if they - cannot be found.""" - module.IgnoreName("fcntl") - module.IgnoreName("thread") - - -def load_time(finder, module): - """the time module implicitly loads _strptime; make sure this happens.""" - finder.IncludeModule("_strptime") - - -def load_win32api(finder, module): - """the win32api module implicitly loads the pywintypes module; make sure - this happens.""" - finder.IncludeModule("pywintypes") - - -def load_win32com(finder, module): - """the win32com package manipulates its search path at runtime to include - the sibling directory called win32comext; simulate that by changing the - search path in a similar fashion here.""" - baseDir = os.path.dirname(os.path.dirname(module.file)) - module.path.append(os.path.join(baseDir, "win32comext")) - - -def load_win32file(finder, module): - """the win32api module implicitly loads the pywintypes module; make sure - this happens.""" - finder.IncludeModule("pywintypes") - - -def load_xml(finder, module): - """the builtin xml package attempts to load the _xmlplus module to see if - that module should take its role instead; ignore the failure to find - this module, though.""" - module.IgnoreName("_xmlplus") - - -def load_xml_etree_cElementTree(finder, module): - """the xml.etree.cElementTree module implicitly loads the - xml.etree.ElementTree module; make sure this happens.""" - finder.IncludeModule("xml.etree.ElementTree") - -def load_IPython(finder, module): - ipy = os.path.join(os.path.dirname(module.file), 'Extensions') - extensions = set([]) - for m in os.listdir(ipy): - extensions.add(os.path.splitext(m)[0]) - extensions.remove('__init__') - for m in extensions: - finder.IncludeModule('IPython.Extensions.'+m) - -def load_lxml(finder, module): - finder.IncludeModule('lxml._elementpath') - -def load_cherrypy(finder, module): - finder.IncludeModule('cherrypy.lib.encoding') - -def missing_cElementTree(finder, caller): - """the cElementTree has been incorporated into the standard library in - Python 2.5 so ignore its absence if it cannot found.""" - if sys.version_info[:2] >= (2, 5): - caller.IgnoreName("cElementTree") - - -def missing_EasyDialogs(finder, caller): - """the EasyDialogs module is not normally present on Windows but it also - may be so instead of excluding it completely, ignore it if it can't be - found""" - if sys.platform == "win32": - caller.IgnoreName("EasyDialogs") - - -def missing_readline(finder, caller): - """the readline module is not normally present on Windows but it also may - be so instead of excluding it completely, ignore it if it can't be - found""" - if sys.platform == "win32": - caller.IgnoreName("readline") - - -def missing_xml_etree(finder, caller): - """the xml.etree package is new for Python 2.5 but it is common practice - to use a try..except.. block in order to support versions earlier than - Python 2.5 transparently; ignore the absence of the package in this - situation.""" - if sys.version_info[:2] < (2, 5): - caller.IgnoreName("xml.etree") - diff --git a/setup/installer/cx_Freeze/cx_Freeze/main.py b/setup/installer/cx_Freeze/cx_Freeze/main.py deleted file mode 100644 index 1704c598d2..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/main.py +++ /dev/null @@ -1,171 +0,0 @@ -import optparse -import os -import shutil -import stat -import sys - -import cx_Freeze - -__all__ = ["main"] - -USAGE = \ -""" -%prog [options] [SCRIPT] - -Freeze a Python script and all of its referenced modules to a base -executable which can then be distributed without requiring a Python -installation.""" - -VERSION = \ -""" -%%prog %s -Copyright (c) 2007-2008 Colt Engineering. All rights reserved. -Copyright (c) 2001-2006 Computronix Corporation. All rights reserved.""" % \ - cx_Freeze.version - - -def ParseCommandLine(): - parser = optparse.OptionParser(version = VERSION.strip(), - usage = USAGE.strip()) - parser.add_option("-O", - action = "count", - default = 0, - dest = "optimized", - help = "optimize generated bytecode as per PYTHONOPTIMIZE; " - "use -OO in order to remove doc strings") - parser.add_option("-c", "--compress", - action = "store_true", - dest = "compress", - help = "compress byte code in zip files") - parser.add_option("--base-name", - dest = "baseName", - metavar = "NAME", - help = "file on which to base the target file; if the name of the " - "file is not an absolute file name, the subdirectory bases " - "(rooted in the directory in which the freezer is found) " - "will be searched for a file matching the name") - parser.add_option("--init-script", - dest = "initScript", - metavar = "NAME", - help = "script which will be executed upon startup; if the name " - "of the file is not an absolute file name, the " - "subdirectory initscripts (rooted in the directory in " - "which the cx_Freeze package is found) will be searched " - "for a file matching the name") - parser.add_option("--target-dir", "--install-dir", - dest = "targetDir", - metavar = "DIR", - help = "the directory in which to place the target file and " - "any dependent files") - parser.add_option("--target-name", - dest = "targetName", - metavar = "NAME", - help = "the name of the file to create instead of the base name " - "of the script and the extension of the base binary") - parser.add_option("--no-copy-deps", - dest = "copyDeps", - default = True, - action = "store_false", - help = "do not copy the dependent files (extensions, shared " - "libraries, etc.) to the target directory; this also " - "modifies the default init script to ConsoleKeepPath.py " - "and means that the target executable requires a Python " - "installation to execute properly") - parser.add_option("--default-path", - action = "append", - dest = "defaultPath", - metavar = "DIRS", - help = "list of paths separated by the standard path separator " - "for the platform which will be used to initialize " - "sys.path prior to running the module finder") - parser.add_option("--include-path", - action = "append", - dest = "includePath", - metavar = "DIRS", - help = "list of paths separated by the standard path separator " - "for the platform which will be used to modify sys.path " - "prior to running the module finder") - parser.add_option("--replace-paths", - dest = "replacePaths", - metavar = "DIRECTIVES", - help = "replace all the paths in modules found in the given paths " - "with the given replacement string; multiple values are " - "separated by the standard path separator and each value " - "is of the form path=replacement_string; path can be * " - "which means all paths not already specified") - parser.add_option("--include-modules", - dest = "includeModules", - metavar = "NAMES", - help = "comma separated list of modules to include") - parser.add_option("--exclude-modules", - dest = "excludeModules", - metavar = "NAMES", - help = "comma separated list of modules to exclude") - parser.add_option("--ext-list-file", - dest = "extListFile", - metavar = "NAME", - help = "name of file in which to place the list of dependent files " - "which were copied into the target directory") - parser.add_option("-z", "--zip-include", - dest = "zipIncludes", - action = "append", - default = [], - metavar = "SPEC", - help = "name of file to add to the zip file or a specification of " - "the form name=arcname which will specify the archive name " - "to use; multiple --zip-include arguments can be used") - options, args = parser.parse_args() - if len(args) == 0: - options.script = None - elif len(args) == 1: - options.script, = args - else: - parser.error("only one script can be specified") - if not args and options.includeModules is None and options.copyDeps: - parser.error("script or a list of modules must be specified") - if not args and options.targetName is None: - parser.error("script or a target name must be specified") - if options.excludeModules: - options.excludeModules = options.excludeModules.split(",") - else: - options.excludeModules = [] - if options.includeModules: - options.includeModules = options.includeModules.split(",") - else: - options.includeModules = [] - replacePaths = [] - if options.replacePaths: - for directive in options.replacePaths.split(os.pathsep): - fromPath, replacement = directive.split("=") - replacePaths.append((fromPath, replacement)) - options.replacePaths = replacePaths - if options.defaultPath is not None: - sys.path = [p for mp in options.defaultPath \ - for p in mp.split(os.pathsep)] - if options.includePath is not None: - paths = [p for mp in options.includePath for p in mp.split(os.pathsep)] - sys.path = paths + sys.path - if options.script is not None: - sys.path.insert(0, os.path.dirname(options.script)) - return options - - -def main(): - options = ParseCommandLine() - executables = [cx_Freeze.Executable(options.script, - targetName = options.targetName)] - freezer = cx_Freeze.Freezer(executables, - includes = options.includeModules, - excludes = options.excludeModules, - replacePaths = options.replacePaths, - compress = options.compress, - optimizeFlag = options.optimized, - copyDependentFiles = options.copyDeps, - initScript = options.initScript, - base = options.baseName, - path = None, - createLibraryZip = False, - appendScriptToExe = True, - targetDir = options.targetDir) - freezer.Freeze() - diff --git a/setup/installer/cx_Freeze/cx_Freeze/windist.py b/setup/installer/cx_Freeze/cx_Freeze/windist.py deleted file mode 100644 index 51af544771..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/windist.py +++ /dev/null @@ -1,337 +0,0 @@ -import distutils.command.bdist_msi -import msilib -import os - -__all__ = [ "bdist_msi" ] - -# force the remove existing products action to happen first since Windows -# installer appears to be braindead and doesn't handle files shared between -# different "products" very well -sequence = msilib.sequence.InstallExecuteSequence -for index, info in enumerate(sequence): - if info[0] == u'RemoveExistingProducts': - sequence[index] = (info[0], info[1], 1450) - - -class bdist_msi(distutils.command.bdist_msi.bdist_msi): - user_options = distutils.command.bdist_msi.bdist_msi.user_options + [ - ('add-to-path=', None, 'add target dir to PATH environment variable'), - ('upgrade-code=', None, 'upgrade code to use') - ] - x = y = 50 - width = 370 - height = 300 - title = "[ProductName] Setup" - modeless = 1 - modal = 3 - - def add_config(self, fullname): - initialTargetDir = self.get_initial_target_dir(fullname) - if self.add_to_path is None: - self.add_to_path = False - for executable in self.distribution.executables: - if os.path.basename(executable.base).startswith("Console"): - self.add_to_path = True - break - if self.add_to_path: - msilib.add_data(self.db, 'Environment', - [("E_PATH", "Path", r"[~];[TARGETDIR]", "TARGETDIR")]) - msilib.add_data(self.db, 'CustomAction', - [("InitialTargetDir", 256 + 51, "TARGETDIR", initialTargetDir) - ]) - msilib.add_data(self.db, 'InstallExecuteSequence', - [("InitialTargetDir", 'TARGETDIR=""', 401)]) - msilib.add_data(self.db, 'InstallUISequence', - [("PrepareDlg", None, 140), - ("InitialTargetDir", 'TARGETDIR=""', 401), - ("SelectDirectoryDlg", "not Installed", 1230), - ("MaintenanceTypeDlg", - "Installed and not Resume and not Preselected", 1250), - ("ProgressDlg", None, 1280) - ]) - - def add_cancel_dialog(self): - dialog = msilib.Dialog(self.db, "CancelDlg", 50, 10, 260, 85, 3, - self.title, "No", "No", "No") - dialog.text("Text", 48, 15, 194, 30, 3, - "Are you sure you want to cancel [ProductName] installation?") - button = dialog.pushbutton("Yes", 72, 57, 56, 17, 3, "Yes", "No") - button.event("EndDialog", "Exit") - button = dialog.pushbutton("No", 132, 57, 56, 17, 3, "No", "Yes") - button.event("EndDialog", "Return") - - def add_error_dialog(self): - dialog = msilib.Dialog(self.db, "ErrorDlg", 50, 10, 330, 101, 65543, - self.title, "ErrorText", None, None) - dialog.text("ErrorText", 50, 9, 280, 48, 3, "") - for text, x in [("No", 120), ("Yes", 240), ("Abort", 0), - ("Cancel", 42), ("Ignore", 81), ("Ok", 159), ("Retry", 198)]: - button = dialog.pushbutton(text[0], x, 72, 81, 21, 3, text, None) - button.event("EndDialog", "Error%s" % text) - - def add_exit_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "ExitDialog", - self.x, self.y, self.width, self.height, self.modal, - self.title, "Finish", "Finish", "Finish") - dialog.title("Completing the [ProductName] installer") - dialog.back("< Back", "Finish", active = False) - dialog.cancel("Cancel", "Back", active = False) - dialog.text("Description", 15, 235, 320, 20, 0x30003, - "Click the Finish button to exit the installer.") - button = dialog.next("Finish", "Cancel", name = "Finish") - button.event("EndDialog", "Return") - - def add_fatal_error_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "FatalError", - self.x, self.y, self.width, self.height, self.modal, - self.title, "Finish", "Finish", "Finish") - dialog.title("[ProductName] installer ended prematurely") - dialog.back("< Back", "Finish", active = False) - dialog.cancel("Cancel", "Back", active = False) - dialog.text("Description1", 15, 70, 320, 80, 0x30003, - "[ProductName] setup ended prematurely because of an error. " - "Your system has not been modified. To install this program " - "at a later time, please run the installation again.") - dialog.text("Description2", 15, 155, 320, 20, 0x30003, - "Click the Finish button to exit the installer.") - button = dialog.next("Finish", "Cancel", name = "Finish") - button.event("EndDialog", "Exit") - - def add_files_in_use_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "FilesInUse", - self.x, self.y, self.width, self.height, 19, self.title, - "Retry", "Retry", "Retry", bitmap = False) - dialog.text("Title", 15, 6, 200, 15, 0x30003, - r"{\DlgFontBold8}Files in Use") - dialog.text("Description", 20, 23, 280, 20, 0x30003, - "Some files that need to be updated are currently in use.") - dialog.text("Text", 20, 55, 330, 50, 3, - "The following applications are using files that need to be " - "updated by this setup. Close these applications and then " - "click Retry to continue the installation or Cancel to exit " - "it.") - dialog.control("List", "ListBox", 20, 107, 330, 130, 7, - "FileInUseProcess", None, None, None) - button = dialog.back("Exit", "Ignore", name = "Exit") - button.event("EndDialog", "Exit") - button = dialog.next("Ignore", "Retry", name = "Ignore") - button.event("EndDialog", "Ignore") - button = dialog.cancel("Retry", "Exit", name = "Retry") - button.event("EndDialog", "Retry") - - def add_maintenance_type_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, - "MaintenanceTypeDlg", self.x, self.y, self.width, self.height, - self.modal, self.title, "Next", "Next", "Cancel") - dialog.title("Welcome to the [ProductName] Setup Wizard") - dialog.text("BodyText", 15, 63, 330, 42, 3, - "Select whether you want to repair or remove [ProductName].") - group = dialog.radiogroup("RepairRadioGroup", 15, 108, 330, 60, 3, - "MaintenanceForm_Action", "", "Next") - group.add("Repair", 0, 18, 300, 17, "&Repair [ProductName]") - group.add("Remove", 0, 36, 300, 17, "Re&move [ProductName]") - dialog.back("< Back", None, active = False) - button = dialog.next("Finish", "Cancel") - button.event("[REINSTALL]", "ALL", - 'MaintenanceForm_Action="Repair"', 5) - button.event("[Progress1]", "Repairing", - 'MaintenanceForm_Action="Repair"', 6) - button.event("[Progress2]", "repairs", - 'MaintenanceForm_Action="Repair"', 7) - button.event("Reinstall", "ALL", - 'MaintenanceForm_Action="Repair"', 8) - button.event("[REMOVE]", "ALL", - 'MaintenanceForm_Action="Remove"', 11) - button.event("[Progress1]", "Removing", - 'MaintenanceForm_Action="Remove"', 12) - button.event("[Progress2]", "removes", - 'MaintenanceForm_Action="Remove"', 13) - button.event("Remove", "ALL", - 'MaintenanceForm_Action="Remove"', 14) - button.event("EndDialog", "Return", - 'MaintenanceForm_Action<>"Change"', 20) - button = dialog.cancel("Cancel", "RepairRadioGroup") - button.event("SpawnDialog", "CancelDlg") - - def add_prepare_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "PrepareDlg", - self.x, self.y, self.width, self.height, self.modeless, - self.title, "Cancel", "Cancel", "Cancel") - dialog.text("Description", 15, 70, 320, 40, 0x30003, - "Please wait while the installer prepares to guide you through" - "the installation.") - dialog.title("Welcome to the [ProductName] installer") - text = dialog.text("ActionText", 15, 110, 320, 20, 0x30003, - "Pondering...") - text.mapping("ActionText", "Text") - text = dialog.text("ActionData", 15, 135, 320, 30, 0x30003, None) - text.mapping("ActionData", "Text") - dialog.back("Back", None, active = False) - dialog.next("Next", None, active = False) - button = dialog.cancel("Cancel", None) - button.event("SpawnDialog", "CancelDlg") - - def add_progress_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "ProgressDlg", - self.x, self.y, self.width, self.height, self.modeless, - self.title, "Cancel", "Cancel", "Cancel", bitmap = False) - dialog.text("Title", 20, 15, 200, 15, 0x30003, - r"{\DlgFontBold8}[Progress1] [ProductName]") - dialog.text("Text", 35, 65, 300, 30, 3, - "Please wait while the installer [Progress2] [ProductName].") - dialog.text("StatusLabel", 35, 100 ,35, 20, 3, "Status:") - text = dialog.text("ActionText", 70, 100, self.width - 70, 20, 3, - "Pondering...") - text.mapping("ActionText", "Text") - control = dialog.control("ProgressBar", "ProgressBar", 35, 120, 300, - 10, 65537, None, "Progress done", None, None) - control.mapping("SetProgress", "Progress") - dialog.back("< Back", "Next", active = False) - dialog.next("Next >", "Cancel", active = False) - button = dialog.cancel("Cancel", "Back") - button.event("SpawnDialog", "CancelDlg") - - def add_properties(self): - metadata = self.distribution.metadata - props = [ - ('DistVersion', metadata.get_version()), - ('DefaultUIFont', 'DlgFont8'), - ('ErrorDialog', 'ErrorDlg'), - ('Progress1', 'Install'), - ('Progress2', 'installs'), - ('MaintenanceForm_Action', 'Repair') - ] - email = metadata.author_email or metadata.maintainer_email - if email: - props.append(("ARPCONTACT", email)) - if metadata.url: - props.append(("ARPURLINFOABOUT", metadata.url)) - if self.upgrade_code is not None: - props.append(("UpgradeCode", self.upgrade_code)) - msilib.add_data(self.db, 'Property', props) - - def add_select_directory_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, - "SelectDirectoryDlg", self.x, self.y, self.width, self.height, - self.modal, self.title, "Next", "Next", "Cancel") - dialog.title("Select destination directory") - dialog.back("< Back", None, active = False) - button = dialog.next("Next >", "Cancel") - button.event("SetTargetPath", "TARGETDIR", ordering = 1) - button.event("SpawnWaitDialog", "WaitForCostingDlg", ordering = 2) - button.event("EndDialog", "Return", ordering = 3) - button = dialog.cancel("Cancel", "DirectoryCombo") - button.event("SpawnDialog", "CancelDlg") - dialog.control("DirectoryCombo", "DirectoryCombo", 15, 70, 272, 80, - 393219, "TARGETDIR", None, "DirectoryList", None) - dialog.control("DirectoryList", "DirectoryList", 15, 90, 308, 136, 3, - "TARGETDIR", None, "PathEdit", None) - dialog.control("PathEdit", "PathEdit", 15, 230, 306, 16, 3, - "TARGETDIR", None, "Next", None) - button = dialog.pushbutton("Up", 306, 70, 18, 18, 3, "Up", None) - button.event("DirectoryListUp", "0") - button = dialog.pushbutton("NewDir", 324, 70, 30, 18, 3, "New", None) - button.event("DirectoryListNew", "0") - - def add_text_styles(self): - msilib.add_data(self.db, 'TextStyle', - [("DlgFont8", "Tahoma", 9, None, 0), - ("DlgFontBold8", "Tahoma", 8, None, 1), - ("VerdanaBold10", "Verdana", 10, None, 1), - ("VerdanaRed9", "Verdana", 9, 255, 0) - ]) - - def add_ui(self): - self.add_text_styles() - self.add_error_dialog() - self.add_fatal_error_dialog() - self.add_cancel_dialog() - self.add_exit_dialog() - self.add_user_exit_dialog() - self.add_files_in_use_dialog() - self.add_wait_for_costing_dialog() - self.add_prepare_dialog() - self.add_select_directory_dialog() - self.add_progress_dialog() - self.add_maintenance_type_dialog() - - def add_upgrade_config(self, sversion): - if self.upgrade_code is not None: - msilib.add_data(self.db, 'Upgrade', - [(self.upgrade_code, None, sversion, None, 513, None, - "REMOVEOLDVERSION"), - (self.upgrade_code, sversion, None, None, 257, None, - "REMOVENEWVERSION") - ]) - - def add_user_exit_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "UserExit", - self.x, self.y, self.width, self.height, self.modal, - self.title, "Finish", "Finish", "Finish") - dialog.title("[ProductName] installer was interrupted") - dialog.back("< Back", "Finish", active = False) - dialog.cancel("Cancel", "Back", active = False) - dialog.text("Description1", 15, 70, 320, 80, 0x30003, - "[ProductName] setup was interrupted. Your system has not " - "been modified. To install this program at a later time, " - "please run the installation again.") - dialog.text("Description2", 15, 155, 320, 20, 0x30003, - "Click the Finish button to exit the installer.") - button = dialog.next("Finish", "Cancel", name = "Finish") - button.event("EndDialog", "Exit") - - def add_wait_for_costing_dialog(self): - dialog = msilib.Dialog(self.db, "WaitForCostingDlg", 50, 10, 260, 85, - self.modal, self.title, "Return", "Return", "Return") - dialog.text("Text", 48, 15, 194, 30, 3, - "Please wait while the installer finishes determining your " - "disk space requirements.") - button = dialog.pushbutton("Return", 102, 57, 56, 17, 3, "Return", - None) - button.event("EndDialog", "Exit") - - def get_initial_target_dir(self, fullname): - return r"[ProgramFilesFolder]\%s" % fullname - - def get_installer_filename(self, fullname): - return os.path.join(self.dist_dir, "%s.msi" % fullname) - - def initialize_options(self): - distutils.command.bdist_msi.bdist_msi.initialize_options(self) - self.upgrade_code = None - self.add_to_path = None - - def run(self): - if not self.skip_build: - self.run_command('build') - install = self.reinitialize_command('install', reinit_subcommands = 1) - install.prefix = self.bdist_dir - install.skip_build = self.skip_build - install.warn_dir = 0 - distutils.log.info("installing to %s", self.bdist_dir) - install.ensure_finalized() - install.run() - self.mkpath(self.dist_dir) - fullname = self.distribution.get_fullname() - filename = os.path.abspath(self.get_installer_filename(fullname)) - if os.path.exists(filename): - os.unlink(filename) - metadata = self.distribution.metadata - author = metadata.author or metadata.maintainer or "UNKNOWN" - version = metadata.get_version() - sversion = "%d.%d.%d" % \ - distutils.version.StrictVersion(version).version - self.db = msilib.init_database(filename, msilib.schema, - self.distribution.metadata.name, msilib.gen_uuid(), sversion, - author) - msilib.add_tables(self.db, msilib.sequence) - self.add_properties() - self.add_config(fullname) - self.add_upgrade_config(sversion) - self.add_ui() - self.add_files() - self.db.Commit() - if not self.keep_temp: - distutils.dir_util.remove_tree(self.bdist_dir, - dry_run = self.dry_run) - diff --git a/setup/installer/cx_Freeze/cxfreeze b/setup/installer/cx_Freeze/cxfreeze deleted file mode 100755 index acd6789833..0000000000 --- a/setup/installer/cx_Freeze/cxfreeze +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/python - -from cx_Freeze import main - -main() - diff --git a/setup/installer/cx_Freeze/initscripts/Console.py b/setup/installer/cx_Freeze/initscripts/Console.py deleted file mode 100755 index e10649d722..0000000000 --- a/setup/installer/cx_Freeze/initscripts/Console.py +++ /dev/null @@ -1,35 +0,0 @@ -#------------------------------------------------------------------------------ -# Console.py -# Initialization script for cx_Freeze which manipulates the path so that the -# directory in which the executable is found is searched for extensions but -# no other directory is searched. It also sets the attribute sys.frozen so that -# the Win32 extensions behave as expected. -#------------------------------------------------------------------------------ - -import encodings -import os -import sys -import warnings -import zipimport - -sys.frozen = True -sys.path = sys.path[:4] - -os.environ["TCL_LIBRARY"] = os.path.join(DIR_NAME, "tcl") -os.environ["TK_LIBRARY"] = os.path.join(DIR_NAME, "tk") - -m = __import__("__main__") -importer = zipimport.zipimporter(INITSCRIPT_ZIP_FILE_NAME) -if INITSCRIPT_ZIP_FILE_NAME != SHARED_ZIP_FILE_NAME: - moduleName = m.__name__ -else: - name, ext = os.path.splitext(os.path.basename(os.path.normcase(FILE_NAME))) - moduleName = "%s__main__" % name -code = importer.get_code(moduleName) -exec code in m.__dict__ - -if sys.version_info[:2] >= (2, 5): - module = sys.modules.get("threading") - if module is not None: - module._shutdown() - diff --git a/setup/installer/cx_Freeze/initscripts/ConsoleKeepPath.py b/setup/installer/cx_Freeze/initscripts/ConsoleKeepPath.py deleted file mode 100755 index 60151a1ff6..0000000000 --- a/setup/installer/cx_Freeze/initscripts/ConsoleKeepPath.py +++ /dev/null @@ -1,19 +0,0 @@ -#------------------------------------------------------------------------------ -# ConsoleKeepPath.py -# Initialization script for cx_Freeze which leaves the path alone and does -# not set the sys.frozen attribute. -#------------------------------------------------------------------------------ - -import sys -import zipimport - -m = __import__("__main__") -importer = zipimport.zipimporter(INITSCRIPT_ZIP_FILE_NAME) -code = importer.get_code(m.__name__) -exec code in m.__dict__ - -if sys.version_info[:2] >= (2, 5): - module = sys.modules.get("threading") - if module is not None: - module._shutdown() - diff --git a/setup/installer/cx_Freeze/initscripts/ConsoleSetLibPath.py b/setup/installer/cx_Freeze/initscripts/ConsoleSetLibPath.py deleted file mode 100755 index b558652c0a..0000000000 --- a/setup/installer/cx_Freeze/initscripts/ConsoleSetLibPath.py +++ /dev/null @@ -1,38 +0,0 @@ -#------------------------------------------------------------------------------ -# ConsoleSetLibPath.py -# Initialization script for cx_Freeze which manipulates the path so that the -# directory in which the executable is found is searched for extensions but -# no other directory is searched. The environment variable LD_LIBRARY_PATH is -# manipulated first, however, to ensure that shared libraries found in the -# target directory are found. This requires a restart of the executable because -# the environment variable LD_LIBRARY_PATH is only checked at startup. -#------------------------------------------------------------------------------ - -import encodings -import os -import sys -import warnings -import zipimport - -paths = os.environ.get("LD_LIBRARY_PATH", "").split(os.pathsep) -if DIR_NAME not in paths: - paths.insert(0, DIR_NAME) - os.environ["LD_LIBRARY_PATH"] = os.pathsep.join(paths) - os.execv(sys.executable, sys.argv) - -sys.frozen = True -sys.path = sys.path[:4] - -os.environ["TCL_LIBRARY"] = os.path.join(DIR_NAME, "tcl") -os.environ["TK_LIBRARY"] = os.path.join(DIR_NAME, "tk") - -m = __import__("__main__") -importer = zipimport.zipimporter(INITSCRIPT_ZIP_FILE_NAME) -code = importer.get_code(m.__name__) -exec code in m.__dict__ - -if sys.version_info[:2] >= (2, 5): - module = sys.modules.get("threading") - if module is not None: - module._shutdown() - diff --git a/setup/installer/cx_Freeze/initscripts/SharedLib.py b/setup/installer/cx_Freeze/initscripts/SharedLib.py deleted file mode 100755 index 0445367010..0000000000 --- a/setup/installer/cx_Freeze/initscripts/SharedLib.py +++ /dev/null @@ -1,20 +0,0 @@ -#------------------------------------------------------------------------------ -# SharedLib.py -# Initialization script for cx_Freeze which behaves similarly to the one for -# console based applications but must handle the case where Python has already -# been initialized and another DLL of this kind has been loaded. As such it -# does not block the path unless sys.frozen is not already set. -#------------------------------------------------------------------------------ - -import encodings -import os -import sys -import warnings - -if not hasattr(sys, "frozen"): - sys.frozen = True - sys.path = sys.path[:4] - -os.environ["TCL_LIBRARY"] = os.path.join(DIR_NAME, "tcl") -os.environ["TK_LIBRARY"] = os.path.join(DIR_NAME, "tk") - diff --git a/setup/installer/cx_Freeze/initscripts/SharedLibSource.py b/setup/installer/cx_Freeze/initscripts/SharedLibSource.py deleted file mode 100755 index 3edae93694..0000000000 --- a/setup/installer/cx_Freeze/initscripts/SharedLibSource.py +++ /dev/null @@ -1,23 +0,0 @@ -#------------------------------------------------------------------------------ -# SharedLibSource.py -# Initialization script for cx_Freeze which imports the site module (as per -# normal processing of a Python script) and then searches for a file with the -# same name as the shared library but with the extension .pth. The entries in -# this file are used to modify the path to use for subsequent imports. -#------------------------------------------------------------------------------ - -import os -import sys -import warnings - -# the site module must be imported for normal behavior to take place; it is -# done dynamically so that cx_Freeze will not add all modules referenced by -# the site module to the frozen executable -__import__("site") - -# now locate the pth file to modify the path appropriately -baseName, ext = os.path.splitext(FILE_NAME) -pathFileName = baseName + ".pth" -sys.path = [s.strip() for s in file(pathFileName).read().splitlines()] + \ - sys.path - diff --git a/setup/installer/cx_Freeze/samples/advanced/advanced_1.py b/setup/installer/cx_Freeze/samples/advanced/advanced_1.py deleted file mode 100644 index 2f1b68bceb..0000000000 --- a/setup/installer/cx_Freeze/samples/advanced/advanced_1.py +++ /dev/null @@ -1,7 +0,0 @@ -import sys - -print "Hello from cx_Freeze Advanced #1" -print - -module = __import__("testfreeze_1") - diff --git a/setup/installer/cx_Freeze/samples/advanced/advanced_2.py b/setup/installer/cx_Freeze/samples/advanced/advanced_2.py deleted file mode 100644 index 1a6fe37e62..0000000000 --- a/setup/installer/cx_Freeze/samples/advanced/advanced_2.py +++ /dev/null @@ -1,7 +0,0 @@ -import sys - -print "Hello from cx_Freeze Advanced #2" -print - -module = __import__("testfreeze_2") - diff --git a/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_1.py b/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_1.py deleted file mode 100644 index 6157b72a69..0000000000 --- a/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_1.py +++ /dev/null @@ -1 +0,0 @@ -print "Test freeze module #1" diff --git a/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_2.py b/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_2.py deleted file mode 100644 index ca133a7d58..0000000000 --- a/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_2.py +++ /dev/null @@ -1 +0,0 @@ -print "Test freeze module #2" diff --git a/setup/installer/cx_Freeze/samples/advanced/setup.py b/setup/installer/cx_Freeze/samples/advanced/setup.py deleted file mode 100644 index 3a79cf23af..0000000000 --- a/setup/installer/cx_Freeze/samples/advanced/setup.py +++ /dev/null @@ -1,31 +0,0 @@ -# An advanced setup script to create multiple executables and demonstrate a few -# of the features available to setup scripts -# -# hello.py is a very simple "Hello, world" type script which also displays the -# environment in which the script runs -# -# Run the build process by running the command 'python setup.py build' -# -# If everything works well you should find a subdirectory in the build -# subdirectory that contains the files needed to run the script without Python - -import sys -from cx_Freeze import setup, Executable - -executables = [ - Executable("advanced_1.py"), - Executable("advanced_2.py") -] - -buildOptions = dict( - compressed = True, - includes = ["testfreeze_1", "testfreeze_2"], - path = sys.path + ["modules"]) - -setup( - name = "advanced_cx_Freeze_sample", - version = "0.1", - description = "Advanced sample cx_Freeze script", - options = dict(build_exe = buildOptions), - executables = executables) - diff --git a/setup/installer/cx_Freeze/samples/matplotlib/setup.py b/setup/installer/cx_Freeze/samples/matplotlib/setup.py deleted file mode 100644 index 54bd97fc3f..0000000000 --- a/setup/installer/cx_Freeze/samples/matplotlib/setup.py +++ /dev/null @@ -1,27 +0,0 @@ -# A simple setup script to create an executable using matplotlib. -# -# test_matplotlib.py is a very simple matplotlib application that demonstrates -# its use. -# -# Run the build process by running the command 'python setup.py build' -# -# If everything works well you should find a subdirectory in the build -# subdirectory that contains the files needed to run the application - -import cx_Freeze -import sys - -base = None -if sys.platform == "win32": - base = "Win32GUI" - -executables = [ - cx_Freeze.Executable("test_matplotlib.py", base = base) -] - -cx_Freeze.setup( - name = "test_matplotlib", - version = "0.1", - description = "Sample matplotlib script", - executables = executables) - diff --git a/setup/installer/cx_Freeze/samples/matplotlib/test_matplotlib.py b/setup/installer/cx_Freeze/samples/matplotlib/test_matplotlib.py deleted file mode 100644 index 2029845ca5..0000000000 --- a/setup/installer/cx_Freeze/samples/matplotlib/test_matplotlib.py +++ /dev/null @@ -1,48 +0,0 @@ -from numpy import arange, sin, pi -import matplotlib -matplotlib.use('WXAgg') -from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas -from matplotlib.backends.backend_wx import NavigationToolbar2Wx -from matplotlib.figure import Figure -from wx import * - -class CanvasFrame(Frame): - def __init__(self): - Frame.__init__(self,None,-1, 'CanvasFrame',size=(550,350)) - self.SetBackgroundColour(NamedColor("WHITE")) - self.figure = Figure() - self.axes = self.figure.add_subplot(111) - t = arange(0.0,3.0,0.01) - s = sin(2*pi*t) - self.axes.plot(t,s) - self.canvas = FigureCanvas(self, -1, self.figure) - self.sizer = BoxSizer(VERTICAL) - self.sizer.Add(self.canvas, 1, LEFT | TOP | GROW) - self.SetSizerAndFit(self.sizer) - self.add_toolbar() - - def add_toolbar(self): - self.toolbar = NavigationToolbar2Wx(self.canvas) - self.toolbar.Realize() - if Platform == '__WXMAC__': - self.SetToolBar(self.toolbar) - else: - tw, th = self.toolbar.GetSizeTuple() - fw, fh = self.canvas.GetSizeTuple() - self.toolbar.SetSize(Size(fw, th)) - self.sizer.Add(self.toolbar, 0, LEFT | EXPAND) - self.toolbar.update() - - def OnPaint(self, event): - self.canvas.draw() - -class App(App): - def OnInit(self): - 'Create the main window and insert the custom frame' - frame = CanvasFrame() - frame.Show(True) - return True - -app = App(0) -app.MainLoop() - diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/__init__.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/__init__.py deleted file mode 100644 index 5a170fd2dd..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -print "importing pkg1" -from . import sub1 -from . import pkg2 diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/__init__.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/__init__.py deleted file mode 100644 index 71e0b1fbe6..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -print "importing pkg1.pkg2" -from . import sub3 -from .. import sub4 diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub3.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub3.py deleted file mode 100644 index 1719aadb41..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub3.py +++ /dev/null @@ -1,3 +0,0 @@ -print "importing pkg1.pkg2.sub3" -from . import sub5 -from .. import sub6 diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub5.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub5.py deleted file mode 100644 index 1c91b8fa23..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub5.py +++ /dev/null @@ -1 +0,0 @@ -print "importing pkg1.pkg2.sub5" diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub1.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/sub1.py deleted file mode 100644 index 514bd88a87..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub1.py +++ /dev/null @@ -1,2 +0,0 @@ -print "importing pkg1.sub1" -from . import sub2 diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub2.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/sub2.py deleted file mode 100644 index 63a0838b25..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub2.py +++ /dev/null @@ -1 +0,0 @@ -print "importing pkg1.sub2" diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub4.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/sub4.py deleted file mode 100644 index 3a8e760e43..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub4.py +++ /dev/null @@ -1 +0,0 @@ -print 'importing pkg1.sub4' diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub6.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/sub6.py deleted file mode 100644 index 1e7d7955d6..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub6.py +++ /dev/null @@ -1 +0,0 @@ -print "importing pkg1.sub6" diff --git a/setup/installer/cx_Freeze/samples/relimport/relimport.py b/setup/installer/cx_Freeze/samples/relimport/relimport.py deleted file mode 100644 index 39cb50c91d..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/relimport.py +++ /dev/null @@ -1 +0,0 @@ -import pkg1 diff --git a/setup/installer/cx_Freeze/samples/relimport/setup.py b/setup/installer/cx_Freeze/samples/relimport/setup.py deleted file mode 100644 index b8b3f3853b..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/setup.py +++ /dev/null @@ -1,16 +0,0 @@ -# relimport.py is a very simple script that tests importing using relative -# imports (available in Python 2.5 and up) -# -# Run the build process by running the command 'python setup.py build' -# -# If everything works well you should find a subdirectory in the build -# subdirectory that contains the files needed to run the script without Python - -from cx_Freeze import setup, Executable - -setup( - name = "relimport", - version = "0.1", - description = "Sample cx_Freeze script for relative imports", - executables = [Executable("relimport.py")]) - diff --git a/setup/installer/cx_Freeze/samples/simple/hello.py b/setup/installer/cx_Freeze/samples/simple/hello.py deleted file mode 100644 index 0fb32405bc..0000000000 --- a/setup/installer/cx_Freeze/samples/simple/hello.py +++ /dev/null @@ -1,19 +0,0 @@ -import sys - -print "Hello from cx_Freeze" -print - -print "sys.executable", sys.executable -print "sys.prefix", sys.prefix -print - -print "ARGUMENTS:" -for a in sys.argv: - print a -print - -print "PATH:" -for p in sys.path: - print p -print - diff --git a/setup/installer/cx_Freeze/samples/simple/setup.py b/setup/installer/cx_Freeze/samples/simple/setup.py deleted file mode 100644 index 25de838b10..0000000000 --- a/setup/installer/cx_Freeze/samples/simple/setup.py +++ /dev/null @@ -1,18 +0,0 @@ -# A very simple setup script to create a single executable -# -# hello.py is a very simple "Hello, world" type script which also displays the -# environment in which the script runs -# -# Run the build process by running the command 'python setup.py build' -# -# If everything works well you should find a subdirectory in the build -# subdirectory that contains the files needed to run the script without Python - -from cx_Freeze import setup, Executable - -setup( - name = "hello", - version = "0.1", - description = "Sample cx_Freeze script", - executables = [Executable("hello.py")]) - diff --git a/setup/installer/cx_Freeze/samples/wx/setup.py b/setup/installer/cx_Freeze/samples/wx/setup.py deleted file mode 100644 index 9412996859..0000000000 --- a/setup/installer/cx_Freeze/samples/wx/setup.py +++ /dev/null @@ -1,25 +0,0 @@ -# A simple setup script to create an executable running wxPython. This also -# demonstrates the method for creating a Windows executable that does not have -# an associated console. -# -# wxapp.py is a very simple "Hello, world" type wxPython application -# -# Run the build process by running the command 'python setup.py build' -# -# If everything works well you should find a subdirectory in the build -# subdirectory that contains the files needed to run the application - -import sys - -from cx_Freeze import setup, Executable - -base = None -if sys.platform == "win32": - base = "Win32GUI" - -setup( - name = "hello", - version = "0.1", - description = "Sample cx_Freeze wxPython script", - executables = [Executable("wxapp.py", base = base)]) - diff --git a/setup/installer/cx_Freeze/samples/wx/wxapp.py b/setup/installer/cx_Freeze/samples/wx/wxapp.py deleted file mode 100644 index 7baa90b8d1..0000000000 --- a/setup/installer/cx_Freeze/samples/wx/wxapp.py +++ /dev/null @@ -1,42 +0,0 @@ -import wx - -class Frame(wx.Frame): - - def __init__(self): - wx.Frame.__init__(self, parent = None, title = "Hello from cx_Freeze") - panel = wx.Panel(self) - closeMeButton = wx.Button(panel, -1, "Close Me") - wx.EVT_BUTTON(self, closeMeButton.GetId(), self.OnCloseMe) - wx.EVT_CLOSE(self, self.OnCloseWindow) - pushMeButton = wx.Button(panel, -1, "Push Me") - wx.EVT_BUTTON(self, pushMeButton.GetId(), self.OnPushMe) - sizer = wx.BoxSizer(wx.HORIZONTAL) - sizer.Add(closeMeButton, flag = wx.ALL, border = 20) - sizer.Add(pushMeButton, flag = wx.ALL, border = 20) - panel.SetSizer(sizer) - topSizer = wx.BoxSizer(wx.VERTICAL) - topSizer.Add(panel, flag = wx.ALL | wx.EXPAND) - topSizer.Fit(self) - - def OnCloseMe(self, event): - self.Close(True) - - def OnPushMe(self, event): - 1 / 0 - - def OnCloseWindow(self, event): - self.Destroy() - - -class App(wx.App): - - def OnInit(self): - frame = Frame() - frame.Show(True) - self.SetTopWindow(frame) - return True - - -app = App(1) -app.MainLoop() - diff --git a/setup/installer/cx_Freeze/setup.py b/setup/installer/cx_Freeze/setup.py deleted file mode 100755 index b51453aa7a..0000000000 --- a/setup/installer/cx_Freeze/setup.py +++ /dev/null @@ -1,197 +0,0 @@ -""" -Distutils script for cx_Freeze. -""" - -import distutils.command.bdist_rpm -import distutils.command.build_ext -import distutils.command.build_scripts -import distutils.command.install -import distutils.command.install_data -import distutils.sysconfig -import os -import sys - -from distutils.core import setup -from distutils.extension import Extension - -class bdist_rpm(distutils.command.bdist_rpm.bdist_rpm): - - # rpm automatically byte compiles all Python files in a package but we - # don't want that to happen for initscripts and samples so we tell it to - # ignore those files - def _make_spec_file(self): - specFile = distutils.command.bdist_rpm.bdist_rpm._make_spec_file(self) - specFile.insert(0, "%define _unpackaged_files_terminate_build 0%{nil}") - return specFile - - def run(self): - distutils.command.bdist_rpm.bdist_rpm.run(self) - specFile = os.path.join(self.rpm_base, "SPECS", - "%s.spec" % self.distribution.get_name()) - queryFormat = "%{name}-%{version}-%{release}.%{arch}.rpm" - command = "rpm -q --qf '%s' --specfile %s" % (queryFormat, specFile) - origFileName = os.popen(command).read() - parts = origFileName.split("-") - parts.insert(2, "py%s%s" % sys.version_info[:2]) - newFileName = "-".join(parts) - self.move_file(os.path.join("dist", origFileName), - os.path.join("dist", newFileName)) - - -class build_ext(distutils.command.build_ext.build_ext): - - def build_extension(self, ext): - if ext.name.find("bases") < 0: - distutils.command.build_ext.build_ext.build_extension(self, ext) - return - os.environ["LD_RUN_PATH"] = "${ORIGIN}:${ORIGIN}/../lib" - objects = self.compiler.compile(ext.sources, - output_dir = self.build_temp, - include_dirs = ext.include_dirs, - debug = self.debug, - depends = ext.depends) - fileName = os.path.splitext(self.get_ext_filename(ext.name))[0] - fullName = os.path.join(self.build_lib, fileName) - libraryDirs = ext.library_dirs or [] - libraries = self.get_libraries(ext) - extraArgs = ext.extra_link_args or [] - if sys.platform != "win32": - vars = distutils.sysconfig.get_config_vars() - libraryDirs.append(vars["LIBPL"]) - libraries.append("python%s.%s" % sys.version_info[:2]) - if vars["LINKFORSHARED"]: - extraArgs.extend(vars["LINKFORSHARED"].split()) - if vars["LIBS"]: - extraArgs.extend(vars["LIBS"].split()) - if vars["LIBM"]: - extraArgs.append(vars["LIBM"]) - if vars["BASEMODLIBS"]: - extraArgs.extend(vars["BASEMODLIBS"].split()) - if vars["LOCALMODLIBS"]: - extraArgs.extend(vars["LOCALMODLIBS"].split()) - extraArgs.append("-s") - self.compiler.link_executable(objects, fullName, - libraries = libraries, - library_dirs = libraryDirs, - runtime_library_dirs = ext.runtime_library_dirs, - extra_postargs = extraArgs, - debug = self.debug) - - def get_ext_filename(self, name): - fileName = distutils.command.build_ext.build_ext.get_ext_filename(self, - name) - if name.find("bases") < 0: - return fileName - ext = self.compiler.exe_extension or "" - return os.path.splitext(fileName)[0] + ext - - -class build_scripts(distutils.command.build_scripts.build_scripts): - - def copy_scripts(self): - distutils.command.build_scripts.build_scripts.copy_scripts(self) - if sys.platform == "win32": - for script in self.scripts: - batFileName = os.path.join(self.build_dir, script + ".bat") - fullScriptName = r"%s\Scripts\%s" % \ - (os.path.dirname(sys.executable), script) - command = "%s %s %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9" % \ - (sys.executable, fullScriptName) - file(batFileName, "w").write("@echo off\n\n%s" % command) - - -class install(distutils.command.install.install): - - def get_sub_commands(self): - subCommands = distutils.command.install.install.get_sub_commands(self) - subCommands.append("install_packagedata") - return subCommands - - -class install_packagedata(distutils.command.install_data.install_data): - - def run(self): - installCommand = self.get_finalized_command("install") - installDir = getattr(installCommand, "install_lib") - sourceDirs = ["samples", "initscripts"] - while sourceDirs: - sourceDir = sourceDirs.pop(0) - targetDir = os.path.join(installDir, "cx_Freeze", sourceDir) - self.mkpath(targetDir) - for name in os.listdir(sourceDir): - if name == "build" or name.startswith("."): - continue - fullSourceName = os.path.join(sourceDir, name) - if os.path.isdir(fullSourceName): - sourceDirs.append(fullSourceName) - else: - fullTargetName = os.path.join(targetDir, name) - self.copy_file(fullSourceName, fullTargetName) - self.outfiles.append(fullTargetName) - - -commandClasses = dict( - build_ext = build_ext, - build_scripts = build_scripts, - bdist_rpm = bdist_rpm, - install = install, - install_packagedata = install_packagedata) - -if sys.platform == "win32": - libraries = ["imagehlp"] -else: - libraries = [] -utilModule = Extension("cx_Freeze.util", ["source/util.c"], - libraries = libraries) -depends = ["source/bases/Common.c"] -if sys.platform == "win32": - if sys.version_info[:2] >= (2, 6): - extraSources = ["source/bases/manifest.rc"] - else: - extraSources = ["source/bases/dummy.rc"] -else: - extraSources = [] -console = Extension("cx_Freeze.bases.Console", - ["source/bases/Console.c"] + extraSources, depends = depends) -consoleKeepPath = Extension("cx_Freeze.bases.ConsoleKeepPath", - ["source/bases/ConsoleKeepPath.c"] + extraSources, depends = depends) -extensions = [utilModule, console, consoleKeepPath] -if sys.platform == "win32": - gui = Extension("cx_Freeze.bases.Win32GUI", - ["source/bases/Win32GUI.c"] + extraSources, - depends = depends, extra_link_args = ["-mwindows"]) - extensions.append(gui) - -docFiles = "LICENSE.txt README.txt HISTORY.txt doc/cx_Freeze.html" - -classifiers = [ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: Python Software Foundation License", - "Natural Language :: English", - "Operating System :: OS Independent", - "Programming Language :: C", - "Programming Language :: Python", - "Topic :: Software Development :: Build Tools", - "Topic :: Software Development :: Libraries :: Python Modules", - "Topic :: System :: Software Distribution", - "Topic :: Utilities" -] - -setup(name = "cx_Freeze", - description = "create standalone executables from Python scripts", - long_description = "create standalone executables from Python scripts", - version = "4.0.1", - cmdclass = commandClasses, - options = dict(bdist_rpm = dict(doc_files = docFiles), - install = dict(optimize = 1)), - ext_modules = extensions, - packages = ['cx_Freeze'], - maintainer="Anthony Tuininga", - maintainer_email="anthony.tuininga@gmail.com", - url = "http://cx-freeze.sourceforge.net", - scripts = ["cxfreeze"], - classifiers = classifiers, - keywords = "freeze", - license = "Python Software Foundation License") - diff --git a/setup/installer/cx_Freeze/source/bases/Common.c b/setup/installer/cx_Freeze/source/bases/Common.c deleted file mode 100644 index ce1e137ebb..0000000000 --- a/setup/installer/cx_Freeze/source/bases/Common.c +++ /dev/null @@ -1,262 +0,0 @@ -//----------------------------------------------------------------------------- -// Common.c -// Routines which are common to running frozen executables. -//----------------------------------------------------------------------------- - -#include -#include -#include - -// global variables (used for simplicity) -static PyObject *g_FileName = NULL; -static PyObject *g_DirName = NULL; -static PyObject *g_ExclusiveZipFileName = NULL; -static PyObject *g_SharedZipFileName = NULL; -static PyObject *g_InitScriptZipFileName = NULL; - -//----------------------------------------------------------------------------- -// GetDirName() -// Return the directory name of the given path. -//----------------------------------------------------------------------------- -static int GetDirName( - const char *path, // path to calculate dir name for - PyObject **dirName) // directory name (OUT) -{ - int i; - - for (i = strlen(path); i > 0 && path[i] != SEP; --i); - *dirName = PyString_FromStringAndSize(path, i); - if (!*dirName) - return FatalError("cannot create string for directory name"); - return 0; -} - - -//----------------------------------------------------------------------------- -// SetExecutableName() -// Set the script to execute and calculate the directory in which the -// executable is found as well as the exclusive (only for this executable) and -// shared zip file names. -//----------------------------------------------------------------------------- -static int SetExecutableName( - const char *fileName) // script to execute -{ - char temp[MAXPATHLEN + 12], *ptr; -#ifndef WIN32 - char linkData[MAXPATHLEN + 1]; - struct stat statData; - size_t linkSize, i; - PyObject *dirName; -#endif - - // store file name - g_FileName = PyString_FromString(fileName); - if (!g_FileName) - return FatalError("cannot create string for file name"); - -#ifndef WIN32 - for (i = 0; i < 25; i++) { - if (lstat(fileName, &statData) < 0) { - PyErr_SetFromErrnoWithFilename(PyExc_OSError, (char*) fileName); - return FatalError("unable to stat file"); - } - if (!S_ISLNK(statData.st_mode)) - break; - linkSize = readlink(fileName, linkData, sizeof(linkData)); - if (linkSize < 0) { - PyErr_SetFromErrnoWithFilename(PyExc_OSError, (char*) fileName); - return FatalError("unable to stat file"); - } - if (linkData[0] == '/') { - Py_DECREF(g_FileName); - g_FileName = PyString_FromStringAndSize(linkData, linkSize); - } else { - if (GetDirName(PyString_AS_STRING(g_FileName), &dirName) < 0) - return -1; - if (PyString_GET_SIZE(dirName) + linkSize + 1 > MAXPATHLEN) { - Py_DECREF(dirName); - return FatalError("cannot dereference link, path too large"); - } - strcpy(temp, PyString_AS_STRING(dirName)); - strcat(temp, "/"); - strcat(temp, linkData); - Py_DECREF(g_FileName); - g_FileName = PyString_FromString(temp); - } - if (!g_FileName) - return FatalError("cannot create string for linked file name"); - fileName = PyString_AS_STRING(g_FileName); - } -#endif - - // calculate and store directory name - if (GetDirName(fileName, &g_DirName) < 0) - return -1; - - // calculate and store exclusive zip file name - strcpy(temp, fileName); - ptr = temp + strlen(temp) - 1; - while (ptr > temp && *ptr != SEP && *ptr != '.') - ptr--; - if (*ptr == '.') - *ptr = '\0'; - strcat(temp, ".zip"); - g_ExclusiveZipFileName = PyString_FromString(temp); - if (!g_ExclusiveZipFileName) - return FatalError("cannot create string for exclusive zip file name"); - - // calculate and store shared zip file name - strcpy(temp, PyString_AS_STRING(g_DirName)); - ptr = temp + strlen(temp); - *ptr++ = SEP; - strcpy(ptr, "library.zip"); - g_SharedZipFileName = PyString_FromString(temp); - if (!g_SharedZipFileName) - return FatalError("cannot create string for shared zip file name"); - - return 0; -} - - -//----------------------------------------------------------------------------- -// SetPathToSearch() -// Set the path to search. This includes the file (for those situations where -// a zip file is attached to the executable itself), the directory where the -// executable is found (to search for extensions), the exclusive zip file -// name and the shared zip file name. -//----------------------------------------------------------------------------- -static int SetPathToSearch(void) -{ - PyObject *pathList; - - pathList = PySys_GetObject("path"); - if (!pathList) - return FatalError("cannot acquire sys.path"); - if (PyList_Insert(pathList, 0, g_FileName) < 0) - return FatalError("cannot insert file name into sys.path"); - if (PyList_Insert(pathList, 1, g_DirName) < 0) - return FatalError("cannot insert directory name into sys.path"); - if (PyList_Insert(pathList, 2, g_ExclusiveZipFileName) < 0) - return FatalError("cannot insert exclusive zip name into sys.path"); - if (PyList_Insert(pathList, 3, g_SharedZipFileName) < 0) - return FatalError("cannot insert shared zip name into sys.path"); - return 0; -} - - -//----------------------------------------------------------------------------- -// GetImporterHelper() -// Helper which is used to locate the importer for the initscript. -//----------------------------------------------------------------------------- -static PyObject *GetImporterHelper( - PyObject *module, // zipimport module - PyObject *fileName) // name of file to search -{ - PyObject *importer; - - importer = PyObject_CallMethod(module, "zipimporter", "O", fileName); - if (importer) - g_InitScriptZipFileName = fileName; - else - PyErr_Clear(); - return importer; -} - - -//----------------------------------------------------------------------------- -// GetImporter() -// Return the importer which will be used for importing the initialization -// script. The executable itself is searched first, followed by the exclusive -// zip file and finally by the shared zip file. -//----------------------------------------------------------------------------- -static int GetImporter( - PyObject **importer) // importer (OUT) -{ - PyObject *module; - - module = PyImport_ImportModule("zipimport"); - if (!module) - return FatalError("cannot import zipimport module"); - *importer = GetImporterHelper(module, g_FileName); - if (!*importer) { - *importer = GetImporterHelper(module, g_ExclusiveZipFileName); - if (!*importer) - *importer = GetImporterHelper(module, g_SharedZipFileName); - } - Py_DECREF(module); - if (!*importer) - return FatalError("cannot get zipimporter instance"); - return 0; -} - - -//----------------------------------------------------------------------------- -// PopulateInitScriptDict() -// Return the dictionary used by the initialization script. -//----------------------------------------------------------------------------- -static int PopulateInitScriptDict( - PyObject *dict) // dictionary to populate -{ - if (!dict) - return FatalError("unable to create temporary dictionary"); - if (PyDict_SetItemString(dict, "__builtins__", PyEval_GetBuiltins()) < 0) - return FatalError("unable to set __builtins__"); - if (PyDict_SetItemString(dict, "FILE_NAME", g_FileName) < 0) - return FatalError("unable to set FILE_NAME"); - if (PyDict_SetItemString(dict, "DIR_NAME", g_DirName) < 0) - return FatalError("unable to set DIR_NAME"); - if (PyDict_SetItemString(dict, "EXCLUSIVE_ZIP_FILE_NAME", - g_ExclusiveZipFileName) < 0) - return FatalError("unable to set EXCLUSIVE_ZIP_FILE_NAME"); - if (PyDict_SetItemString(dict, "SHARED_ZIP_FILE_NAME", - g_SharedZipFileName) < 0) - return FatalError("unable to set SHARED_ZIP_FILE_NAME"); - if (PyDict_SetItemString(dict, "INITSCRIPT_ZIP_FILE_NAME", - g_InitScriptZipFileName) < 0) - return FatalError("unable to set INITSCRIPT_ZIP_FILE_NAME"); - return 0; -} - - - - -//----------------------------------------------------------------------------- -// ExecuteScript() -// Execute the script found within the file. -//----------------------------------------------------------------------------- -static int ExecuteScript( - const char *fileName) // name of file containing Python code -{ - PyObject *importer, *dict, *code, *temp; - - if (SetExecutableName(fileName) < 0) - return -1; - if (SetPathToSearch() < 0) - return -1; - importer = NULL; - if (GetImporter(&importer) < 0) - return -1; - - // create and populate dictionary for initscript module - dict = PyDict_New(); - if (PopulateInitScriptDict(dict) < 0) { - Py_XDECREF(dict); - Py_DECREF(importer); - return -1; - } - - // locate and execute script - code = PyObject_CallMethod(importer, "get_code", "s", "cx_Freeze__init__"); - Py_DECREF(importer); - if (!code) - return FatalError("unable to locate initialization module"); - temp = PyEval_EvalCode( (PyCodeObject*) code, dict, dict); - Py_DECREF(code); - Py_DECREF(dict); - if (!temp) - return FatalScriptError(); - Py_DECREF(temp); - - return 0; -} - diff --git a/setup/installer/cx_Freeze/source/bases/Console.c b/setup/installer/cx_Freeze/source/bases/Console.c deleted file mode 100644 index d6a8a515a0..0000000000 --- a/setup/installer/cx_Freeze/source/bases/Console.c +++ /dev/null @@ -1,72 +0,0 @@ -//----------------------------------------------------------------------------- -// Console.c -// Main routine for frozen programs which run in a console. -//----------------------------------------------------------------------------- - -#include -#ifdef __WIN32__ -#include -#endif - -//----------------------------------------------------------------------------- -// FatalError() -// Prints a fatal error. -//----------------------------------------------------------------------------- -static int FatalError( - const char *message) // message to print -{ - PyErr_Print(); - Py_FatalError(message); - return -1; -} - - -//----------------------------------------------------------------------------- -// FatalScriptError() -// Prints a fatal error in the initialization script. -//----------------------------------------------------------------------------- -static int FatalScriptError(void) -{ - PyErr_Print(); - return -1; -} - - -#include "Common.c" - - -//----------------------------------------------------------------------------- -// main() -// Main routine for frozen programs. -//----------------------------------------------------------------------------- -int main(int argc, char **argv) -{ - const char *fileName; - char *encoding; - - // initialize Python - Py_NoSiteFlag = 1; - Py_FrozenFlag = 1; - Py_IgnoreEnvironmentFlag = 1; - - encoding = getenv("PYTHONIOENCODING"); - if (encoding != NULL) { - Py_FileSystemDefaultEncoding = strndup(encoding, 100); - } - - Py_SetPythonHome(""); - Py_SetProgramName(argv[0]); - fileName = Py_GetProgramFullPath(); - - Py_Initialize(); - PySys_SetArgv(argc, argv); - - - // do the work - if (ExecuteScript(fileName) < 0) - return 1; - - Py_Finalize(); - return 0; -} - diff --git a/setup/installer/cx_Freeze/source/bases/ConsoleKeepPath.c b/setup/installer/cx_Freeze/source/bases/ConsoleKeepPath.c deleted file mode 100644 index 3ad00f8488..0000000000 --- a/setup/installer/cx_Freeze/source/bases/ConsoleKeepPath.c +++ /dev/null @@ -1,60 +0,0 @@ -//----------------------------------------------------------------------------- -// ConsoleKeepPath.c -// Main routine for frozen programs which need a Python installation to do -// their work. -//----------------------------------------------------------------------------- - -#include -#ifdef __WIN32__ -#include -#endif - -//----------------------------------------------------------------------------- -// FatalError() -// Prints a fatal error. -//----------------------------------------------------------------------------- -static int FatalError( - const char *message) // message to print -{ - PyErr_Print(); - Py_FatalError(message); - return -1; -} - - -//----------------------------------------------------------------------------- -// FatalScriptError() -// Prints a fatal error in the initialization script. -//----------------------------------------------------------------------------- -static int FatalScriptError(void) -{ - PyErr_Print(); - return -1; -} - - -#include "Common.c" - - -//----------------------------------------------------------------------------- -// main() -// Main routine for frozen programs. -//----------------------------------------------------------------------------- -int main(int argc, char **argv) -{ - const char *fileName; - - // initialize Python - Py_SetProgramName(argv[0]); - fileName = Py_GetProgramFullPath(); - Py_Initialize(); - PySys_SetArgv(argc, argv); - - // do the work - if (ExecuteScript(fileName) < 0) - return 1; - - Py_Finalize(); - return 0; -} - diff --git a/setup/installer/cx_Freeze/source/bases/Win32GUI.c b/setup/installer/cx_Freeze/source/bases/Win32GUI.c deleted file mode 100644 index f5bbe74dba..0000000000 --- a/setup/installer/cx_Freeze/source/bases/Win32GUI.c +++ /dev/null @@ -1,242 +0,0 @@ -//----------------------------------------------------------------------------- -// Win32GUI.c -// Main routine for frozen programs written for the Win32 GUI subsystem. -//----------------------------------------------------------------------------- - -#include -#include - -//----------------------------------------------------------------------------- -// FatalError() -// Handle a fatal error. -//----------------------------------------------------------------------------- -static int FatalError( - char *a_Message) // message to display -{ - MessageBox(NULL, a_Message, "cx_Freeze Fatal Error", MB_ICONERROR); - Py_Finalize(); - return -1; -} - - -//----------------------------------------------------------------------------- -// StringifyObject() -// Stringify a Python object. -//----------------------------------------------------------------------------- -static char *StringifyObject( - PyObject *object, // object to stringify - PyObject **stringRep) // string representation -{ - if (object) { - *stringRep = PyObject_Str(object); - if (*stringRep) - return PyString_AS_STRING(*stringRep); - return "Unable to stringify"; - } - - // object is NULL - *stringRep = NULL; - return "None"; -} - - -//----------------------------------------------------------------------------- -// FatalPythonErrorNoTraceback() -// Handle a fatal Python error without traceback. -//----------------------------------------------------------------------------- -static int FatalPythonErrorNoTraceback( - PyObject *origType, // exception type - PyObject *origValue, // exception value - char *message) // message to display -{ - PyObject *typeStrRep, *valueStrRep, *origTypeStrRep, *origValueStrRep; - char *totalMessage, *typeStr, *valueStr, *origTypeStr, *origValueStr; - PyObject *type, *value, *traceback; - int totalMessageLength; - char *messageFormat; - - // fetch error and string representations of the error - PyErr_Fetch(&type, &value, &traceback); - origTypeStr = StringifyObject(origType, &origTypeStrRep); - origValueStr = StringifyObject(origValue, &origValueStrRep); - typeStr = StringifyObject(type, &typeStrRep); - valueStr = StringifyObject(value, &valueStrRep); - - // fill out the message to be displayed - messageFormat = "Type: %s\nValue: %s\nOther Type: %s\nOtherValue: %s\n%s"; - totalMessageLength = strlen(origTypeStr) + strlen(origValueStr) + - strlen(typeStr) + strlen(valueStr) + strlen(message) + - strlen(messageFormat) + 1; - totalMessage = malloc(totalMessageLength); - if (!totalMessage) - return FatalError("Out of memory!"); - sprintf(totalMessage, messageFormat, typeStr, valueStr, origTypeStr, - origValueStr, message); - - // display the message - MessageBox(NULL, totalMessage, - "cx_Freeze: Python error in main script (traceback unavailable)", - MB_ICONERROR); - free(totalMessage); - return -1; -} - - -//----------------------------------------------------------------------------- -// ArgumentValue() -// Return a suitable argument value by replacing NULL with Py_None. -//----------------------------------------------------------------------------- -static PyObject *ArgumentValue( - PyObject *object) // argument to massage -{ - if (object) { - Py_INCREF(object); - return object; - } - Py_INCREF(Py_None); - return Py_None; -} - - -//----------------------------------------------------------------------------- -// HandleSystemExitException() -// Handles a system exit exception differently. If an integer value is passed -// through then that becomes the exit value; otherwise the string value of the -// value passed through is displayed in a message box. -//----------------------------------------------------------------------------- -static void HandleSystemExitException() -{ - PyObject *type, *value, *traceback, *valueStr; - int exitCode = 0; - char *message; - - PyErr_Fetch(&type, &value, &traceback); - if (PyInstance_Check(value)) { - PyObject *code = PyObject_GetAttrString(value, "code"); - if (code) { - Py_DECREF(value); - value = code; - if (value == Py_None) - Py_Exit(0); - } - } - if (PyInt_Check(value)) - exitCode = PyInt_AsLong(value); - else { - message = StringifyObject(value, &valueStr); - MessageBox(NULL, message, "cx_Freeze: Application Terminated", - MB_ICONERROR); - Py_XDECREF(valueStr); - exitCode = 1; - } - Py_Exit(exitCode); -} - - -//----------------------------------------------------------------------------- -// FatalScriptError() -// Handle a fatal Python error with traceback. -//----------------------------------------------------------------------------- -static int FatalScriptError() -{ - PyObject *type, *value, *traceback, *argsTuple, *module, *method, *result; - int tracebackLength, i; - char *tracebackStr; - - // if a system exception, handle it specially - if (PyErr_ExceptionMatches(PyExc_SystemExit)) - HandleSystemExitException(); - - // get the exception details - PyErr_Fetch(&type, &value, &traceback); - - // import the traceback module - module = PyImport_ImportModule("traceback"); - if (!module) - return FatalPythonErrorNoTraceback(type, value, - "Cannot import traceback module."); - - // get the format_exception method - method = PyObject_GetAttrString(module, "format_exception"); - Py_DECREF(module); - if (!method) - return FatalPythonErrorNoTraceback(type, value, - "Cannot get format_exception method."); - - // create a tuple for the arguments - argsTuple = PyTuple_New(3); - if (!argsTuple) { - Py_DECREF(method); - return FatalPythonErrorNoTraceback(type, value, - "Cannot create arguments tuple for traceback."); - } - PyTuple_SET_ITEM(argsTuple, 0, ArgumentValue(type)); - PyTuple_SET_ITEM(argsTuple, 1, ArgumentValue(value)); - PyTuple_SET_ITEM(argsTuple, 2, ArgumentValue(traceback)); - - // call the format_exception method - result = PyObject_CallObject(method, argsTuple); - Py_DECREF(method); - Py_DECREF(argsTuple); - if (!result) - return FatalPythonErrorNoTraceback(type, value, - "Failed calling format_exception method."); - - // determine length of string representation of formatted traceback - tracebackLength = 1; - for (i = 0; i < PyList_GET_SIZE(result); i++) - tracebackLength += PyString_GET_SIZE(PyList_GET_ITEM(result, i)); - - // create a string representation of the formatted traceback - tracebackStr = malloc(tracebackLength); - if (!tracebackStr) { - Py_DECREF(result); - return FatalError("Out of memory!"); - } - tracebackStr[0] = '\0'; - for (i = 0; i < PyList_GET_SIZE(result); i++) - strcat(tracebackStr, PyString_AS_STRING(PyList_GET_ITEM(result, i))); - Py_DECREF(result); - - // bring up the error - MessageBox(NULL, tracebackStr, "cx_Freeze: Python error in main script", - MB_ICONERROR); - Py_Finalize(); - return 1; -} - - -#include "Common.c" - - -//----------------------------------------------------------------------------- -// WinMain() -// Main routine for the executable in Windows. -//----------------------------------------------------------------------------- -int WINAPI WinMain( - HINSTANCE instance, // handle to application - HINSTANCE prevInstance, // previous handle to application - LPSTR commandLine, // command line - int showFlag) // show flag -{ - const char *fileName; - - // initialize Python - Py_NoSiteFlag = 1; - Py_FrozenFlag = 1; - Py_IgnoreEnvironmentFlag = 1; - Py_SetPythonHome(""); - Py_SetProgramName(__argv[0]); - fileName = Py_GetProgramFullPath(); - Py_Initialize(); - PySys_SetArgv(__argc, __argv); - - // do the work - if (ExecuteScript(fileName) < 0) - return 1; - - // terminate Python - Py_Finalize(); - return 0; -} - diff --git a/setup/installer/cx_Freeze/source/bases/dummy.rc b/setup/installer/cx_Freeze/source/bases/dummy.rc deleted file mode 100644 index 5c1fa1a194..0000000000 --- a/setup/installer/cx_Freeze/source/bases/dummy.rc +++ /dev/null @@ -1,5 +0,0 @@ -STRINGTABLE -{ - 1, "Just to ensure that buggy EndUpdateResource doesn't fall over." -} - diff --git a/setup/installer/cx_Freeze/source/bases/manifest.rc b/setup/installer/cx_Freeze/source/bases/manifest.rc deleted file mode 100644 index 2b7ee27ab5..0000000000 --- a/setup/installer/cx_Freeze/source/bases/manifest.rc +++ /dev/null @@ -1,3 +0,0 @@ -#include "dummy.rc" - -1 24 source/bases/manifest.txt diff --git a/setup/installer/cx_Freeze/source/util.c b/setup/installer/cx_Freeze/source/util.c deleted file mode 100644 index 1c8eb0c0ca..0000000000 --- a/setup/installer/cx_Freeze/source/util.c +++ /dev/null @@ -1,418 +0,0 @@ -//----------------------------------------------------------------------------- -// util.c -// Shared library for use by cx_Freeze. -//----------------------------------------------------------------------------- - -#include - -#ifdef WIN32 -#include -#include - -#pragma pack(2) - -typedef struct { - BYTE bWidth; // Width, in pixels, of the image - BYTE bHeight; // Height, in pixels, of the image - BYTE bColorCount; // Number of colors in image - BYTE bReserved; // Reserved ( must be 0) - WORD wPlanes; // Color Planes - WORD wBitCount; // Bits per pixel - DWORD dwBytesInRes; // How many bytes in this resource? - DWORD dwImageOffset; // Where in the file is this image? -} ICONDIRENTRY; - -typedef struct { - WORD idReserved; // Reserved (must be 0) - WORD idType; // Resource Type (1 for icons) - WORD idCount; // How many images? - ICONDIRENTRY idEntries[0]; // An entry for each image -} ICONDIR; - -typedef struct { - BYTE bWidth; // Width, in pixels, of the image - BYTE bHeight; // Height, in pixels, of the image - BYTE bColorCount; // Number of colors in image - BYTE bReserved; // Reserved ( must be 0) - WORD wPlanes; // Color Planes - WORD wBitCount; // Bits per pixel - DWORD dwBytesInRes; // How many bytes in this resource? - WORD nID; // resource ID -} GRPICONDIRENTRY; - -typedef struct { - WORD idReserved; // Reserved (must be 0) - WORD idType; // Resource Type (1 for icons) - WORD idCount; // How many images? - GRPICONDIRENTRY idEntries[0]; // An entry for each image -} GRPICONDIR; -#endif - -//----------------------------------------------------------------------------- -// Globals -//----------------------------------------------------------------------------- -#ifdef WIN32 -static PyObject *g_BindErrorException = NULL; -static PyObject *g_ImageNames = NULL; -#endif - - -#ifdef WIN32 -//----------------------------------------------------------------------------- -// BindStatusRoutine() -// Called by BindImageEx() at various points. This is used to determine the -// dependency tree which is later examined by cx_Freeze. -//----------------------------------------------------------------------------- -static BOOL __stdcall BindStatusRoutine( - IMAGEHLP_STATUS_REASON reason, // reason called - PSTR imageName, // name of image being examined - PSTR dllName, // name of DLL - ULONG virtualAddress, // computed virtual address - ULONG parameter) // parameter (value depends on reason) -{ - char fileName[MAX_PATH + 1]; - - switch (reason) { - case BindImportModule: - if (!SearchPath(NULL, dllName, NULL, sizeof(fileName), fileName, - NULL)) - return FALSE; - Py_INCREF(Py_None); - if (PyDict_SetItemString(g_ImageNames, fileName, Py_None) < 0) - return FALSE; - break; - default: - break; - } - return TRUE; -} - - -//----------------------------------------------------------------------------- -// GetFileData() -// Return the data for the given file. -//----------------------------------------------------------------------------- -static int GetFileData( - const char *fileName, // name of file to read - char **data) // pointer to data (OUT) -{ - DWORD numberOfBytesRead, dataSize; - HANDLE file; - - file = CreateFile(fileName, GENERIC_READ, FILE_SHARE_READ, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (file == INVALID_HANDLE_VALUE) - return -1; - dataSize = GetFileSize(file, NULL); - if (dataSize == INVALID_FILE_SIZE) { - CloseHandle(file); - return -1; - } - *data = PyMem_Malloc(dataSize); - if (!*data) { - CloseHandle(file); - return -1; - } - if (!ReadFile(file, *data, dataSize, &numberOfBytesRead, NULL)) { - CloseHandle(file); - return -1; - } - CloseHandle(file); - return 0; -} - - -//----------------------------------------------------------------------------- -// CreateGroupIconResource() -// Return the group icon resource given the icon file data. -//----------------------------------------------------------------------------- -static GRPICONDIR *CreateGroupIconResource( - ICONDIR *iconDir, // icon information - DWORD *resourceSize) // size of resource (OUT) -{ - GRPICONDIR *groupIconDir; - int i; - - *resourceSize = sizeof(GRPICONDIR) + - sizeof(GRPICONDIRENTRY) * iconDir->idCount; - groupIconDir = PyMem_Malloc(*resourceSize); - if (!groupIconDir) - return NULL; - groupIconDir->idReserved = iconDir->idReserved; - groupIconDir->idType = iconDir->idType; - groupIconDir->idCount = iconDir->idCount; - for (i = 0; i < iconDir->idCount; i++) { - groupIconDir->idEntries[i].bWidth = iconDir->idEntries[i].bWidth; - groupIconDir->idEntries[i].bHeight = iconDir->idEntries[i].bHeight; - groupIconDir->idEntries[i].bColorCount = - iconDir->idEntries[i].bColorCount; - groupIconDir->idEntries[i].bReserved = iconDir->idEntries[i].bReserved; - groupIconDir->idEntries[i].wPlanes = iconDir->idEntries[i].wPlanes; - groupIconDir->idEntries[i].wBitCount = iconDir->idEntries[i].wBitCount; - groupIconDir->idEntries[i].dwBytesInRes = - iconDir->idEntries[i].dwBytesInRes; - groupIconDir->idEntries[i].nID = i + 1; - } - - return groupIconDir; -} - - -//----------------------------------------------------------------------------- -// ExtAddIcon() -// Add the icon as a resource to the specified file. -//----------------------------------------------------------------------------- -static PyObject *ExtAddIcon( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - char *executableName, *iconName, *data, *iconData; - GRPICONDIR *groupIconDir; - DWORD resourceSize; - ICONDIR *iconDir; - BOOL succeeded; - HANDLE handle; - int i; - - if (!PyArg_ParseTuple(args, "ss", &executableName, &iconName)) - return NULL; - - // begin updating the executable - handle = BeginUpdateResource(executableName, FALSE); - if (!handle) { - PyErr_SetExcFromWindowsErrWithFilename(PyExc_WindowsError, - GetLastError(), executableName); - return NULL; - } - - // first attempt to get the data from the icon file - data = NULL; - succeeded = TRUE; - groupIconDir = NULL; - if (GetFileData(iconName, &data) < 0) - succeeded = FALSE; - iconDir = (ICONDIR*) data; - - // next, attempt to add a group icon resource - if (succeeded) { - groupIconDir = CreateGroupIconResource(iconDir, &resourceSize); - if (groupIconDir) - succeeded = UpdateResource(handle, RT_GROUP_ICON, - MAKEINTRESOURCE(1), - MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), - groupIconDir, resourceSize); - else succeeded = FALSE; - } - - // next, add each icon as a resource - if (succeeded) { - for (i = 0; i < iconDir->idCount; i++) { - iconData = &data[iconDir->idEntries[i].dwImageOffset]; - resourceSize = iconDir->idEntries[i].dwBytesInRes; - succeeded = UpdateResource(handle, RT_ICON, MAKEINTRESOURCE(i + 1), - MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), iconData, - resourceSize); - if (!succeeded) - break; - } - } - - // finish writing the resource (or discarding the changes upon an error) - if (!EndUpdateResource(handle, !succeeded)) { - if (succeeded) { - succeeded = FALSE; - PyErr_SetExcFromWindowsErrWithFilename(PyExc_WindowsError, - GetLastError(), executableName); - } - } - - // clean up - if (groupIconDir) - PyMem_Free(groupIconDir); - if (data) - PyMem_Free(data); - if (!succeeded) - return NULL; - - Py_INCREF(Py_None); - return Py_None; -} - - -//----------------------------------------------------------------------------- -// ExtBeginUpdateResource() -// Wrapper for BeginUpdateResource(). -//----------------------------------------------------------------------------- -static PyObject *ExtBeginUpdateResource( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - BOOL deleteExistingResources; - char *fileName; - HANDLE handle; - - deleteExistingResources = TRUE; - if (!PyArg_ParseTuple(args, "s|i", &fileName, &deleteExistingResources)) - return NULL; - handle = BeginUpdateResource(fileName, deleteExistingResources); - if (!handle) { - PyErr_SetExcFromWindowsErrWithFilename(PyExc_WindowsError, - GetLastError(), fileName); - return NULL; - } - return PyInt_FromLong((long) handle); -} - - -//----------------------------------------------------------------------------- -// ExtUpdateResource() -// Wrapper for UpdateResource(). -//----------------------------------------------------------------------------- -static PyObject *ExtUpdateResource( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - int resourceType, resourceId, resourceDataSize; - char *resourceData; - HANDLE handle; - - if (!PyArg_ParseTuple(args, "iiis#", &handle, &resourceType, &resourceId, - &resourceData, &resourceDataSize)) - return NULL; - if (!UpdateResource(handle, MAKEINTRESOURCE(resourceType), - MAKEINTRESOURCE(resourceId), - MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), resourceData, - resourceDataSize)) { - PyErr_SetExcFromWindowsErr(PyExc_WindowsError, GetLastError()); - return NULL; - } - - Py_INCREF(Py_None); - return Py_None; -} - - -//----------------------------------------------------------------------------- -// ExtEndUpdateResource() -// Wrapper for EndUpdateResource(). -//----------------------------------------------------------------------------- -static PyObject *ExtEndUpdateResource( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - BOOL discardChanges; - HANDLE handle; - - discardChanges = FALSE; - if (!PyArg_ParseTuple(args, "i|i", &handle, &discardChanges)) - return NULL; - if (!EndUpdateResource(handle, discardChanges)) { - PyErr_SetExcFromWindowsErr(PyExc_WindowsError, GetLastError()); - return NULL; - } - - Py_INCREF(Py_None); - return Py_None; -} - - -//----------------------------------------------------------------------------- -// ExtGetDependentFiles() -// Return a list of files that this file depends on. -//----------------------------------------------------------------------------- -static PyObject *ExtGetDependentFiles( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - PyObject *results; - char *imageName; - - if (!PyArg_ParseTuple(args, "s", &imageName)) - return NULL; - g_ImageNames = PyDict_New(); - if (!g_ImageNames) - return NULL; - if (!BindImageEx(BIND_NO_BOUND_IMPORTS | BIND_NO_UPDATE | BIND_ALL_IMAGES, - imageName, NULL, NULL, BindStatusRoutine)) { - Py_DECREF(g_ImageNames); - PyErr_SetExcFromWindowsErrWithFilename(g_BindErrorException, - GetLastError(), imageName); - return NULL; - } - results = PyDict_Keys(g_ImageNames); - Py_DECREF(g_ImageNames); - return results; -} - - -//----------------------------------------------------------------------------- -// ExtGetSystemDir() -// Return the Windows directory (C:\Windows for example). -//----------------------------------------------------------------------------- -static PyObject *ExtGetSystemDir( - PyObject *self, // passthrough argument - PyObject *args) // arguments (ignored) -{ - char dir[MAX_PATH + 1]; - - if (GetSystemDirectory(dir, sizeof(dir))) - return PyString_FromString(dir); - PyErr_SetExcFromWindowsErr(PyExc_RuntimeError, GetLastError()); - return NULL; -} -#endif - - -//----------------------------------------------------------------------------- -// ExtSetOptimizeFlag() -// Set the optimize flag as needed. -//----------------------------------------------------------------------------- -static PyObject *ExtSetOptimizeFlag( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - if (!PyArg_ParseTuple(args, "i", &Py_OptimizeFlag)) - return NULL; - Py_INCREF(Py_None); - return Py_None; -} - - -//----------------------------------------------------------------------------- -// Methods -//----------------------------------------------------------------------------- -static PyMethodDef g_ModuleMethods[] = { - { "SetOptimizeFlag", ExtSetOptimizeFlag, METH_VARARGS }, -#ifdef WIN32 - { "BeginUpdateResource", ExtBeginUpdateResource, METH_VARARGS }, - { "UpdateResource", ExtUpdateResource, METH_VARARGS }, - { "EndUpdateResource", ExtEndUpdateResource, METH_VARARGS }, - { "AddIcon", ExtAddIcon, METH_VARARGS }, - { "GetDependentFiles", ExtGetDependentFiles, METH_VARARGS }, - { "GetSystemDir", ExtGetSystemDir, METH_NOARGS }, -#endif - { NULL } -}; - - -//----------------------------------------------------------------------------- -// initutil() -// Initialization routine for the shared libary. -//----------------------------------------------------------------------------- -void initutil(void) -{ - PyObject *module; - - module = Py_InitModule("cx_Freeze.util", g_ModuleMethods); - if (!module) - return; -#ifdef WIN32 - g_BindErrorException = PyErr_NewException("cx_Freeze.util.BindError", - NULL, NULL); - if (!g_BindErrorException) - return; - if (PyModule_AddObject(module, "BindError", g_BindErrorException) < 0) - return; -#endif -} - diff --git a/setup/installer/windows/notes.rst b/setup/installer/windows/notes.rst index cd02c80d2e..8f1cc80bb5 100644 --- a/setup/installer/windows/notes.rst +++ b/setup/installer/windows/notes.rst @@ -1,17 +1,85 @@ Notes on setting up the windows development environment ======================================================== -Set CMAKE_PREFIX_PATH to C:\cygwin\home\kovid\sw +Overview +---------- + +calibre and all its dependencies are compiled using Visual Studio 2008 express edition (free from MS). All the following instructions must be run in a visual studio command prompt unless otherwise noted. + +calibre contains build script to automate the building of the calibre installer. These scripts make certain assumptions about where dependencies are installed. Your best best is to setup a VM and replicate the paths mentioned below exactly. + +Basic dependencies +-------------------- + +Install cygwin and setup sshd (optional). Used to enable automation of the calibre build VM from linux, not needed if you are building manually. + +Install MS Visual Studio 2008, cmake, python and WiX. + +Set CMAKE_PREFIX_PATH environment variable to C:\cygwin\home\kovid\sw + +This is where all dependencies will be installed. + +Add C:\Python26\Scripts and C:\Python26 to PATH + +Install setuptools from http://pypi.python.org/pypi/setuptools +If there are no windows binaries already compiled for the version of python you are using then download the source and run the following command in the folder where the source has been unpacked:: + + python setup.py install + +Run the following command to install python dependencies:: + + easy_install --always-unzip -U ipython mechanize BeautifulSoup pyreadline python-dateutil dnspython + +Qt +-------- + +Extract Qt sourcecode to C:\Qt\4.x.x. Run configure and make:: + + configure -opensource -qt-zlib -qt-gif -qt-libmng -qt-libpng -qt-libtiff -qt-libjpeg -release -platform win32-msvc -no-qt3support -webkit -xmlpatterns -no-phonon + nmake + +SIP +----- + +Available from: http://www.riverbankcomputing.co.uk/software/sip/download :: + + python configure.py -p win32-msvc2008 + nmake + nmake install + +PyQt4 +---------- + +Compiling instructions:: + + python configure.py -c -j5 -e QtCore -e QtGui -e QtSvg -e QtNetwork -e QtWebKit -e QtXmlPatterns --verbose + nmake + nmake install + +Python Imaging Library +------------------------ + +Install as normal using provided installer. + +Libunrar +---------- + +http://www.rarlab.com/rar/UnRARDLL.exe install and add C:\Program Files\UnrarDLL to PATH + +lxml +------ + +http://pypi.python.org/pypi/lxml jpeg-7 ------- -Copy -jconfig.vc to jconfig.h, makejsln.vc9 to jpeg.sln, -makeasln.vc9 to apps.sln, makejvcp.vc9 to jpeg.vcproj, -makecvcp.vc9 to cjpeg.vcproj, makedvcp.vc9 to djpeg.vcproj, -maketvcp.vc9 to jpegtran.vcproj, makervcp.vc9 to rdjpgcom.vcproj, and -makewvcp.vc9 to wrjpgcom.vcproj. (Note that the renaming is critical!) +Copy:: + jconfig.vc to jconfig.h, makejsln.vc9 to jpeg.sln, + makeasln.vc9 to apps.sln, makejvcp.vc9 to jpeg.vcproj, + makecvcp.vc9 to cjpeg.vcproj, makedvcp.vc9 to djpeg.vcproj, + maketvcp.vc9 to jpegtran.vcproj, makervcp.vc9 to rdjpgcom.vcproj, and + makewvcp.vc9 to wrjpgcom.vcproj. (Note that the renaming is critical!) Load jpeg.sln in Visual Studio @@ -169,28 +237,10 @@ cp build/podofo/build/src/Release/podofo.exp lib/ cp build/podofo/build/podofo_config.h include/podofo/ cp -r build/podofo/src/* include/podofo/ -The following patch was required to get it to compile: +You have to use >0.8.1 (>= revision 1269) + +The following patch (against -r1269) was required to get it to compile: -Index: src/PdfImage.cpp -=================================================================== ---- src/PdfImage.cpp (revision 1261) -+++ src/PdfImage.cpp (working copy) -@@ -627,7 +627,7 @@ - - long lLen = static_cast(pInfo->rowbytes * height); - char* pBuffer = static_cast(malloc(sizeof(char) * lLen)); -- png_bytep pRows[height]; -+ png_bytepp pRows = static_cast(malloc(sizeof(png_bytep)*height)); - for(int y=0; y(pBuffer + (y * pInfo->rowbytes)); -@@ -672,6 +672,7 @@ - this->SetImageData( width, height, pInfo->bit_depth, &stream ); - - free(pBuffer); -+ free(pRows); - } - #endif // PODOFO_HAVE_PNG_LIB Index: src/PdfFiltersPrivate.cpp =================================================================== @@ -214,7 +264,7 @@ Edit VisualMagick/configure/configure.cpp to set int projectType = MULTITHREADEDDLL; -Run configure.bat ina visual studio command prompt +Run configure.bat in a visual studio command prompt Edit magick/magick-config.h @@ -222,3 +272,19 @@ Undefine ProvideDllMain and MAGICKCORE_X11_DELEGATE Now open VisualMagick/VisualDynamicMT.sln set to Release Remove the CORE_xlib project + +calibre +--------- + +Take a linux calibre tree on which you have run the following command:: + + python setup.py stage1 + +and copy it to windows. + +Run:: + + python setup.py build + python setup.py win32_freeze + +This will create the .msi in the dist directory. diff --git a/setup/publish.py b/setup/publish.py index 599c881be3..ba8a4992a7 100644 --- a/setup/publish.py +++ b/setup/publish.py @@ -73,11 +73,11 @@ class Manual(Command): os.makedirs(d) if not os.path.exists('.build'+os.sep+'html'): os.makedirs('.build'+os.sep+'html') - os.environ['__appname__']= __appname__ - os.environ['__version__']= __version__ - subprocess.check_call(['sphinx-build', '-b', 'custom', '-t', 'online', + os.environ['__appname__'] = __appname__ + os.environ['__version__'] = __version__ + subprocess.check_call(['sphinx-build', '-b', 'html', '-t', 'online', '-d', '.build/doctrees', '.', '.build/html']) - subprocess.check_call(['sphinx-build', '-b', 'epub', '-d', + subprocess.check_call(['sphinx-build', '-b', 'myepub', '-d', '.build/doctrees', '.', '.build/epub']) shutil.copyfile(self.j('.build', 'epub', 'calibre.epub'), self.j('.build', 'html', 'calibre.epub')) diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index f84941d371..16aaab73dd 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -3,7 +3,7 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import sys, os, re, logging, time, mimetypes, \ +import uuid, sys, os, re, logging, time, mimetypes, \ __builtin__, warnings, multiprocessing from urllib import getproxies __builtin__.__dict__['dynamic_property'] = lambda(func): func(None) @@ -23,6 +23,8 @@ from calibre.startup import winutil, winutilerror import mechanize +uuid.uuid4() # Imported before PyQt4 to workaround PyQt4 util-linux conflict on gentoo + if False: winutil, winutilerror, __appname__, islinux, __version__ fcntl, win32event, isfrozen, __author__, terminal_controller @@ -413,15 +415,13 @@ def entity_to_unicode(match, exceptions=[], encoding='cp1252', return check("'") if ent == 'hellips': ent = 'hellip' - if ent.lower().startswith(u'#x'): - num = int(ent[2:], 16) - if encoding is None or num > 255: - return check(my_unichr(num)) - return check(chr(num).decode(encoding)) - if ent.startswith(u'#'): + if ent.startswith('#'): try: - num = int(ent[1:]) - except ValueError: + if ent[1] in ('x', 'X'): + num = int(ent[2:], 16) + else: + num = int(ent[1:]) + except: return '&'+ent+';' if encoding is None or num > 255: return check(my_unichr(num)) diff --git a/src/calibre/constants.py b/src/calibre/constants.py index 3bfa589080..f8d6253912 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.7.10' +__version__ = '0.7.14' __author__ = "Kovid Goyal " import re @@ -60,6 +60,7 @@ if plugins is None: 'pictureflow', 'lzx', 'msdes', + 'magick', 'podofo', 'cPalmdoc', 'fontconfig', diff --git a/src/calibre/customize/__init__.py b/src/calibre/customize/__init__.py index 9a018231ef..88c9324239 100644 --- a/src/calibre/customize/__init__.py +++ b/src/calibre/customize/__init__.py @@ -262,31 +262,21 @@ class CatalogPlugin(Plugin): type = _('Catalog generator') - #: CLI parser options specific to this plugin, declared as namedtuple Option + #: CLI parser options specific to this plugin, declared as namedtuple Option:: #: - #: from collections import namedtuple - #: Option = namedtuple('Option', 'option, default, dest, help') - #: cli_options = [Option('--catalog-title', + #: from collections import namedtuple + #: Option = namedtuple('Option', 'option, default, dest, help') + #: cli_options = [Option('--catalog-title', #: default = 'My Catalog', #: dest = 'catalog_title', #: help = (_('Title of generated catalog. \nDefault:') + " '" + #: '%default' + "'"))] - #: cli_options parsed in library.cli:catalog_option_parser() - + #: cli_options parsed in library.cli:catalog_option_parser() cli_options = [] def search_sort_db(self, db, opts): - ''' - # Don't add Catalogs to the generated Catalogs - cat = _('Catalog') - if opts.search_text: - opts.search_text += ' not tag:'+cat - else: - opts.search_text = 'not tag:'+cat - ''' - db.search(opts.search_text) if opts.sort_by: @@ -349,8 +339,7 @@ class CatalogPlugin(Plugin): It should generate the catalog in the format specified in file_types, returning the absolute path to the generated catalog file. If an error is encountered - it should raise an Exception and return None. The default - implementation simply returns None. + it should raise an Exception. The generated catalog file should be created with the :meth:`temporary_file` method. @@ -358,10 +347,16 @@ class CatalogPlugin(Plugin): :param path_to_output: Absolute path to the generated catalog file. :param opts: A dictionary of keyword arguments :param db: A LibraryDatabase2 object - - :return: None - ''' # Default implementation does nothing raise NotImplementedError('CatalogPlugin.generate_catalog() default ' 'method, should be overridden in subclass') + +class InterfaceActionBase(Plugin): + + supported_platforms = ['windows', 'osx', 'linux'] + author = 'Kovid Goyal' + type = _('User Interface Action') + can_be_disabled = False + + actual_plugin = None diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index 35cb0ad3d2..7bdeaef481 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -438,7 +438,7 @@ from calibre.ebooks.txt.output import TXTOutput from calibre.customize.profiles import input_profiles, output_profiles from calibre.devices.apple.driver import ITUNES -from calibre.devices.hanlin.driver import HANLINV3, HANLINV5, BOOX +from calibre.devices.hanlin.driver import HANLINV3, HANLINV5, BOOX, SPECTRA from calibre.devices.blackberry.driver import BLACKBERRY from calibre.devices.cybook.driver import CYBOOK from calibre.devices.eb600.driver import EB600, COOL_ER, SHINEBOOK, \ @@ -467,12 +467,15 @@ from calibre.devices.kobo.driver import KOBO from calibre.ebooks.metadata.fetch import GoogleBooks, ISBNDB, Amazon, \ LibraryThing from calibre.ebooks.metadata.douban import DoubanBooks +from calibre.ebooks.metadata.covers import OpenLibraryCovers, \ + LibraryThingCovers from calibre.library.catalog import CSV_XML, EPUB_MOBI, BIBTEX from calibre.ebooks.epub.fix.unmanifested import Unmanifested from calibre.ebooks.epub.fix.epubcheck import Epubcheck plugins = [HTML2ZIP, PML2PMLZ, ArchiveExtract, GoogleBooks, ISBNDB, Amazon, - LibraryThing, DoubanBooks, CSV_XML, EPUB_MOBI, BIBTEX, Unmanifested, Epubcheck] + LibraryThing, DoubanBooks, CSV_XML, EPUB_MOBI, BIBTEX, Unmanifested, + Epubcheck, OpenLibraryCovers, LibraryThingCovers] plugins += [ ComicInput, EPUBInput, @@ -564,6 +567,7 @@ plugins += [ MENTOR, SWEEX, PDNOVEL, + SPECTRA, ITUNES, ] plugins += [x for x in list(locals().values()) if isinstance(x, type) and \ @@ -571,3 +575,97 @@ plugins += [x for x in list(locals().values()) if isinstance(x, type) and \ plugins += [x for x in list(locals().values()) if isinstance(x, type) and \ x.__name__.endswith('MetadataWriter')] plugins += input_profiles + output_profiles + +from calibre.customize import InterfaceActionBase + +class ActionAdd(InterfaceActionBase): + name = 'Add Books' + actual_plugin = 'calibre.gui2.actions.add:AddAction' + +class ActionFetchAnnotations(InterfaceActionBase): + name = 'Fetch Annotations' + actual_plugin = 'calibre.gui2.actions.annotate:FetchAnnotationsAction' + +class ActionGenerateCatalog(InterfaceActionBase): + name = 'Generate Catalog' + actual_plugin = 'calibre.gui2.actions.catalog:GenerateCatalogAction' + +class ActionConvert(InterfaceActionBase): + name = 'Convert Books' + actual_plugin = 'calibre.gui2.actions.convert:ConvertAction' + +class ActionDelete(InterfaceActionBase): + name = 'Remove Books' + actual_plugin = 'calibre.gui2.actions.delete:DeleteAction' + +class ActionEditMetadata(InterfaceActionBase): + name = 'Edit Metadata' + actual_plugin = 'calibre.gui2.actions.edit_metadata:EditMetadataAction' + +class ActionView(InterfaceActionBase): + name = 'View' + actual_plugin = 'calibre.gui2.actions.view:ViewAction' + +class ActionFetchNews(InterfaceActionBase): + name = 'Fetch News' + actual_plugin = 'calibre.gui2.actions.fetch_news:FetchNewsAction' + +class ActionSaveToDisk(InterfaceActionBase): + name = 'Save To Disk' + actual_plugin = 'calibre.gui2.actions.save_to_disk:SaveToDiskAction' + +class ActionShowBookDetails(InterfaceActionBase): + name = 'Show Book Details' + actual_plugin = 'calibre.gui2.actions.show_book_details:ShowBookDetailsAction' + +class ActionRestart(InterfaceActionBase): + name = 'Restart' + actual_plugin = 'calibre.gui2.actions.restart:RestartAction' + +class ActionOpenFolder(InterfaceActionBase): + name = 'Open Folder' + actual_plugin = 'calibre.gui2.actions.open:OpenFolderAction' + +class ActionSendToDevice(InterfaceActionBase): + name = 'Send To Device' + actual_plugin = 'calibre.gui2.actions.device:SendToDeviceAction' + +class ActionConnectShare(InterfaceActionBase): + name = 'Connect Share' + actual_plugin = 'calibre.gui2.actions.device:ConnectShareAction' + +class ActionHelp(InterfaceActionBase): + name = 'Help' + actual_plugin = 'calibre.gui2.actions.help:HelpAction' + +class ActionPreferences(InterfaceActionBase): + name = 'Preferences' + actual_plugin = 'calibre.gui2.actions.preferences:PreferencesAction' + +class ActionSimilarBooks(InterfaceActionBase): + name = 'Similar Books' + actual_plugin = 'calibre.gui2.actions.similar_books:SimilarBooksAction' + +class ActionChooseLibrary(InterfaceActionBase): + name = 'Choose Library' + actual_plugin = 'calibre.gui2.actions.choose_library:ChooseLibraryAction' + +class ActionAddToLibrary(InterfaceActionBase): + name = 'Add To Library' + actual_plugin = 'calibre.gui2.actions.add_to_library:AddToLibraryAction' + +class ActionEditCollections(InterfaceActionBase): + name = 'Edit Collections' + actual_plugin = 'calibre.gui2.actions.edit_collections:EditCollectionsAction' + +class ActionCopyToLibrary(InterfaceActionBase): + name = 'Copy To Library' + actual_plugin = 'calibre.gui2.actions.copy_to_library:CopyToLibraryAction' + +plugins += [ActionAdd, ActionFetchAnnotations, ActionGenerateCatalog, + ActionConvert, ActionDelete, ActionEditMetadata, ActionView, + ActionFetchNews, ActionSaveToDisk, ActionShowBookDetails, + ActionRestart, ActionOpenFolder, ActionConnectShare, + ActionSendToDevice, ActionHelp, ActionPreferences, ActionSimilarBooks, + ActionAddToLibrary, ActionEditCollections, ActionChooseLibrary, + ActionCopyToLibrary] diff --git a/src/calibre/customize/conversion.py b/src/calibre/customize/conversion.py index 6fd3fb9932..72c067747d 100644 --- a/src/calibre/customize/conversion.py +++ b/src/calibre/customize/conversion.py @@ -28,7 +28,7 @@ class ConversionOption(object): def validate_parameters(self): ''' - Validate the parameters passed to :method:`__init__`. + Validate the parameters passed to :meth:`__init__`. ''' if re.match(r'[a-zA-Z_]([a-zA-Z0-9_])*', self.name) is None: raise ValueError(self.name + ' is not a valid Python identifier') @@ -96,7 +96,7 @@ class InputFormatPlugin(Plugin): InputFormatPlugins are responsible for converting a document into HTML+OPF+CSS+etc. The results of the conversion *must* be encoded in UTF-8. - The main action happens in :method:`convert`. + The main action happens in :meth:`convert`. ''' type = _('Conversion Input') @@ -109,15 +109,19 @@ class InputFormatPlugin(Plugin): #: If True, this input plugin generates a collection of images, #: one per HTML file. You can obtain access to the images via - #: convenience method, :method:`get_image_collection`. + #: convenience method, :meth:`get_image_collection`. is_image_collection = False + #: Number of CPU cores used by this plugin + #: A value of -1 means that it uses all available cores + core_usage = 1 + #: If set to True, the input plugin will perform special processing #: to make its output suitable for viewing for_viewer = False #: Options shared by all Input format plugins. Do not override - #: in sub-classes. Use :member:`options` instead. Every option must be an + #: in sub-classes. Use :attr:`options` instead. Every option must be an #: instance of :class:`OptionRecommendation`. common_options = set([ OptionRecommendation(name='input_encoding', @@ -173,7 +177,6 @@ class InputFormatPlugin(Plugin): returns. :param stream: A file like object that contains the input file. - :param options: Options to customize the conversion process. Guaranteed to have attributes corresponding to all the options declared by this plugin. In @@ -182,14 +185,11 @@ class InputFormatPlugin(Plugin): mean be more verbose. Another useful attribute is ``input_profile`` that is an instance of :class:`calibre.customize.profiles.InputProfile`. - :param file_ext: The extension (without the .) of the input file. It is guaranteed to be one of the `file_types` supported by this plugin. - :param log: A :class:`calibre.utils.logging.Log` object. All output should use this object. - :param accelarators: A dictionary of various information that the input plugin can get easily that would speed up the subsequent stages of the conversion. @@ -235,7 +235,7 @@ class OutputFormatPlugin(Plugin): (OPF+HTML) into an output ebook. The OEB document can be assumed to be encoded in UTF-8. - The main action happens in :method:`convert`. + The main action happens in :meth:`convert`. ''' type = _('Conversion Output') @@ -247,7 +247,7 @@ class OutputFormatPlugin(Plugin): file_type = None #: Options shared by all Input format plugins. Do not override - #: in sub-classes. Use :member:`options` instead. Every option must be an + #: in sub-classes. Use :attr:`options` instead. Every option must be an #: instance of :class:`OptionRecommendation`. common_options = set([ OptionRecommendation(name='pretty_print', @@ -277,17 +277,15 @@ class OutputFormatPlugin(Plugin): :class:`calibre.ebooks.oeb.OEBBook` to the file specified by output. :param output: Either a file like object or a string. If it is a string - it is the path to a directory that may or may not exist. The output - plugin should write its output into that directory. If it is a file like - object, the output plugin should write its output into the file. - + it is the path to a directory that may or may not exist. The output + plugin should write its output into that directory. If it is a file like + object, the output plugin should write its output into the file. :param input_plugin: The input plugin that was used at the beginning of - the conversion pipeline. - + the conversion pipeline. :param opts: Conversion options. Guaranteed to have attributes - corresponding to the OptionRecommendations of this plugin. - + corresponding to the OptionRecommendations of this plugin. :param log: The logger. Print debug/info messages etc. using this. + ''' raise NotImplementedError diff --git a/src/calibre/customize/profiles.py b/src/calibre/customize/profiles.py index 0db3ce6a15..1563f764ca 100644 --- a/src/calibre/customize/profiles.py +++ b/src/calibre/customize/profiles.py @@ -233,18 +233,20 @@ class OutputProfile(Plugin): 'if you want to produce a document intended to be read at a ' 'computer or on a range of devices.') - # The image size for comics + #: The image size for comics comic_screen_size = (584, 754) - # If True the MOBI renderer on the device supports MOBI indexing + #: If True the MOBI renderer on the device supports MOBI indexing supports_mobi_indexing = False - # If True output should be optimized for a touchscreen interface + #: If True output should be optimized for a touchscreen interface touchscreen = False touchscreen_news_css = '' - # A list of extra (beyond CSS 2.1) modules supported by the device - # Format is a cssutils profile dictionary (see iPad for example) + #: A list of extra (beyond CSS 2.1) modules supported by the device + #: Format is a cssutils profile dictionary (see iPad for example) extra_css_modules = [] + #: If True, the date is appended to the title of downloaded news + periodical_date_in_title = True @classmethod def tags_to_string(cls, tags): @@ -424,7 +426,7 @@ class KoboReaderOutput(OutputProfile): description = _('This profile is intended for the Kobo Reader.') - screen_size = (590, 775) + screen_size = (540, 718) comic_screen_size = (540, 718) dpi = 168.451 fbase = 12 @@ -550,6 +552,7 @@ class KindleOutput(OutputProfile): fbase = 16 fsizes = [12, 12, 14, 16, 18, 20, 22, 24] supports_mobi_indexing = True + periodical_date_in_title = False @classmethod def tags_to_string(cls, tags): @@ -567,6 +570,7 @@ class KindleDXOutput(OutputProfile): dpi = 150.0 comic_screen_size = (741, 1022) supports_mobi_indexing = True + periodical_date_in_title = False @classmethod def tags_to_string(cls, tags): diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py index 31f4c69c0f..b720964c92 100644 --- a/src/calibre/customize/ui.py +++ b/src/calibre/customize/ui.py @@ -6,19 +6,20 @@ import os, shutil, traceback, functools, sys, re from contextlib import closing from calibre.customize import Plugin, CatalogPlugin, FileTypePlugin, \ - MetadataReaderPlugin, MetadataWriterPlugin + MetadataReaderPlugin, MetadataWriterPlugin, \ + InterfaceActionBase as InterfaceAction from calibre.customize.conversion import InputFormatPlugin, OutputFormatPlugin from calibre.customize.profiles import InputProfile, OutputProfile from calibre.customize.builtins import plugins as builtin_plugins from calibre.constants import numeric_version as version, iswindows, isosx from calibre.devices.interface import DevicePlugin from calibre.ebooks.metadata import MetaInformation +from calibre.ebooks.metadata.covers import CoverDownload from calibre.ebooks.metadata.fetch import MetadataSource from calibre.utils.config import make_config_dir, Config, ConfigProxy, \ plugin_dir, OptionParser, prefs from calibre.ebooks.epub.fix import ePubFixer - platform = 'linux' if iswindows: platform = 'windows' @@ -234,6 +235,26 @@ def migrate_isbndb_key(): if key: prefs.set('isbndb_com_key', '') set_isbndb_key(key) + +def cover_sources(): + customization = config['plugin_customization'] + for plugin in _initialized_plugins: + if isinstance(plugin, CoverDownload): + if not is_disabled(plugin): + plugin.site_customization = customization.get(plugin.name, '') + yield plugin + +# }}} + +# Interface Actions # {{{ + +def interface_actions(): + customization = config['plugin_customization'] + for plugin in _initialized_plugins: + if isinstance(plugin, InterfaceAction): + if not is_disabled(plugin): + plugin.site_customization = customization.get(plugin.name, '') + yield plugin # }}} # Metadata read/write {{{ diff --git a/src/calibre/devices/android/driver.py b/src/calibre/devices/android/driver.py index 5d9d094b26..969fdfbd19 100644 --- a/src/calibre/devices/android/driver.py +++ b/src/calibre/devices/android/driver.py @@ -19,10 +19,12 @@ class ANDROID(USBMS): VENDOR_ID = { # HTC - 0x0bb4 : { 0x0c02 : [0x100], 0x0c01 : [0x100], 0x0ff9 : [0x0100]}, + 0x0bb4 : { 0x0c02 : [0x100, 0x0227], 0x0c01 : [0x100, 0x0227], 0x0ff9 + : [0x0100, 0x0227, 0x0226]}, # Motorola - 0x22b8 : { 0x41d9 : [0x216], 0x2d67 : [0x100], 0x41db : [0x216]}, + 0x22b8 : { 0x41d9 : [0x216], 0x2d67 : [0x100], 0x41db : [0x216], + 0x4285 : [0x216]}, # Sony Ericsson 0xfce : { 0xd12e : [0x0100]}, @@ -31,7 +33,9 @@ class ANDROID(USBMS): # Samsung 0x04e8 : { 0x681d : [0x0222, 0x0400], - 0x681c : [0x0222, 0x0224, 0x0400]}, + 0x681c : [0x0222, 0x0224, 0x0400], + 0x6640 : [0x0100], + }, # Acer 0x502 : { 0x3203 : [0x0100]}, @@ -42,7 +46,7 @@ class ANDROID(USBMS): # Eken? 0x040d : { 0x0851 : [0x0001]}, } - EBOOK_DIR_MAIN = ['wordplayer/calibretransfer', 'eBooks/import', 'Books'] + EBOOK_DIR_MAIN = ['eBooks/import', 'wordplayer/calibretransfer', 'Books'] EXTRA_CUSTOMIZATION_MESSAGE = _('Comma separated list of directories to ' 'send e-books to on the device. The first one that exists will ' 'be used') @@ -51,10 +55,10 @@ class ANDROID(USBMS): VENDOR_NAME = ['HTC', 'MOTOROLA', 'GOOGLE_', 'ANDROID', 'ACER', 'GT-I5700', 'SAMSUNG', 'DELL', 'LINUX'] WINDOWS_MAIN_MEM = ['ANDROID_PHONE', 'A855', 'A853', 'INC.NEXUS_ONE', - '__UMS_COMPOSITE', '_MB200', 'MASS_STORAGE', '_-_CARD', - 'GT-I9000', 'FILE-STOR_GADGET'] - WINDOWS_CARD_A_MEM = ['ANDROID_PHONE', 'GT-I9000_CARD', - 'FILE-STOR_GADGET'] + '__UMS_COMPOSITE', '_MB200', 'MASS_STORAGE', '_-_CARD', 'SGH-I897', + 'GT-I9000', 'FILE-STOR_GADGET', 'SGH-T959', 'SAMSUNG_ANDROID'] + WINDOWS_CARD_A_MEM = ['ANDROID_PHONE', 'GT-I9000_CARD', 'SGH-I897', + 'FILE-STOR_GADGET', 'SGH-T959', 'SAMSUNG_ANDROID'] OSX_MAIN_MEM = 'HTC Android Phone Media' diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index 6e95a8b04f..916c88f203 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -95,11 +95,11 @@ class ITUNES(DriverBase): # Product IDs: # 0x1291 iPod Touch - # 0x1292 iPhone 3G # 0x1293 iPod Touch 2G + # 0x1299 iPod Touch 3G + # 0x1292 iPhone 3G # 0x1294 iPhone 3GS # 0x1297 iPhone 4 - # 0x1299 iPod Touch 3G # 0x129a iPad VENDOR_ID = [0x05ac] PRODUCT_ID = [0x1292,0x1293,0x1294,0x1297,0x1299,0x129a] @@ -1029,8 +1029,13 @@ class ITUNES(DriverBase): sys.stdout.write("\n") sys.stdout.flush() - # This doesn't seem to work with Device, just Library if False: + ''' + Preferred + Disabled because op_status.Tracks never returns a value after adding file + This would be the preferred approach (as under OSX) + It works in _add_library_book() + ''' if DEBUG: sys.stdout.write(" waiting for handle to added '%s' ..." % metadata.title) sys.stdout.flush() @@ -1044,15 +1049,19 @@ class ITUNES(DriverBase): print added = op_status.Tracks[0] else: - # This approach simply scans Library|Books for the book we just added - - # Try the calibre metadata first + ''' + Hackish + Search Library|Books for the book we just added + PDF file name is added title - need to search for base filename w/o extension + ''' + format = fpath.rpartition('.')[2].lower() + base_fn = fpath.rpartition(os.sep)[2] + base_fn = base_fn.rpartition('.')[0] db_added = self._find_device_book( - {'title': metadata.title, - 'author': metadata.authors[0], - 'uuid': metadata.uuid, - 'format': fpath.rpartition('.')[2].lower()}) - + { 'title': base_fn if format == 'pdf' else metadata.title, + 'author': metadata.authors[0], + 'uuid': metadata.uuid, + 'format': format}) return db_added def _add_library_book(self,file, metadata): @@ -1087,7 +1096,12 @@ class ITUNES(DriverBase): sys.stdout.write("\n") sys.stdout.flush() - if False: + if True: + ''' + Preferable + Originally disabled because op_status.Tracks never returned a value + after adding file. Seems to be working with iTunes 9.2.1.5 06 Aug 2010 + ''' if DEBUG: sys.stdout.write(" waiting for handle to added '%s' ..." % metadata.title) sys.stdout.flush() @@ -1100,12 +1114,19 @@ class ITUNES(DriverBase): print added = op_status.Tracks[0] else: - # This approach simply scans Library|Books for the book we just added + ''' + Hackish + Search Library|Books for the book we just added + PDF file name is added title - need to search for base filename w/o extension + ''' + format = file.rpartition('.')[2].lower() + base_fn = file.rpartition(os.sep)[2] + base_fn = base_fn.rpartition('.')[0] added = self._find_library_book( - { 'title': metadata.title, + { 'title': base_fn if format == 'pdf' else metadata.title, 'author': metadata.author[0], 'uuid': metadata.uuid, - 'format': file.rpartition('.')[2].lower()}) + 'format': format}) return added def _add_new_copy(self, fpath, metadata): @@ -1820,7 +1841,6 @@ class ITUNES(DriverBase): except: if DEBUG: self.log.error(" error generating thumb for '%s', caching empty marker" % book.Name) - self._dump_hex(data[:32]) thumb_data = None # Cache the empty cover zfw.writestr(thumb_path,'None') diff --git a/src/calibre/devices/hanlin/driver.py b/src/calibre/devices/hanlin/driver.py index f19135a7e7..3fbec66987 100644 --- a/src/calibre/devices/hanlin/driver.py +++ b/src/calibre/devices/hanlin/driver.py @@ -80,6 +80,15 @@ class HANLINV3(USBMS): drives['carda'] = main return drives +class SPECTRA(HANLINV3): + + name = 'Spectra' + gui_name = 'Spectra' + PRODUCT_ID = [0xa4a5] + + FORMATS = ['epub', 'mobi', 'fb2', 'lit', 'prc', 'djvu', 'pdf', 'rtf', 'txt'] + + SUPPORTS_SUB_DIRS = True class HANLINV5(HANLINV3): name = 'Hanlin V5 driver' diff --git a/src/calibre/devices/interface.py b/src/calibre/devices/interface.py index c417c501f4..1384fa03d9 100644 --- a/src/calibre/devices/interface.py +++ b/src/calibre/devices/interface.py @@ -1,10 +1,5 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' -""" -Define the minimum interface that a device backend must satisfy to be used in -the GUI. A device backend must subclass the L{Device} class. See prs500.py for -a backend that implement the Device interface for the SONY PRS500 Reader. -""" import os from collections import namedtuple @@ -15,32 +10,38 @@ class DevicePlugin(Plugin): """ Defines the interface that should be implemented by backends that communicate with an ebook reader. - - The C{end_session} variables are used for USB session management. Sometimes - the front-end needs to call several methods one after another, in which case - the USB session should not be closed after each method call. """ type = _('Device Interface') - # Ordered list of supported formats + #: Ordered list of supported formats FORMATS = ["lrf", "rtf", "pdf", "txt"] + #: VENDOR_ID can be either an integer, a list of integers or a dictionary - #: If it is a dictionary, it must be a dictionary of dictionaries, of the form - #: { - #: integer_vendor_id : { product_id : [list of BCDs], ... }, - #: ... - #: } + #: If it is a dictionary, it must be a dictionary of dictionaries, + #: of the form:: + #: + #: { + #: integer_vendor_id : { product_id : [list of BCDs], ... }, + #: ... + #: } + #: VENDOR_ID = 0x0000 + #: An integer or a list of integers PRODUCT_ID = 0x0000 - # BCD can be either None to not distinguish between devices based on BCD, or - # it can be a list of the BCD numbers of all devices supported by this driver. + #: BCD can be either None to not distinguish between devices based on BCD, or + #: it can be a list of the BCD numbers of all devices supported by this driver. BCD = None - THUMBNAIL_HEIGHT = 68 # Height for thumbnails on device - # Whether the metadata on books can be set via the GUI. + + #: Height for thumbnails on the device + THUMBNAIL_HEIGHT = 68 + + #: Whether the metadata on books can be set via the GUI. CAN_SET_METADATA = True + #: Path separator for paths to books on device path_sep = os.sep + #: Icon for this device icon = I('reader.svg') @@ -51,6 +52,11 @@ class DevicePlugin(Plugin): #: long time OPEN_FEEDBACK_MESSAGE = None + #: Set of extensions that are "virtual books" on the device + #: and therefore cannot be viewed/saved/added to library + #: For example: ``frozenset(['kobo'])`` + VIRTUAL_BOOK_EXTENSIONS = frozenset([]) + @classmethod def get_gui_name(cls): if hasattr(cls, 'gui_name'): @@ -121,6 +127,7 @@ class DevicePlugin(Plugin): Return True, device_info if a device handled by this plugin is currently connected. :param devices_on_system: List of devices currently connected + ''' if iswindows: return self.is_usb_connected_windows(devices_on_system, @@ -157,13 +164,14 @@ class DevicePlugin(Plugin): def reset(self, key='-1', log_packets=False, report_progress=None, detected_device=None) : """ - :key: The key to unlock the device - :log_packets: If true the packet stream to/from the device is logged - :report_progress: Function that is called with a % progress + :param key: The key to unlock the device + :param log_packets: If true the packet stream to/from the device is logged + :param report_progress: Function that is called with a % progress (number between 0 and 100) for various tasks If it is called with -1 that means that the task does not have any progress information - :detected_device: Device information from the device scanner + :param detected_device: Device information from the device scanner + """ raise NotImplementedError() @@ -174,19 +182,21 @@ class DevicePlugin(Plugin): is only called after the vendor, product ids and the bcd have matched, so it can do some relatively time intensive checks. The default implementation returns True. This method is called only on windows. See also - :method:`can_handle`. + :meth:`can_handle`. :param device_info: On windows a device ID string. On Unix a tuple of - ``(vendor_id, product_id, bcd)``. + ``(vendor_id, product_id, bcd)``. + ''' return True def can_handle(self, device_info, debug=False): ''' - Unix version of :method:`can_handle_windows` + Unix version of :meth:`can_handle_windows` :param device_info: Is a tupe of (vid, pid, bcd, manufacturer, product, - serial number) + serial number) + ''' return True @@ -198,7 +208,8 @@ class DevicePlugin(Plugin): For example: For devices that present themselves as USB Mass storage devices, this method would be responsible for mounting the device or if the device has been automounted, for finding out where it has been - mounted. The base class within USBMS device.py has a implementation of + mounted. The method :meth:`calibre.devices.usbms.device.Device.open` has + an implementation of this function that should serve as a good example for USB Mass storage devices. ''' @@ -219,17 +230,20 @@ class DevicePlugin(Plugin): def set_progress_reporter(self, report_progress): ''' - @param report_progress: Function that is called with a % progress + :param report_progress: Function that is called with a % progress (number between 0 and 100) for various tasks If it is called with -1 that means that the task does not have any progress information + ''' raise NotImplementedError() def get_device_information(self, end_session=True): """ Ask device for device information. See L{DeviceInfoQuery}. - @return: (device name, device version, software version on device, mime type) + + :return: (device name, device version, software version on device, mime type) + """ raise NotImplementedError() @@ -252,8 +266,9 @@ class DevicePlugin(Plugin): 2. Memory Card A 3. Memory Card B - @return: A 3 element list with total space in bytes of (1, 2, 3). If a - particular device doesn't have any of these locations it should return 0. + :return: A 3 element list with total space in bytes of (1, 2, 3). If a + particular device doesn't have any of these locations it should return 0. + """ raise NotImplementedError() @@ -264,19 +279,23 @@ class DevicePlugin(Plugin): 2. Card A 3. Card B - @return: A 3 element list with free space in bytes of (1, 2, 3). If a - particular device doesn't have any of these locations it should return -1. + :return: A 3 element list with free space in bytes of (1, 2, 3). If a + particular device doesn't have any of these locations it should return -1. + """ raise NotImplementedError() def books(self, oncard=None, end_session=True): """ Return a list of ebooks on the device. - @param oncard: If 'carda' or 'cardb' return a list of ebooks on the + + :param oncard: If 'carda' or 'cardb' return a list of ebooks on the specific storage card, otherwise return list of ebooks in main memory of device. If a card is specified and no books are on the card return empty list. - @return: A BookList. + + :return: A BookList. + """ raise NotImplementedError() @@ -285,25 +304,27 @@ class DevicePlugin(Plugin): ''' Upload a list of books to the device. If a file already exists on the device, it should be replaced. - This method should raise a L{FreeSpaceError} if there is not enough + This method should raise a :class:`FreeSpaceError` if there is not enough free space on the device. The text of the FreeSpaceError must contain the - word "card" if C{on_card} is not None otherwise it must contain the word "memory". - :files: A list of paths and/or file-like objects. If they are paths and - the paths point to temporary files, they may have an additional - attribute, original_file_path pointing to the originals. They may have - another optional attribute, deleted_after_upload which if True means - that the file pointed to by original_file_path will be deleted after - being uploaded to the device. - :names: A list of file names that the books should have - once uploaded to the device. len(names) == len(files) + word "card" if ``on_card`` is not None otherwise it must contain the word "memory". + + :param files: A list of paths and/or file-like objects. If they are paths and + the paths point to temporary files, they may have an additional + attribute, original_file_path pointing to the originals. They may have + another optional attribute, deleted_after_upload which if True means + that the file pointed to by original_file_path will be deleted after + being uploaded to the device. + :param names: A list of file names that the books should have + once uploaded to the device. len(names) == len(files) + :param metadata: If not None, it is a list of :class:`MetaInformation` objects. + The idea is to use the metadata to determine where on the device to + put the book. len(metadata) == len(files). Apart from the regular + cover (path to cover), there may also be a thumbnail attribute, which should + be used in preference. The thumbnail attribute is of the form + (width, height, cover_data as jpeg). + :return: A list of 3-element tuples. The list is meant to be passed - to L{add_books_to_metadata}. - :metadata: If not None, it is a list of :class:`MetaInformation` objects. - The idea is to use the metadata to determine where on the device to - put the book. len(metadata) == len(files). Apart from the regular - cover (path to cover), there may also be a thumbnail attribute, which should - be used in preference. The thumbnail attribute is of the form - (width, height, cover_data as jpeg). + to :meth:`add_books_to_metadata`. ''' raise NotImplementedError() @@ -312,12 +333,15 @@ class DevicePlugin(Plugin): ''' Add locations to the booklists. This function must not communicate with the device. - @param locations: Result of a call to L{upload_books} - @param metadata: List of MetaInformation objects, same as for - :method:`upload_books`. - @param booklists: A tuple containing the result of calls to - (L{books}(oncard=None), L{books}(oncard='carda'), - L{books}(oncard='cardb')). + + :param locations: Result of a call to L{upload_books} + :param metadata: List of :class:`MetaInformation` objects, same as for + :meth:`upload_books`. + :param booklists: A tuple containing the result of calls to + (:meth:`books(oncard=None)`, + :meth:`books(oncard='carda')`, + :meth`books(oncard='cardb')`). + ''' raise NotImplementedError @@ -332,26 +356,35 @@ class DevicePlugin(Plugin): ''' Remove books from the metadata list. This function must not communicate with the device. - @param paths: paths to books on the device. - @param booklists: A tuple containing the result of calls to - (L{books}(oncard=None), L{books}(oncard='carda'), - L{books}(oncard='cardb')). + + :param paths: paths to books on the device. + :param booklists: A tuple containing the result of calls to + (:meth:`books(oncard=None)`, + :meth:`books(oncard='carda')`, + :meth`books(oncard='cardb')`). + ''' raise NotImplementedError() def sync_booklists(self, booklists, end_session=True): ''' Update metadata on device. - @param booklists: A tuple containing the result of calls to - (L{books}(oncard=None), L{books}(oncard='carda'), - L{books}(oncard='cardb')). + + :param booklists: A tuple containing the result of calls to + (:meth:`books(oncard=None)`, + :meth:`books(oncard='carda')`, + :meth`books(oncard='cardb')`). + ''' raise NotImplementedError() def get_file(self, path, outfile, end_session=True): ''' - Read the file at C{path} on the device and write it to outfile. - @param outfile: file object like C{sys.stdout} or the result of an C{open} call + Read the file at ``path`` on the device and write it to outfile. + + :param outfile: file object like ``sys.stdout`` or the result of an + :func:`open` call. + ''' raise NotImplementedError() @@ -365,8 +398,8 @@ class DevicePlugin(Plugin): @classmethod def save_settings(cls, settings_widget): ''' - Should save settings to disk. Takes the widget created in config_widget - and saves all settings to disk. + Should save settings to disk. Takes the widget created in + :meth:`config_widget` and saves all settings to disk. ''' raise NotImplementedError() @@ -381,16 +414,18 @@ class DevicePlugin(Plugin): class BookList(list): ''' - A list of books. Each Book object must have the fields: - 1. title - 2. authors - 3. size (file size of the book) - 4. datetime (a UTC time tuple) - 5. path (path on the device to the book) - 6. thumbnail (can be None) thumbnail is either a str/bytes object with the + A list of books. Each Book object must have the fields + + #. title + #. authors + #. size (file size of the book) + #. datetime (a UTC time tuple) + #. path (path on the device to the book) + #. thumbnail (can be None) thumbnail is either a str/bytes object with the image data or it should have an attribute image_path that stores an absolute (platform native) path to the image - 7. tags (a list of strings, can be empty). + #. tags (a list of strings, can be empty). + ''' __getslice__ = None @@ -427,6 +462,7 @@ class BookList(list): created from series, in which case series_index is used. :param collection_attributes: A list of attributes of the Book object + ''' raise NotImplementedError() diff --git a/src/calibre/devices/kobo/books.py b/src/calibre/devices/kobo/books.py index 7ee5beaec0..a5b2e98d2f 100644 --- a/src/calibre/devices/kobo/books.py +++ b/src/calibre/devices/kobo/books.py @@ -84,7 +84,7 @@ class Book(MetaInformation): def thumbnail(self): return None - def smart_update(self, other): + def smart_update(self, other, replace_metadata=False): ''' Merge the information in C{other} into self. In case of conflicts, the information in C{other} takes precedence, unless the information in C{other} is NULL. diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index f4c4cad3c7..74468845f6 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -38,6 +38,8 @@ class KOBO(USBMS): EBOOK_DIR_MAIN = '' SUPPORTS_SUB_DIRS = True + VIRTUAL_BOOK_EXTENSIONS = frozenset(['kobo']) + def initialize(self): USBMS.initialize(self) self.book_class = Book @@ -235,7 +237,7 @@ class KOBO(USBMS): else: # if extension == '.html' or extension == '.txt': ContentType = 999 # Yet another hack: to get around Kobo changing how ContentID is stored ContentID = self.contentid_from_path(path, ContentType) - + ImageID = self.delete_via_sql(ContentID, ContentType) #print " We would now delete the Images for" + ImageID self.delete_images(ImageID) @@ -355,3 +357,17 @@ class KOBO(USBMS): # print "Internal: " + filename return path + + def get_file(self, path, *args, **kwargs): + tpath = self.munge_path(path) + extension = os.path.splitext(tpath)[1] + if extension == '.kobo': + from calibre.devices.errors import UserFeedback + raise UserFeedback(_("Not Implemented"), + _('".kobo" files do not exist on the device as books ' + 'instead, they are rows in the sqlite database. ' + 'Currently they cannot be exported or viewed.'), + UserFeedback.WARN) + + return USBMS.get_file(self, path, *args, **kwargs) + diff --git a/src/calibre/devices/misc.py b/src/calibre/devices/misc.py index 6c2a912bd2..488867a438 100644 --- a/src/calibre/devices/misc.py +++ b/src/calibre/devices/misc.py @@ -46,12 +46,13 @@ class AVANT(USBMS): BCD = [0x0319] VENDOR_NAME = 'E-BOOK' - WINDOWS_MAIN_MEM = 'READER' + WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = 'READER' EBOOK_DIR_MAIN = '' SUPPORTS_SUB_DIRS = True class SWEEX(USBMS): + # Identical to the Promedia name = 'Sweex Device Interface' gui_name = 'Sweex' description = _('Communicate with the Sweex MM300') @@ -89,6 +90,8 @@ class PDNOVEL(USBMS): EBOOK_DIR_MAIN = 'eBooks' SUPPORTS_SUB_DIRS = False + DELETE_EXTS = ['.jpg', '.jpeg', '.png'] + def upload_cover(self, path, filename, metadata): coverdata = getattr(metadata, 'thumbnail', None) @@ -96,3 +99,4 @@ class PDNOVEL(USBMS): with open('%s.jpg' % os.path.join(path, filename), 'wb') as coverfile: coverfile.write(coverdata[2]) + diff --git a/src/calibre/devices/nook/driver.py b/src/calibre/devices/nook/driver.py index 5793dc7187..f697ee5202 100644 --- a/src/calibre/devices/nook/driver.py +++ b/src/calibre/devices/nook/driver.py @@ -26,7 +26,7 @@ class NOOK(USBMS): # Ordered list of supported formats FORMATS = ['epub', 'pdb', 'pdf'] - VENDOR_ID = [0x2080] + VENDOR_ID = [0x2080, 0x18d1] # 0x18d1 is for softrooted nook PRODUCT_ID = [0x001] BCD = [0x322] diff --git a/src/calibre/devices/prs505/sony_cache.py b/src/calibre/devices/prs505/sony_cache.py index 3ac35df9b2..a444c9e5e2 100644 --- a/src/calibre/devices/prs505/sony_cache.py +++ b/src/calibre/devices/prs505/sony_cache.py @@ -46,7 +46,11 @@ def strptime(src): return time.strptime(' '.join(src), '%w, %d %m %Y %H:%M:%S %Z') def strftime(epoch, zone=time.localtime): - src = time.strftime("%w, %d %m %Y %H:%M:%S GMT", zone(epoch)).split() + try: + src = time.strftime("%w, %d %m %Y %H:%M:%S GMT", zone(epoch)).split() + except: + src = time.strftime("%w, %d %m %Y %H:%M:%S GMT", zone()).split() + src[0] = INVERSE_DAY_MAP[int(src[0][:-1])]+',' src[2] = INVERSE_MONTH_MAP[int(src[2])] return ' '.join(src) @@ -328,7 +332,10 @@ class XMLCache(object): 'descendant::*[local-name()="jpeg"]|' 'descendant::*[local-name()="png"]'): if img.text: - raw = b64decode(img.text.strip()) + try: + raw = b64decode(img.text.strip()) + except: + continue book.thumbnail = raw break break diff --git a/src/calibre/devices/scanner.py b/src/calibre/devices/scanner.py index dd789dd668..380dcb7440 100644 --- a/src/calibre/devices/scanner.py +++ b/src/calibre/devices/scanner.py @@ -55,7 +55,9 @@ class WinPNPScanner(object): def drive_order(self, pnp_id): order = 0 - match = re.search(r'REV_.*?&(\d+)', pnp_id) + match = re.search(r'REV_.*?&(\d+)#', pnp_id) + if match is None: + match = re.search(r'REV_.*?&(\d+)', pnp_id) if match is not None: order = int(match.group(1)) return order diff --git a/src/calibre/devices/sne/driver.py b/src/calibre/devices/sne/driver.py index 802ae43eaa..0ccac13245 100644 --- a/src/calibre/devices/sne/driver.py +++ b/src/calibre/devices/sne/driver.py @@ -20,20 +20,19 @@ class SNE(USBMS): # Ordered list of supported formats # Be sure these have an entry in calibre.devices.mime - FORMATS = ['epub', 'txt'] + FORMATS = ['epub', 'pdf', 'txt'] VENDOR_ID = [0x04e8] - PRODUCT_ID = [0x2051] + PRODUCT_ID = [0x2051, 0x2053] BCD = [0x0323] - VENDOR_NAME = '' - #WINDOWS_MAIN_MEM = 'MASS_STORAGE' - #WINDOWS_CARD_A_MEM = 'MASS_STORAGE' + VENDOR_NAME = 'SAMSUNG' + WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = 'SNE-60' MAIN_MEMORY_VOLUME_LABEL = 'SNE Main Memory' STORAGE_CARD_VOLUME_LABEL = 'SNE Storage Card' - EBOOK_DIR_MAIN = 'Book' + EBOOK_DIR_MAIN = 'Books' SUPPORTS_SUB_DIRS = True diff --git a/src/calibre/devices/teclast/driver.py b/src/calibre/devices/teclast/driver.py index 1701696fad..0c60a367cf 100644 --- a/src/calibre/devices/teclast/driver.py +++ b/src/calibre/devices/teclast/driver.py @@ -6,9 +6,9 @@ from calibre.devices.usbms.driver import USBMS class TECLAST_K3(USBMS): - name = 'Teclast K3 Device Interface' - gui_name = 'K3' - description = _('Communicate with the Teclast K3 reader.') + name = 'Teclast K3/K5 Device Interface' + gui_name = 'K3/K5' + description = _('Communicate with the Teclast K3/K5 reader.') author = 'Kovid Goyal' supported_platforms = ['windows', 'osx', 'linux'] @@ -17,11 +17,10 @@ class TECLAST_K3(USBMS): VENDOR_ID = [0x071b] PRODUCT_ID = [0x3203] - BCD = [0x0000] + BCD = [0x0000, 0x0100] VENDOR_NAME = 'TECLAST' - WINDOWS_MAIN_MEM = 'DIGITAL_PLAYER' - WINDOWS_CARD_A_MEM = 'DIGITAL_PLAYER' + WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = ['DIGITAL_PLAYER', 'TL-K5'] MAIN_MEMORY_VOLUME_LABEL = 'K3 Main Memory' STORAGE_CARD_VOLUME_LABEL = 'K3 Storage Card' diff --git a/src/calibre/devices/usbms/books.py b/src/calibre/devices/usbms/books.py index cdba980642..959f26199c 100644 --- a/src/calibre/devices/usbms/books.py +++ b/src/calibre/devices/usbms/books.py @@ -181,7 +181,9 @@ class CollectionsBookList(BookList): if lpath not in collections_lpaths[category]: collections_lpaths[category].add(lpath) collections[category].append(book) - if attr == 'series': + if attr == 'series' or \ + ('series' in collection_attributes and + getattr(book, 'series', None) == category): series_categories.add(category) # Sort collections for category, books in collections.items(): diff --git a/src/calibre/devices/usbms/device.py b/src/calibre/devices/usbms/device.py index c07b7fd761..b954911242 100644 --- a/src/calibre/devices/usbms/device.py +++ b/src/calibre/devices/usbms/device.py @@ -47,8 +47,8 @@ class Device(DeviceConfig, DevicePlugin): ''' This class provides logic common to all drivers for devices that export themselves - as USB Mass Storage devices. If you are writing such a driver, inherit from this - class. + as USB Mass Storage devices. Provides implementations for mounting/ejecting + of USBMS devices on all platforms. ''' VENDOR_ID = 0x0 @@ -57,9 +57,19 @@ class Device(DeviceConfig, DevicePlugin): VENDOR_NAME = None - # These can be None, string, list of strings or compiled regex + #: String identifying the main memory of the device in the windows PnP id + #: strings + #: This can be None, string, list of strings or compiled regex WINDOWS_MAIN_MEM = None + + #: String identifying the first card of the device in the windows PnP id + #: strings + #: This can be None, string, list of strings or compiled regex WINDOWS_CARD_A_MEM = None + + #: String identifying the second card of the device in the windows PnP id + #: strings + #: This can be None, string, list of strings or compiled regex WINDOWS_CARD_B_MEM = None # The following are used by the check_ioreg_line method and can be either: @@ -68,9 +78,9 @@ class Device(DeviceConfig, DevicePlugin): OSX_CARD_A_MEM = None OSX_CARD_B_MEM = None - # Used by the new driver detection to disambiguate main memory from - # storage cards. Should be a regular expression that matches the - # main memory mount point assigned by OS X + #: Used by the new driver detection to disambiguate main memory from + #: storage cards. Should be a regular expression that matches the + #: main memory mount point assigned by OS X OSX_MAIN_MEM_VOL_PAT = None OSX_EJECT_COMMAND = ['diskutil', 'eject'] @@ -780,7 +790,7 @@ class Device(DeviceConfig, DevicePlugin): def filename_callback(self, default, mi): ''' Callback to allow drivers to change the default file name - set by :method:`create_upload_path`. + set by :meth:`create_upload_path`. ''' return default diff --git a/src/calibre/devices/usbms/driver.py b/src/calibre/devices/usbms/driver.py index 73a329be58..0d28f06f49 100644 --- a/src/calibre/devices/usbms/driver.py +++ b/src/calibre/devices/usbms/driver.py @@ -33,6 +33,10 @@ def debug_print(*args): # CLI must come before Device as it implements the CLI functions that # are inherited from the device interface in Device. class USBMS(CLI, Device): + ''' + The base class for all USBMS devices. Implements the logic for + sending/getting/updating metadata/caching metadata/etc. + ''' description = _('Communicate with an eBook reader.') author = _('John Schember') @@ -195,10 +199,13 @@ class USBMS(CLI, Device): def upload_cover(self, path, filename, metadata): ''' - :path: the full path were the associated book is located. - :filename: the name of the book file without the extension. - :metadata: metadata belonging to the book. Use metadata.thumbnail - for cover + Upload book cover to the device. Default implementation does nothing. + + :param path: the full path were the associated book is located. + :param filename: the name of the book file without the extension. + :param metadata: metadata belonging to the book. Use metadata.thumbnail + for cover + ''' pass diff --git a/src/calibre/ebooks/comic/input.py b/src/calibre/ebooks/comic/input.py index 09975ca74a..23f5906a53 100755 --- a/src/calibre/ebooks/comic/input.py +++ b/src/calibre/ebooks/comic/input.py @@ -8,7 +8,6 @@ Based on ideas from comiclrf created by FangornUK. ''' import os, shutil, traceback, textwrap, time, codecs -from ctypes import byref from Queue import Empty from calibre.customize.conversion import InputFormatPlugin, OptionRecommendation @@ -71,141 +70,123 @@ class PageProcessor(list): def render(self): - import calibre.utils.PythonMagickWand as pw - img = pw.NewMagickWand() - if img < 0: - raise RuntimeError('Cannot create wand.') - if not pw.MagickReadImage(img, self.path_to_page): - severity = pw.ExceptionType(0) - msg = pw.MagickGetException(img, byref(severity)) - raise IOError('Failed to read image from: %s: %s' - %(self.path_to_page, msg)) - width = pw.MagickGetImageWidth(img) - height = pw.MagickGetImageHeight(img) + from calibre.utils.magick import Image + img = Image() + img.open(self.path_to_page) + width, height = img.size if self.num == 0: # First image so create a thumbnail from it - thumb = pw.CloneMagickWand(img) - if thumb < 0: - raise RuntimeError('Cannot create wand.') - pw.MagickThumbnailImage(thumb, 60, 80) - pw.MagickWriteImage(thumb, os.path.join(self.dest, 'thumbnail.png')) - pw.DestroyMagickWand(thumb) + thumb = img.clone + thumb.thumbnail(60, 80) + thumb.save(os.path.join(self.dest, 'thumbnail.png')) self.pages = [img] if width > height: if self.opts.landscape: self.rotate = True else: - split1, split2 = map(pw.CloneMagickWand, (img, img)) - pw.DestroyMagickWand(img) - if split1 < 0 or split2 < 0: - raise RuntimeError('Cannot create wand.') - pw.MagickCropImage(split1, (width/2)-1, height, 0, 0) - pw.MagickCropImage(split2, (width/2)-1, height, width/2, 0 ) + split1, split2 = img.clone, img.clone + half = int(width/2) + split1.crop(half-1, height, 0, 0) + split2.crop(half-1, height, half, 0) self.pages = [split2, split1] if self.opts.right2left else [split1, split2] self.process_pages() def process_pages(self): - import calibre.utils.PythonMagickWand as p + from calibre.utils.magick import PixelWand for i, wand in enumerate(self.pages): - pw = p.NewPixelWand() - try: - if pw < 0: - raise RuntimeError('Cannot create wand.') - p.PixelSetColor(pw, 'white') + pw = PixelWand() + pw.color = 'white' - p.MagickSetImageBorderColor(wand, pw) - if self.rotate: - p.MagickRotateImage(wand, pw, -90) + wand.set_border_color(pw) + if self.rotate: + wand.rotate(pw, -90) - # 25 percent fuzzy trim? - if not self.opts.disable_trim: - p.MagickTrimImage(wand, 25*65535/100) - p.MagickSetImagePage(wand, 0,0,0,0) #Clear page after trim, like a "+repage" - # Do the Photoshop "Auto Levels" equivalent - if not self.opts.dont_normalize: - p.MagickNormalizeImage(wand) - sizex = p.MagickGetImageWidth(wand) - sizey = p.MagickGetImageHeight(wand) + # 25 percent fuzzy trim? + if not self.opts.disable_trim: + wand.trim(25*65535/100) + wand.set_page(0, 0, 0, 0) #Clear page after trim, like a "+repage" + # Do the Photoshop "Auto Levels" equivalent + if not self.opts.dont_normalize: + wand.normalize() + sizex, sizey = wand.size - SCRWIDTH, SCRHEIGHT = self.opts.output_profile.comic_screen_size + SCRWIDTH, SCRHEIGHT = self.opts.output_profile.comic_screen_size - if self.opts.keep_aspect_ratio: - # Preserve the aspect ratio by adding border - aspect = float(sizex) / float(sizey) - if aspect <= (float(SCRWIDTH) / float(SCRHEIGHT)): - newsizey = SCRHEIGHT - newsizex = int(newsizey * aspect) - deltax = (SCRWIDTH - newsizex) / 2 - deltay = 0 - else: - newsizex = SCRWIDTH - newsizey = int(newsizex / aspect) - deltax = 0 - deltay = (SCRHEIGHT - newsizey) / 2 - p.MagickResizeImage(wand, newsizex, newsizey, p.CatromFilter, 1.0) - p.MagickSetImageBorderColor(wand, pw) - p.MagickBorderImage(wand, pw, deltax, deltay) - elif self.opts.wide: - # Keep aspect and Use device height as scaled image width so landscape mode is clean - aspect = float(sizex) / float(sizey) - screen_aspect = float(SCRWIDTH) / float(SCRHEIGHT) - # Get dimensions of the landscape mode screen - # Add 25px back to height for the battery bar. - wscreenx = SCRHEIGHT + 25 - wscreeny = int(wscreenx / screen_aspect) - if aspect <= screen_aspect: - newsizey = wscreeny - newsizex = int(newsizey * aspect) - deltax = (wscreenx - newsizex) / 2 - deltay = 0 - else: - newsizex = wscreenx - newsizey = int(newsizex / aspect) - deltax = 0 - deltay = (wscreeny - newsizey) / 2 - p.MagickResizeImage(wand, newsizex, newsizey, p.CatromFilter, 1.0) - p.MagickSetImageBorderColor(wand, pw) - p.MagickBorderImage(wand, pw, deltax, deltay) + if self.opts.keep_aspect_ratio: + # Preserve the aspect ratio by adding border + aspect = float(sizex) / float(sizey) + if aspect <= (float(SCRWIDTH) / float(SCRHEIGHT)): + newsizey = SCRHEIGHT + newsizex = int(newsizey * aspect) + deltax = (SCRWIDTH - newsizex) / 2 + deltay = 0 else: - p.MagickResizeImage(wand, SCRWIDTH, SCRHEIGHT, p.CatromFilter, 1.0) + newsizex = SCRWIDTH + newsizey = int(newsizex / aspect) + deltax = 0 + deltay = (SCRHEIGHT - newsizey) / 2 + wand.size = (newsizex, newsizey) + wand.set_border_color(pw) + wand.add_border(pw, deltax, deltay) + elif self.opts.wide: + # Keep aspect and Use device height as scaled image width so landscape mode is clean + aspect = float(sizex) / float(sizey) + screen_aspect = float(SCRWIDTH) / float(SCRHEIGHT) + # Get dimensions of the landscape mode screen + # Add 25px back to height for the battery bar. + wscreenx = SCRHEIGHT + 25 + wscreeny = int(wscreenx / screen_aspect) + if aspect <= screen_aspect: + newsizey = wscreeny + newsizex = int(newsizey * aspect) + deltax = (wscreenx - newsizex) / 2 + deltay = 0 + else: + newsizex = wscreenx + newsizey = int(newsizex / aspect) + deltax = 0 + deltay = (wscreeny - newsizey) / 2 + wand.size = (newsizex, newsizey) + wand.set_border_color(pw) + wand.add_border(pw, deltax, deltay) + else: + wand.size = (SCRWIDTH, SCRHEIGHT) - if not self.opts.dont_sharpen: - p.MagickSharpenImage(wand, 0.0, 1.0) + if not self.opts.dont_sharpen: + wand.sharpen(0.0, 1.0) - if not self.opts.dont_grayscale: - p.MagickSetImageType(wand, p.GrayscaleType) + if not self.opts.dont_grayscale: + wand.type = 'GrayscaleType' - if self.opts.despeckle: - p.MagickDespeckleImage(wand) + if self.opts.despeckle: + wand.despeckle() - p.MagickQuantizeImage(wand, self.opts.colors, p.RGBColorspace, 0, 1, 0) - dest = '%d_%d.%s'%(self.num, i, self.opts.output_format) - dest = os.path.join(self.dest, dest) - p.MagickWriteImage(wand, dest+'8') + wand.quantize(self.opts.colors) + dest = '%d_%d.%s'%(self.num, i, self.opts.output_format) + dest = os.path.join(self.dest, dest) + if dest.lower().endswith('.png'): + dest += '8' + wand.save(dest) + if dest.endswith('8'): + dest = dest[:-1] os.rename(dest+'8', dest) - self.append(dest) - finally: - if pw > 0: - p.DestroyPixelWand(pw) - p.DestroyMagickWand(wand) + self.append(dest) def render_pages(tasks, dest, opts, notification=lambda x, y: x): ''' Entry point for the job server. ''' failures, pages = [], [] - from calibre.utils.PythonMagickWand import ImageMagick - with ImageMagick(): - for num, path in tasks: - try: - pages.extend(PageProcessor(path, dest, opts, num)) - msg = _('Rendered %s')%path - except: - failures.append(path) - msg = _('Failed %s')%path - if opts.verbose: - msg += '\n' + traceback.format_exc() - prints(msg) - notification(0.5, msg) + for num, path in tasks: + try: + pages.extend(PageProcessor(path, dest, opts, num)) + msg = _('Rendered %s')%path + except: + failures.append(path) + msg = _('Failed %s')%path + if opts.verbose: + msg += '\n' + traceback.format_exc() + prints(msg) + notification(0.5, msg) return pages, failures @@ -226,9 +207,6 @@ def process_pages(pages, opts, update, tdir): ''' Render all identified comic pages. ''' - from calibre.utils.PythonMagickWand import ImageMagick - ImageMagick - progress = Progress(len(pages), update) server = Server() jobs = [] @@ -273,6 +251,7 @@ class ComicInput(InputFormatPlugin): description = 'Optimize comic files (.cbz, .cbr, .cbc) for viewing on portable devices' file_types = set(['cbz', 'cbr', 'cbc']) is_image_collection = True + core_usage = -1 options = set([ OptionRecommendation(name='colors', recommended_value=256, diff --git a/src/calibre/ebooks/metadata/__init__.py b/src/calibre/ebooks/metadata/__init__.py index 7a53abb067..8ce81c73d5 100644 --- a/src/calibre/ebooks/metadata/__init__.py +++ b/src/calibre/ebooks/metadata/__init__.py @@ -38,7 +38,7 @@ def author_to_author_sort(author): author = _bracket_pat.sub('', author).strip() tokens = author.split() tokens = tokens[-1:] + tokens[:-1] - if len(tokens) > 1: + if len(tokens) > 1 and method != 'nocomma': tokens[0] += ',' return ' '.join(tokens) @@ -46,6 +46,7 @@ def authors_to_sort_string(authors): return ' & '.join(map(author_to_author_sort, authors)) _title_pat = re.compile('^(A|The|An)\s+', re.IGNORECASE) + def title_sort(title): match = _title_pat.search(title) if match: diff --git a/src/calibre/ebooks/metadata/book/base.py b/src/calibre/ebooks/metadata/book/base.py index ba34f04f95..3fed47091f 100644 --- a/src/calibre/ebooks/metadata/book/base.py +++ b/src/calibre/ebooks/metadata/book/base.py @@ -82,7 +82,7 @@ class Metadata(object): def print_all_attributes(self): pass - def smart_update(self, other): + def smart_update(self, other, replace_metadata=False): pass def format_series_index(self): diff --git a/src/calibre/ebooks/metadata/covers.py b/src/calibre/ebooks/metadata/covers.py index af213d1a6c..b05444c1c6 100644 --- a/src/calibre/ebooks/metadata/covers.py +++ b/src/calibre/ebooks/metadata/covers.py @@ -5,11 +5,253 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' __docformat__ = 'restructuredtext en' +import traceback, socket, re, sys +from functools import partial +from threading import Thread, Event +from Queue import Queue, Empty + +import mechanize from calibre.customize import Plugin +from calibre import browser, prints +from calibre.ebooks.BeautifulSoup import BeautifulSoup +from calibre.constants import preferred_encoding, DEBUG class CoverDownload(Plugin): + ''' + These plugins are used to download covers for books. + ''' supported_platforms = ['windows', 'osx', 'linux'] author = 'Kovid Goyal' type = _('Cover download') + + def has_cover(self, mi, ans, timeout=5.): + ''' + Check if the book described by mi has a cover. Call ans.set() if it + does. Do nothing if it doesn't. + + :param mi: MetaInformation object + :param timeout: timeout in seconds + :param ans: A threading.Event object + ''' + raise NotImplementedError() + + def get_covers(self, mi, result_queue, abort, timeout=5.): + ''' + Download covers for books described by the mi object. Downloaded covers + must be put into the result_queue. If more than one cover is available, + the plugin should continue downloading them and putting them into + result_queue until abort.is_set() returns True. + + :param mi: MetaInformation object + :param result_queue: A multithreaded Queue + :param abort: A threading.Event object + :param timeout: timeout in seconds + ''' + raise NotImplementedError() + + def exception_to_string(self, ex): + try: + return unicode(ex) + except: + try: + return str(ex).decode(preferred_encoding, 'replace') + except: + return repr(ex) + + def debug(self, *args, **kwargs): + if DEBUG: + prints('\t'+self.name+':', *args, **kwargs) + + + +class HeadRequest(mechanize.Request): + + def get_method(self): + return 'HEAD' + +class OpenLibraryCovers(CoverDownload): # {{{ + 'Download covers from openlibrary.org' + + OPENLIBRARY = 'http://covers.openlibrary.org/b/isbn/%s-L.jpg?default=false' + name = 'openlibrary.org covers' + description = _('Download covers from openlibrary.org') + author = 'Kovid Goyal' + + def has_cover(self, mi, ans, timeout=5.): + if not mi.isbn: + return False + br = browser() + br.set_handle_redirect(False) + try: + br.open_novisit(HeadRequest(self.OPENLIBRARY%mi.isbn), timeout=timeout) + self.debug('cover for', mi.isbn, 'found') + ans.set() + except Exception, e: + if callable(getattr(e, 'getcode', None)) and e.getcode() == 302: + self.debug('cover for', mi.isbn, 'found') + ans.set() + else: + self.debug(e) + + def get_covers(self, mi, result_queue, abort, timeout=5.): + if not mi.isbn: + return + br = browser() + try: + ans = br.open(self.OPENLIBRARY%mi.isbn, timeout=timeout).read() + result_queue.put((True, ans, 'jpg', self.name)) + except Exception, e: + if callable(getattr(e, 'getcode', None)) and e.getcode() == 404: + result_queue.put((False, _('ISBN: %s not found')%mi.isbn, '', self.name)) + else: + result_queue.put((False, self.exception_to_string(e), + traceback.format_exc(), self.name)) + +# }}} + +class LibraryThingCovers(CoverDownload): # {{{ + + name = 'librarything.com covers' + description = _('Download covers from librarything.com') + author = 'Kovid Goyal' + + LIBRARYTHING = 'http://www.librarything.com/isbn/' + + def get_cover_url(self, isbn, br, timeout=5.): + try: + src = br.open_novisit('http://www.librarything.com/isbn/'+isbn, + timeout=timeout).read().decode('utf-8', 'replace') + except Exception, err: + if isinstance(getattr(err, 'args', [None])[0], socket.timeout): + err = Exception(_('LibraryThing.com timed out. Try again later.')) + raise err + else: + s = BeautifulSoup(src) + url = s.find('td', attrs={'class':'left'}) + if url is None: + if s.find('div', attrs={'class':'highloadwarning'}) is not None: + raise Exception(_('Could not fetch cover as server is experiencing high load. Please try again later.')) + raise Exception(_('ISBN: %s not found')%isbn) + url = url.find('img') + if url is None: + raise Exception(_('LibraryThing.com server error. Try again later.')) + url = re.sub(r'_S[XY]\d+', '', url['src']) + return url + + def has_cover(self, mi, ans, timeout=5.): + if not mi.isbn: + return False + br = browser() + try: + self.get_cover_url(mi.isbn, br, timeout=timeout) + self.debug('cover for', mi.isbn, 'found') + ans.set() + except Exception, e: + self.debug(e) + + def get_covers(self, mi, result_queue, abort, timeout=5.): + if not mi.isbn: + return + br = browser() + try: + url = self.get_cover_url(mi.isbn, br, timeout=timeout) + cover_data = br.open_novisit(url).read() + result_queue.put((True, cover_data, 'jpg', self.name)) + except Exception, e: + result_queue.put((False, self.exception_to_string(e), + traceback.format_exc(), self.name)) + +# }}} + +def check_for_cover(mi, timeout=5.): # {{{ + from calibre.customize.ui import cover_sources + ans = Event() + checkers = [partial(p.has_cover, mi, ans, timeout=timeout) for p in + cover_sources()] + workers = [Thread(target=c) for c in checkers] + for w in workers: + w.daemon = True + w.start() + while not ans.is_set(): + ans.wait(0.1) + if sum([int(w.is_alive()) for w in workers]) == 0: + break + return ans.is_set() + +# }}} + +def download_covers(mi, result_queue, max_covers=50, timeout=5.): # {{{ + from calibre.customize.ui import cover_sources + abort = Event() + temp = Queue() + getters = [partial(p.get_covers, mi, temp, abort, timeout=timeout) for p in + cover_sources()] + workers = [Thread(target=c) for c in getters] + for w in workers: + w.daemon = True + w.start() + count = 0 + while count < max_covers: + try: + result = temp.get_nowait() + if result[0]: + count += 1 + result_queue.put(result) + except Empty: + pass + if sum([int(w.is_alive()) for w in workers]) == 0: + break + + abort.set() + + while True: + try: + result = temp.get_nowait() + count += 1 + result_queue.put(result) + except Empty: + break + +# }}} + +def download_cover(mi, timeout=5.): # {{{ + results = Queue() + download_covers(mi, results, max_covers=1, timeout=timeout) + errors, ans = [], None + while True: + try: + x = results.get_nowait() + if x[0]: + ans = x[1] + else: + errors.append(x) + except Empty: + break + return ans, errors + +# }}} + +def test(isbns): # {{{ + from calibre.ebooks.metadata import MetaInformation + mi = MetaInformation('test', ['test']) + for isbn in isbns: + prints('Testing ISBN:', isbn) + mi.isbn = isbn + found = check_for_cover(mi) + prints('Has cover:', found) + ans, errors = download_cover(mi) + if ans is not None: + prints('Cover downloaded') + else: + prints('Download failed:') + for err in errors: + prints('\t', err[-1]+':', err[1]) + print '\n' + +# }}} + +if __name__ == '__main__': + isbns = sys.argv[1:] + ['9781591025412', '9780307272119'] + test(isbns) diff --git a/src/calibre/ebooks/metadata/epub.py b/src/calibre/ebooks/metadata/epub.py index b3980451bf..c2318efa0c 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, re +import os, re, posixpath, shutil from cStringIO import StringIO from contextlib import closing @@ -13,7 +13,7 @@ from calibre.utils.zipfile import ZipFile, BadZipfile, safe_replace from calibre.ebooks.BeautifulSoup import BeautifulStoneSoup from calibre.ebooks.metadata import MetaInformation from calibre.ebooks.metadata.opf2 import OPF -from calibre.ptempfile import TemporaryDirectory +from calibre.ptempfile import TemporaryDirectory, PersistentTemporaryFile from calibre import CurrentDir class EPubException(Exception): @@ -126,7 +126,6 @@ class OCFDirReader(OCFReader): return open(os.path.join(self.root, path), *args, **kwargs) def get_cover(opf, opf_path, stream, reader=None): - import posixpath from calibre.ebooks import render_html_svg_workaround from calibre.utils.logging import default_log raster_cover = opf.raster_cover @@ -185,7 +184,45 @@ def get_quick_metadata(stream): def set_metadata(stream, mi, apply_null=False, update_timestamp=False): stream.seek(0) reader = OCFZipReader(stream, root=os.getcwdu()) + raster_cover = reader.opf.raster_cover mi = MetaInformation(mi) + new_cdata = None + replacements = {} + try: + new_cdata = mi.cover_data[1] + if not new_cdata: + raise Exception('no cover') + except: + try: + new_cdata = open(mi.cover, 'rb').read() + except: + import traceback + traceback.print_exc() + if new_cdata and raster_cover: + try: + cpath = posixpath.join(posixpath.dirname(reader.opf_path), + raster_cover) + cover_replacable = not reader.encryption_meta.is_encrypted(cpath) and \ + os.path.splitext(cpath)[1].lower() in ('.png', '.jpg', '.jpeg') + if cover_replacable: + from calibre.utils.magick.draw import save_cover_data_to, \ + identify + new_cover = PersistentTemporaryFile(suffix=os.path.splitext(cpath)[1]) + resize_to = None + if False: # Resize new cover to same size as old cover + shutil.copyfileobj(reader.open(cpath), new_cover) + new_cover.close() + width, height, fmt = identify(new_cover.name) + resize_to = (width, height) + else: + new_cover.close() + save_cover_data_to(new_cdata, new_cover.name, + resize_to=resize_to) + replacements[cpath] = open(new_cover.name, 'rb') + except: + import traceback + traceback.print_exc() + for x in ('guide', 'toc', 'manifest', 'spine'): setattr(mi, x, None) reader.opf.smart_update(mi) @@ -200,5 +237,6 @@ def set_metadata(stream, mi, apply_null=False, update_timestamp=False): reader.opf.timestamp = mi.timestamp newopf = StringIO(reader.opf.render()) - safe_replace(stream, reader.container[OPF.MIMETYPE], newopf) + safe_replace(stream, reader.container[OPF.MIMETYPE], newopf, + extra_replacements=replacements) diff --git a/src/calibre/ebooks/metadata/fetch.py b/src/calibre/ebooks/metadata/fetch.py index 0613f64bfb..96807c06ae 100644 --- a/src/calibre/ebooks/metadata/fetch.py +++ b/src/calibre/ebooks/metadata/fetch.py @@ -9,12 +9,29 @@ from threading import Thread from calibre import prints from calibre.utils.config import OptionParser from calibre.utils.logging import default_log +from calibre.utils.titlecase import titlecase from calibre.customize import Plugin -from calibre.ebooks.metadata.library_thing import check_for_cover +from calibre.ebooks.metadata.covers import check_for_cover metadata_config = None class MetadataSource(Plugin): # {{{ + ''' + Represents a source to query for metadata. Subclasses must implement + at least the fetch method. + + When :meth:`fetch` is called, the `self` object will have the following + useful attributes (each of which may be None):: + + title, book_author, publisher, isbn, log, verbose and extra + + Use these attributes to construct the search query. extra is reserved for + future use. + + The fetch method must store the results in `self.results` as a list of + :class:`MetaInformation` objects. If there is an error, it should be stored + in `self.exception` and `self.tb` (for the traceback). + ''' author = 'Kovid Goyal' @@ -273,11 +290,10 @@ def filter_metadata_results(item): def do_cover_check(item): item.has_cover = False - if item.isbn: - try: - item.has_cover = check_for_cover(item.isbn) - except: - pass # Cover not found + try: + item.has_cover = check_for_cover(item) + except: + pass # Cover not found def check_for_covers(items): threads = [Thread(target=do_cover_check, args=(item,)) for item in items] @@ -369,6 +385,16 @@ def search(title=None, author=None, publisher=None, isbn=None, isbndb_key=None, if r.pubdate is None: r.pubdate = pubdate + def fix_case(x): + if x and x.isupper(): + x = titlecase(x) + return x + + for r in results: + r.title = fix_case(r.title) + if r.authors: + r.authors = list(map(fix_case, r.authors)) + return results, [(x.name, x.exception, x.tb) for x in fetchers] def get_social_metadata(mi, verbose=0): diff --git a/src/calibre/ebooks/metadata/opf2.py b/src/calibre/ebooks/metadata/opf2.py index 36588471f2..f93b614ef2 100644 --- a/src/calibre/ebooks/metadata/opf2.py +++ b/src/calibre/ebooks/metadata/opf2.py @@ -916,7 +916,7 @@ class OPF(object): raw = '\n'%encoding.upper()+raw return raw - def smart_update(self, mi): + def smart_update(self, mi, replace_metadata=False): for attr in ('title', 'authors', 'author_sort', 'title_sort', 'publisher', 'series', 'series_index', 'rating', 'isbn', 'language', 'tags', 'category', 'comments', diff --git a/src/calibre/ebooks/mobi/writer.py b/src/calibre/ebooks/mobi/writer.py index ca5256b430..10f1ee32d6 100644 --- a/src/calibre/ebooks/mobi/writer.py +++ b/src/calibre/ebooks/mobi/writer.py @@ -185,7 +185,7 @@ class Serializer(object): buffer.write('') for ref in self.oeb.guide.values(): path = urldefrag(ref.href)[0] - if hrefs[path].media_type not in OEB_DOCS: + if path not in hrefs or hrefs[path].media_type not in OEB_DOCS: continue buffer.write(' ci - 'annotation' : 'annotation', - 'blue______' : 'blue', - 'bold______' : 'bold', - 'caps______' : 'caps', - 'char-style' : 'character-style', - 'dbl-strike' : 'double-strike-through', - 'emboss____' : 'emboss', - 'engrave___' : 'engrave', - 'font-color' : 'font-color', - 'font-down_' : 'subscript', - 'font-size_' : 'font-size', - 'font-style' : 'font-style', - 'font-up___' : 'superscript', - 'footnot-mk' : 'footnote-marker', - 'green_____' : 'green', - 'hidden____' : 'hidden', - 'italics___' : 'italics', - 'outline___' : 'outline', - 'red_______' : 'red', - 'shadow____' : 'shadow', - 'small-caps' : 'small-caps', - 'strike-thr' : 'strike-through', - 'subscript_' : 'subscript', - 'superscrip' : 'superscript', - 'underlined' : 'underlined', + # character info => ci + 'annotation' : 'annotation', + 'blue______' : 'blue', + 'bold______' : 'bold', + 'caps______' : 'caps', + 'char-style' : 'character-style', + 'dbl-strike' : 'double-strike-through', + 'emboss____' : 'emboss', + 'engrave___' : 'engrave', + 'font-color' : 'font-color', + 'font-down_' : 'subscript', + 'font-size_' : 'font-size', + 'font-style' : 'font-style', + 'font-up___' : 'superscript', + 'footnot-mk' : 'footnote-marker', + 'green_____' : 'green', + 'hidden____' : 'hidden', + 'italics___' : 'italics', + 'outline___' : 'outline', + 'red_______' : 'red', + 'shadow____' : 'shadow', + 'small-caps' : 'small-caps', + 'strike-thr' : 'strike-through', + 'subscript_' : 'subscript', + 'superscrip' : 'superscript', + 'underlined' : 'underlined', } self.__caps_list = ['false'] def __set_list_func(self, line): @@ -133,11 +135,13 @@ class Inline: Returns: nothing Logic: + Write if not hardline break """ action = self.__default_dict.get(self.__token_info) if action: action(line) - self.__write_obj.write(line) + if self.__token_info != 'cw pf 'page' : ('pf', 'page-break', self.default_func), 'par' : ('pf', 'par-end___', self.default_func), diff --git a/src/calibre/ebooks/txt/processor.py b/src/calibre/ebooks/txt/processor.py index c53d630ed6..a12e8a0761 100644 --- a/src/calibre/ebooks/txt/processor.py +++ b/src/calibre/ebooks/txt/processor.py @@ -4,10 +4,9 @@ Read content from txt file. ''' -import os -import re +import os, re -from calibre import prepare_string_for_xml +from calibre import prepare_string_for_xml, isbytestring from calibre.ebooks.markdown import markdown from calibre.ebooks.metadata.opf2 import OPFCreator @@ -18,6 +17,8 @@ __docformat__ = 'restructuredtext en' HTML_TEMPLATE = u'%s\n%s\n' def convert_basic(txt, title='', epub_split_size_kb=0): + if isbytestring(txt): + txt = txt.decode('utf-8', 'replace') # Strip whitespace from the beginning and end of the line. Also replace # all line breaks with \n. txt = '\n'.join([line.strip() for line in txt.splitlines()]) @@ -30,23 +31,32 @@ def convert_basic(txt, title='', epub_split_size_kb=0): txt = re.sub('(?<=.)\s+$', '', txt) # Remove excessive line breaks. txt = re.sub('\n{3,}', '\n\n', txt) - + #remove ASCII invalid chars : 0 to 8 and 11-14 to 24 + chars = list(range(8)) + [0x0B, 0x0E, 0x0F] + list(range(0x10, 0x19)) + illegal_chars = re.compile(u'|'.join(map(unichr, chars))) + txt = illegal_chars.sub('', txt) #Takes care if there is no point to split if epub_split_size_kb > 0: - length_byte = len(txt.encode('utf-8')) + if isinstance(txt, unicode): + txt = txt.encode('utf-8') + length_byte = len(txt) #Calculating the average chunk value for easy splitting as EPUB (+2 as a safe margin) chunk_size = long(length_byte / (int(length_byte / (epub_split_size_kb * 1024) ) + 2 )) #if there are chunks with a superior size then go and break - if (len(filter(lambda x: len(x.encode('utf-8')) > chunk_size, txt.split('\n\n')))) : - txt = u'\n\n'.join([split_string_separator(line, chunk_size) for line in txt.split('\n\n')]) + if (len(filter(lambda x: len(x) > chunk_size, txt.split('\n\n')))) : + txt = '\n\n'.join([split_string_separator(line, chunk_size) + for line in txt.split('\n\n')]) + if isbytestring(txt): + txt = txt.decode('utf-8') + lines = [] # Split into paragraphs based on having a blank line between text. for line in txt.split('\n\n'): if line.strip(): - lines.append('

%s

' % prepare_string_for_xml(line.replace('\n', ' '))) + lines.append(u'

%s

' % prepare_string_for_xml(line.replace('\n', ' '))) - return HTML_TEMPLATE % (title, '\n'.join(lines)) + return HTML_TEMPLATE % (title, u'\n'.join(lines)) def convert_markdown(txt, title='', disable_toc=False): md = markdown.Markdown( @@ -58,11 +68,11 @@ def convert_markdown(txt, title='', disable_toc=False): def separate_paragraphs_single_line(txt): txt = txt.replace('\r\n', '\n') txt = txt.replace('\r', '\n') - txt = re.sub(u'(?<=.)\n(?=.)', u'\n\n', txt) + txt = re.sub(u'(?<=.)\n(?=.)', '\n\n', txt) return txt def separate_paragraphs_print_formatted(txt): - txt = re.sub('(?miu)^(\t+|[ ]{2,})(?=.)', '\n\t', txt) + txt = re.sub(u'(?miu)^(\t+|[ ]{2,})(?=.)', '\n\t', txt) return txt def preserve_spaces(txt): @@ -78,9 +88,9 @@ def opf_writer(path, opf_name, manifest, spine, mi): opf.render(opffile) def split_string_separator(txt, size) : - if len(txt.encode('utf-8')) > size: - txt = u''.join([re.sub(u'\.(?P[^.]*)$', u'.\n\n\g', + if len(txt) > size: + txt = ''.join([re.sub(u'\.(?P[^.]*)$', '.\n\n\g', txt[i:i+size], 1) for i in - xrange(0, len(txt.encode('utf-8')), size)]) + xrange(0, len(txt), size)]) return txt diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 41d72d17f1..062e4eeab9 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -244,14 +244,20 @@ def info_dialog(parent, title, msg, det_msg='', show=False): class Dispatcher(QObject): - '''Convenience class to ensure that a function call always happens in the - thread the receiver was created in.''' + ''' + Convenience class to use Qt signals with arbitrary python callables. + By default, ensures that a function call always happens in the + thread this Dispatcher was created in. + ''' dispatch_signal = pyqtSignal(object, object) - def __init__(self, func): - QObject.__init__(self) + def __init__(self, func, queued=True, parent=None): + QObject.__init__(self, parent) self.func = func - self.dispatch_signal.connect(self.dispatch, type=Qt.QueuedConnection) + typ = Qt.QueuedConnection + if not queued: + typ = Qt.AutoConnection if queued is None else Qt.DirectConnection + self.dispatch_signal.connect(self.dispatch, type=typ) def __call__(self, *args, **kwargs): self.dispatch_signal.emit(args, kwargs) @@ -329,6 +335,7 @@ class FileIconProvider(QFileIconProvider): 'epub' : 'epub', 'fb2' : 'fb2', 'rtf' : 'rtf', + 'odt' : 'odt', } def __init__(self): diff --git a/src/calibre/gui2/actions.py b/src/calibre/gui2/actions.py deleted file mode 100644 index b3b6e7e001..0000000000 --- a/src/calibre/gui2/actions.py +++ /dev/null @@ -1,1326 +0,0 @@ -#!/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' - -import shutil, os, datetime, time -from functools import partial - -from PyQt4.Qt import QInputDialog, pyqtSignal, QModelIndex, QThread, Qt, \ - SIGNAL, QPixmap, QTimer, QDialog - -from calibre import strftime -from calibre.ptempfile import PersistentTemporaryFile -from calibre.utils.config import prefs, dynamic -from calibre.gui2 import error_dialog, Dispatcher, gprefs, choose_files, \ - choose_dir, warning_dialog, info_dialog, question_dialog, config, \ - open_local_file -from calibre.ebooks.BeautifulSoup import BeautifulSoup, Tag, NavigableString -from calibre.utils.filenames import ascii_filename -from calibre.gui2.widgets import IMAGE_EXTENSIONS -from calibre.gui2.dialogs.metadata_single import MetadataSingleDialog -from calibre.gui2.dialogs.metadata_bulk import MetadataBulkDialog -from calibre.gui2.dialogs.tag_list_editor import TagListEditor -from calibre.gui2.tools import convert_single_ebook, convert_bulk_ebook, \ - fetch_scheduled_recipe, generate_catalog -from calibre.constants import preferred_encoding, filesystem_encoding, \ - isosx -from calibre.gui2.dialogs.choose_format import ChooseFormatDialog -from calibre.ebooks import BOOK_EXTENSIONS -from calibre.gui2.dialogs.confirm_delete import confirm -from calibre.gui2.dialogs.delete_matching_from_device import DeleteMatchingFromDeviceDialog - -class AnnotationsAction(object): # {{{ - - def fetch_annotations(self, *args): - # Generate a path_map from selected ids - def get_ids_from_selected_rows(): - rows = self.library_view.selectionModel().selectedRows() - if not rows or len(rows) < 2: - rows = xrange(self.library_view.model().rowCount(QModelIndex())) - ids = map(self.library_view.model().id, rows) - return ids - - def get_formats(id): - formats = db.formats(id, index_is_id=True) - fmts = [] - if formats: - for format in formats.split(','): - fmts.append(format.lower()) - return fmts - - def generate_annotation_paths(ids, db, device): - # Generate path templates - # Individual storage mount points scanned/resolved in driver.get_annotations() - path_map = {} - for id in ids: - mi = db.get_metadata(id, index_is_id=True) - a_path = device.create_upload_path(os.path.abspath('/'), mi, 'x.bookmark', create_dirs=False) - path_map[id] = dict(path=a_path, fmts=get_formats(id)) - return path_map - - device = self.device_manager.device - - if self.current_view() is not self.library_view: - return error_dialog(self, _('Use library only'), - _('User annotations generated from main library only'), - show=True) - db = self.library_view.model().db - - # Get the list of ids - ids = get_ids_from_selected_rows() - if not ids: - return error_dialog(self, _('No books selected'), - _('No books selected to fetch annotations from'), - show=True) - - # Map ids to paths - path_map = generate_annotation_paths(ids, db, device) - - # Dispatch to devices.kindle.driver.get_annotations() - self.device_manager.annotations(Dispatcher(self.annotations_fetched), - path_map) - - def annotations_fetched(self, job): - from calibre.devices.usbms.device import Device - from calibre.ebooks.metadata import MetaInformation - from calibre.gui2.dialogs.progress import ProgressDialog - from calibre.library.cli import do_add_format - - class Updater(QThread): - - update_progress = pyqtSignal(int) - update_done = pyqtSignal() - FINISHED_READING_PCT_THRESHOLD = 96 - - def __init__(self, parent, db, annotation_map, done_callback): - QThread.__init__(self, parent) - self.db = db - self.pd = ProgressDialog(_('Merging user annotations into database'), '', - 0, len(job.result), parent=parent) - - self.am = annotation_map - self.done_callback = done_callback - self.connect(self.pd, SIGNAL('canceled()'), self.canceled) - self.pd.setModal(True) - self.pd.show() - self.update_progress.connect(self.pd.set_value, - type=Qt.QueuedConnection) - self.update_done.connect(self.pd.hide, type=Qt.QueuedConnection) - - def generate_annotation_html(self, bookmark): - # Returns
...
- last_read_location = bookmark.last_read_location - timestamp = datetime.datetime.utcfromtimestamp(bookmark.timestamp) - percent_read = bookmark.percent_read - - ka_soup = BeautifulSoup() - dtc = 0 - divTag = Tag(ka_soup,'div') - divTag['class'] = 'user_annotations' - - # Add the last-read location - spanTag = Tag(ka_soup, 'span') - spanTag['style'] = 'font-weight:bold' - if bookmark.book_format == 'pdf': - spanTag.insert(0,NavigableString( - _("%s
Last Page Read: %d (%d%%)") % \ - (strftime(u'%x', timestamp.timetuple()), - last_read_location, - percent_read))) - else: - spanTag.insert(0,NavigableString( - _("%s
Last Page Read: Location %d (%d%%)") % \ - (strftime(u'%x', timestamp.timetuple()), - last_read_location, - percent_read))) - - divTag.insert(dtc, spanTag) - dtc += 1 - divTag.insert(dtc, Tag(ka_soup,'br')) - dtc += 1 - - if bookmark.user_notes: - user_notes = bookmark.user_notes - annotations = [] - - # Add the annotations sorted by location - # Italicize highlighted text - for location in sorted(user_notes): - if user_notes[location]['text']: - annotations.append( - _('Location %d • %s
%s
') % \ - (user_notes[location]['displayed_location'], - user_notes[location]['type'], - user_notes[location]['text'] if \ - user_notes[location]['type'] == 'Note' else \ - '%s' % user_notes[location]['text'])) - else: - if bookmark.book_format == 'pdf': - annotations.append( - _('Page %d • %s
') % \ - (user_notes[location]['displayed_location'], - user_notes[location]['type'])) - else: - annotations.append( - _('Location %d • %s
') % \ - (user_notes[location]['displayed_location'], - user_notes[location]['type'])) - - for annotation in annotations: - divTag.insert(dtc, annotation) - dtc += 1 - - ka_soup.insert(0,divTag) - return ka_soup - - def mark_book_as_read(self,id): - read_tag = gprefs.get('catalog_epub_mobi_read_tag') - if read_tag: - self.db.set_tags(id, [read_tag], append=True) - - def canceled(self): - self.pd.hide() - - def run(self): - ignore_tags = set(['Catalog','Clippings']) - for (i, id) in enumerate(self.am): - bm = Device.UserAnnotation(self.am[id][0],self.am[id][1]) - if bm.type == 'kindle_bookmark': - mi = self.db.get_metadata(id, index_is_id=True) - user_notes_soup = self.generate_annotation_html(bm.value) - if mi.comments: - a_offset = mi.comments.find('
') - ad_offset = mi.comments.find('
') - - if a_offset >= 0: - mi.comments = mi.comments[:a_offset] - if ad_offset >= 0: - mi.comments = mi.comments[:ad_offset] - if set(mi.tags).intersection(ignore_tags): - continue - if mi.comments: - hrTag = Tag(user_notes_soup,'hr') - hrTag['class'] = 'annotations_divider' - user_notes_soup.insert(0,hrTag) - - mi.comments += user_notes_soup.prettify() - else: - mi.comments = unicode(user_notes_soup.prettify()) - # Update library comments - self.db.set_comment(id, mi.comments) - - # Update 'read' tag except for Catalogs/Clippings - if bm.value.percent_read >= self.FINISHED_READING_PCT_THRESHOLD: - if not set(mi.tags).intersection(ignore_tags): - self.mark_book_as_read(id) - - # Add bookmark file to id - self.db.add_format_with_hooks(id, bm.value.bookmark_extension, - bm.value.path, index_is_id=True) - self.update_progress.emit(i) - elif bm.type == 'kindle_clippings': - # Find 'My Clippings' author=Kindle in database, or add - last_update = 'Last modified %s' % strftime(u'%x %X',bm.value['timestamp'].timetuple()) - mc_id = list(db.data.parse('title:"My Clippings"')) - if mc_id: - do_add_format(self.db, mc_id[0], 'TXT', bm.value['path']) - mi = self.db.get_metadata(mc_id[0], index_is_id=True) - mi.comments = last_update - self.db.set_metadata(mc_id[0], mi) - else: - mi = MetaInformation('My Clippings', authors = ['Kindle']) - mi.tags = ['Clippings'] - mi.comments = last_update - self.db.add_books([bm.value['path']], ['txt'], [mi]) - - self.update_done.emit() - self.done_callback(self.am.keys()) - - if not job.result: return - - if self.current_view() is not self.library_view: - return error_dialog(self, _('Use library only'), - _('User annotations generated from main library only'), - show=True) - db = self.library_view.model().db - - self.__annotation_updater = Updater(self, db, job.result, - Dispatcher(self.library_view.model().refresh_ids)) - self.__annotation_updater.start() - - # }}} - -class AddAction(object): # {{{ - - def __init__(self): - self._add_filesystem_book = Dispatcher(self.__add_filesystem_book) - - def add_recursive(self, single): - root = choose_dir(self, 'recursive book import root dir dialog', - 'Select root folder') - if not root: - return - from calibre.gui2.add import Adder - self._adder = Adder(self, - self.library_view.model().db, - Dispatcher(self._files_added), spare_server=self.spare_server) - self._adder.add_recursive(root, single) - - def add_recursive_single(self, *args): - ''' - Add books from the local filesystem to either the library or the device - recursively assuming one book per folder. - ''' - self.add_recursive(True) - - def add_recursive_multiple(self, *args): - ''' - Add books from the local filesystem to either the library or the device - recursively assuming multiple books per folder. - ''' - self.add_recursive(False) - - def add_empty(self, *args): - ''' - Add an empty book item to the library. This does not import any formats - from a book file. - ''' - num, ok = QInputDialog.getInt(self, _('How many empty books?'), - _('How many empty books should be added?'), 1, 1, 100) - if ok: - from calibre.ebooks.metadata import MetaInformation - for x in xrange(num): - self.library_view.model().db.import_book(MetaInformation(None), []) - self.library_view.model().books_added(num) - - def files_dropped(self, paths): - to_device = self.stack.currentIndex() != 0 - self._add_books(paths, to_device) - - def files_dropped_on_book(self, event, paths): - accept = False - if self.current_view() is not self.library_view: - return - db = self.library_view.model().db - current_idx = self.library_view.currentIndex() - if not current_idx.isValid(): return - cid = db.id(current_idx.row()) - for path in paths: - ext = os.path.splitext(path)[1].lower() - if ext: - ext = ext[1:] - if ext in IMAGE_EXTENSIONS: - pmap = QPixmap() - pmap.load(path) - if not pmap.isNull(): - accept = True - db.set_cover(cid, pmap) - elif ext in BOOK_EXTENSIONS: - db.add_format_with_hooks(cid, ext, path, index_is_id=True) - accept = True - if accept: - event.accept() - self.library_view.model().current_changed(current_idx, current_idx) - - def __add_filesystem_book(self, paths, allow_device=True): - if isinstance(paths, basestring): - paths = [paths] - books = [path for path in map(os.path.abspath, paths) if os.access(path, - os.R_OK)] - - if books: - to_device = allow_device and self.stack.currentIndex() != 0 - self._add_books(books, to_device) - if to_device: - self.status_bar.show_message(\ - _('Uploading books to device.'), 2000) - - - def add_filesystem_book(self, paths, allow_device=True): - self._add_filesystem_book(paths, allow_device=allow_device) - - def add_books(self, *args): - ''' - Add books from the local filesystem to either the library or the device. - ''' - filters = [ - (_('Books'), BOOK_EXTENSIONS), - (_('EPUB Books'), ['epub']), - (_('LRF Books'), ['lrf']), - (_('HTML Books'), ['htm', 'html', 'xhtm', 'xhtml']), - (_('LIT Books'), ['lit']), - (_('MOBI Books'), ['mobi', 'prc', 'azw']), - (_('Topaz books'), ['tpz','azw1']), - (_('Text books'), ['txt', 'rtf']), - (_('PDF Books'), ['pdf']), - (_('Comics'), ['cbz', 'cbr', 'cbc']), - (_('Archives'), ['zip', 'rar']), - ] - to_device = self.stack.currentIndex() != 0 - if to_device: - filters = [(_('Supported books'), self.device_manager.device.FORMATS)] - - books = choose_files(self, 'add books dialog dir', 'Select books', - filters=filters) - if not books: - return - self._add_books(books, to_device) - - def _add_books(self, paths, to_device, on_card=None): - if on_card is None: - on_card = 'carda' if self.stack.currentIndex() == 2 else 'cardb' if self.stack.currentIndex() == 3 else None - if not paths: - return - from calibre.gui2.add import Adder - self.__adder_func = partial(self._files_added, on_card=on_card) - self._adder = Adder(self, - None if to_device else self.library_view.model().db, - Dispatcher(self.__adder_func), spare_server=self.spare_server) - self._adder.add(paths) - - def _files_added(self, paths=[], names=[], infos=[], on_card=None): - if paths: - self.upload_books(paths, - list(map(ascii_filename, names)), - infos, on_card=on_card) - self.status_bar.show_message( - _('Uploading books to device.'), 2000) - if getattr(self._adder, 'number_of_books_added', 0) > 0: - self.library_view.model().books_added(self._adder.number_of_books_added) - if hasattr(self, 'db_images'): - self.db_images.reset() - if getattr(self._adder, 'merged_books', False): - books = u'\n'.join([x if isinstance(x, unicode) else - x.decode(preferred_encoding, 'replace') for x in - self._adder.merged_books]) - info_dialog(self, _('Merged some books'), - _('Some duplicates were found and merged into the ' - 'following existing books:'), det_msg=books, show=True) - if getattr(self._adder, 'critical', None): - det_msg = [] - for name, log in self._adder.critical.items(): - if isinstance(name, str): - name = name.decode(filesystem_encoding, 'replace') - det_msg.append(name+'\n'+log) - - warning_dialog(self, _('Failed to read metadata'), - _('Failed to read metadata from the following')+':', - det_msg='\n\n'.join(det_msg), show=True) - - if hasattr(self._adder, 'cleanup'): - self._adder.cleanup() - self._adder = None - - def _add_from_device_adder(self, paths=[], names=[], infos=[], - on_card=None, model=None): - self._files_added(paths, names, infos, on_card=on_card) - # set the in-library flags, and as a consequence send the library's - # metadata for this book to the device. This sets the uuid to the - # correct value. - self.set_books_in_library(booklists=[model.db], reset=True) - model.reset() - - def add_books_from_device(self, view): - rows = view.selectionModel().selectedRows() - if not rows or len(rows) == 0: - d = error_dialog(self, _('Add to library'), _('No book selected')) - d.exec_() - return - paths = [p for p in view._model.paths(rows) if p is not None] - if not paths or len(paths) == 0: - d = error_dialog(self, _('Add to library'), _('No book files found')) - d.exec_() - return - from calibre.gui2.add import Adder - self.__adder_func = partial(self._add_from_device_adder, on_card=None, - model=view._model) - self._adder = Adder(self, self.library_view.model().db, - Dispatcher(self.__adder_func), spare_server=self.spare_server) - self._adder.add(paths) - - # }}} - -class DeleteAction(object): # {{{ - - def _get_selected_formats(self, msg): - from calibre.gui2.dialogs.select_formats import SelectFormats - fmts = self.library_view.model().db.all_formats() - d = SelectFormats([x.lower() for x in fmts], msg, parent=self) - if d.exec_() != d.Accepted: - return None - return d.selected_formats - - def _get_selected_ids(self, err_title=_('Cannot delete')): - rows = self.library_view.selectionModel().selectedRows() - if not rows or len(rows) == 0: - d = error_dialog(self, err_title, _('No book selected')) - d.exec_() - return set([]) - return set(map(self.library_view.model().id, rows)) - - def delete_selected_formats(self, *args): - ids = self._get_selected_ids() - if not ids: - return - fmts = self._get_selected_formats( - _('Choose formats to be deleted')) - if not fmts: - return - for id in ids: - for fmt in fmts: - self.library_view.model().db.remove_format(id, fmt, - index_is_id=True, notify=False) - self.library_view.model().refresh_ids(ids) - self.library_view.model().current_changed(self.library_view.currentIndex(), - self.library_view.currentIndex()) - if ids: - self.tags_view.recount() - - def delete_all_but_selected_formats(self, *args): - ids = self._get_selected_ids() - if not ids: - return - fmts = self._get_selected_formats( - '

'+_('Choose formats not to be deleted')) - if fmts is None: - return - for id in ids: - bfmts = self.library_view.model().db.formats(id, index_is_id=True) - if bfmts is None: - continue - bfmts = set([x.lower() for x in bfmts.split(',')]) - rfmts = bfmts - set(fmts) - for fmt in rfmts: - self.library_view.model().db.remove_format(id, fmt, - index_is_id=True, notify=False) - self.library_view.model().refresh_ids(ids) - self.library_view.model().current_changed(self.library_view.currentIndex(), - self.library_view.currentIndex()) - if ids: - self.tags_view.recount() - - def remove_matching_books_from_device(self, *args): - if not self.device_manager.is_device_connected: - d = error_dialog(self, _('Cannot delete books'), - _('No device is connected')) - d.exec_() - return - ids = self._get_selected_ids() - if not ids: - #_get_selected_ids shows a dialog box if nothing is selected, so we - #do not need to show one here - return - to_delete = {} - some_to_delete = False - for model,name in ((self.memory_view.model(), _('Main memory')), - (self.card_a_view.model(), _('Storage Card A')), - (self.card_b_view.model(), _('Storage Card B'))): - to_delete[name] = (model, model.paths_for_db_ids(ids)) - if len(to_delete[name][1]) > 0: - some_to_delete = True - if not some_to_delete: - d = error_dialog(self, _('No books to delete'), - _('None of the selected books are on the device')) - d.exec_() - return - d = DeleteMatchingFromDeviceDialog(self, to_delete) - if d.exec_(): - paths = {} - ids = {} - for (model, id, path) in d.result: - if model not in paths: - paths[model] = [] - ids[model] = [] - paths[model].append(path) - ids[model].append(id) - for model in paths: - job = self.remove_paths(paths[model]) - self.delete_memory[job] = (paths[model], model) - model.mark_for_deletion(job, ids[model], rows_are_ids=True) - self.status_bar.show_message(_('Deleting books from device.'), 1000) - - def delete_covers(self, *args): - ids = self._get_selected_ids() - if not ids: - return - for id in ids: - self.library_view.model().db.remove_cover(id) - self.library_view.model().refresh_ids(ids) - self.library_view.model().current_changed(self.library_view.currentIndex(), - self.library_view.currentIndex()) - - def delete_books(self, *args): - ''' - Delete selected books from device or library. - ''' - view = self.current_view() - rows = view.selectionModel().selectedRows() - if not rows or len(rows) == 0: - return - if self.stack.currentIndex() == 0: - if not confirm('

'+_('The selected books will be ' - 'permanently deleted and the files ' - 'removed from your computer. Are you sure?') - +'

', 'library_delete_books', self): - return - ci = view.currentIndex() - row = None - if ci.isValid(): - row = ci.row() - ids_deleted = view.model().delete_books(rows) - for v in (self.memory_view, self.card_a_view, self.card_b_view): - if v is None: - continue - v.model().clear_ondevice(ids_deleted) - if row is not None: - ci = view.model().index(row, 0) - if ci.isValid(): - view.set_current_row(row) - else: - if not confirm('

'+_('The selected books will be ' - 'permanently deleted ' - 'from your device. Are you sure?') - +'

', 'device_delete_books', self): - return - if self.stack.currentIndex() == 1: - view = self.memory_view - elif self.stack.currentIndex() == 2: - view = self.card_a_view - else: - view = self.card_b_view - paths = view.model().paths(rows) - job = self.remove_paths(paths) - self.delete_memory[job] = (paths, view.model()) - view.model().mark_for_deletion(job, rows) - self.status_bar.show_message(_('Deleting books from device.'), 1000) - - # }}} - -class EditMetadataAction(object): # {{{ - - def download_metadata(self, checked, covers=True, set_metadata=True, - set_social_metadata=None): - rows = self.library_view.selectionModel().selectedRows() - if not rows or len(rows) == 0: - d = error_dialog(self, _('Cannot download metadata'), - _('No books selected')) - d.exec_() - return - db = self.library_view.model().db - ids = [db.id(row.row()) for row in rows] - if set_social_metadata is None: - get_social_metadata = config['get_social_metadata'] - else: - get_social_metadata = set_social_metadata - from calibre.gui2.metadata import DownloadMetadata - self._download_book_metadata = DownloadMetadata(db, ids, - get_covers=covers, set_metadata=set_metadata, - get_social_metadata=get_social_metadata) - self._download_book_metadata.start() - if set_social_metadata is not None and set_social_metadata: - x = _('social metadata') - else: - x = _('covers') if covers and not set_metadata else _('metadata') - self.progress_indicator.start( - _('Downloading %s for %d book(s)')%(x, len(ids))) - self._book_metadata_download_check = QTimer(self) - self.connect(self._book_metadata_download_check, - SIGNAL('timeout()'), self.book_metadata_download_check, - Qt.QueuedConnection) - self._book_metadata_download_check.start(100) - - def book_metadata_download_check(self): - if self._download_book_metadata.is_alive(): - return - self._book_metadata_download_check.stop() - self.progress_indicator.stop() - cr = self.library_view.currentIndex().row() - x = self._download_book_metadata - self._download_book_metadata = None - if x.exception is None: - self.library_view.model().refresh_ids( - x.updated, cr) - if self.cover_flow: - self.cover_flow.dataChanged() - if x.failures: - details = ['%s: %s'%(title, reason) for title, - reason in x.failures.values()] - details = '%s\n'%('\n'.join(details)) - warning_dialog(self, _('Failed to download some metadata'), - _('Failed to download metadata for the following:'), - det_msg=details).exec_() - else: - err = _('Failed to download metadata:') - error_dialog(self, _('Error'), err, det_msg=x.tb).exec_() - - - def edit_metadata(self, checked, bulk=None): - ''' - Edit metadata of selected books in library. - ''' - rows = self.library_view.selectionModel().selectedRows() - previous = self.library_view.currentIndex() - if not rows or len(rows) == 0: - d = error_dialog(self, _('Cannot edit metadata'), - _('No books selected')) - d.exec_() - return - - if bulk or (bulk is None and len(rows) > 1): - return self.edit_bulk_metadata(checked) - - def accepted(id): - self.library_view.model().refresh_ids([id]) - - for row in rows: - self._metadata_view_id = self.library_view.model().db.id(row.row()) - d = MetadataSingleDialog(self, row.row(), - self.library_view.model().db, - accepted_callback=accepted, - cancel_all=rows.index(row) < len(rows)-1) - self.connect(d, SIGNAL('view_format(PyQt_PyObject)'), - self.metadata_view_format) - d.exec_() - if d.cancel_all: - break - if rows: - current = self.library_view.currentIndex() - m = self.library_view.model() - if self.cover_flow: - self.cover_flow.dataChanged() - m.current_changed(current, previous) - self.tags_view.recount() - - def edit_bulk_metadata(self, checked): - ''' - Edit metadata of selected books in library in bulk. - ''' - rows = [r.row() for r in \ - self.library_view.selectionModel().selectedRows()] - if not rows or len(rows) == 0: - d = error_dialog(self, _('Cannot edit metadata'), - _('No books selected')) - d.exec_() - return - if MetadataBulkDialog(self, rows, - self.library_view.model().db).changed: - self.library_view.model().resort(reset=False) - self.library_view.model().research() - self.tags_view.recount() - if self.cover_flow: - self.cover_flow.dataChanged() - - # Merge books {{{ - def merge_books(self, safe_merge=False): - ''' - Merge selected books in library. - ''' - if self.stack.currentIndex() != 0: - return - rows = self.library_view.selectionModel().selectedRows() - if not rows or len(rows) == 0: - return error_dialog(self, _('Cannot merge books'), - _('No books selected'), show=True) - if len(rows) < 2: - return error_dialog(self, _('Cannot merge books'), - _('At least two books must be selected for merging'), - show=True) - dest_id, src_books, src_ids = self.books_to_merge(rows) - if safe_merge: - if not confirm('

'+_( - 'All book formats and metadata from the selected books ' - 'will be added to the first selected book.

' - 'The second and subsequently selected books will not ' - 'be deleted or changed.

' - 'Please confirm you want to proceed.') - +'

', 'merge_books_safe', self): - return - self.add_formats(dest_id, src_books) - self.merge_metadata(dest_id, src_ids) - else: - if not confirm('

'+_( - 'All book formats and metadata from the selected books will be merged ' - 'into the first selected book.

' - 'After merger the second and ' - 'subsequently selected books will be deleted.

' - 'All book formats of the first selected book will be kept ' - 'and any duplicate formats in the second and subsequently selected books ' - 'will be permanently deleted from your computer.

' - 'Are you sure you want to proceed?') - +'

', 'merge_books', self): - return - if len(rows)>5: - if not confirm('

'+_('You are about to merge more than 5 books. ' - 'Are you sure you want to proceed?') - +'

', 'merge_too_many_books', self): - return - self.add_formats(dest_id, src_books) - self.merge_metadata(dest_id, src_ids) - self.delete_books_after_merge(src_ids) - # leave the selection highlight on first selected book - dest_row = rows[0].row() - for row in rows: - if row.row() < rows[0].row(): - dest_row -= 1 - ci = self.library_view.model().index(dest_row, 0) - if ci.isValid(): - self.library_view.setCurrentIndex(ci) - - def add_formats(self, dest_id, src_books, replace=False): - for src_book in src_books: - if src_book: - fmt = os.path.splitext(src_book)[-1].replace('.', '').upper() - with open(src_book, 'rb') as f: - self.library_view.model().db.add_format(dest_id, fmt, f, index_is_id=True, - notify=False, replace=replace) - - def books_to_merge(self, rows): - src_books = [] - src_ids = [] - m = self.library_view.model() - for i, row in enumerate(rows): - id_ = m.id(row) - if i == 0: - dest_id = id_ - else: - src_ids.append(id_) - dbfmts = m.db.formats(id_, index_is_id=True) - if dbfmts: - for fmt in dbfmts.split(','): - src_books.append(m.db.format_abspath(id_, fmt, - index_is_id=True)) - return [dest_id, src_books, src_ids] - - def delete_books_after_merge(self, ids_to_delete): - self.library_view.model().delete_books_by_id(ids_to_delete) - - def merge_metadata(self, dest_id, src_ids): - db = self.library_view.model().db - dest_mi = db.get_metadata(dest_id, index_is_id=True, get_cover=True) - orig_dest_comments = dest_mi.comments - for src_id in src_ids: - src_mi = db.get_metadata(src_id, index_is_id=True, get_cover=True) - if src_mi.comments and orig_dest_comments != src_mi.comments: - if not dest_mi.comments: - dest_mi.comments = src_mi.comments - else: - dest_mi.comments = unicode(dest_mi.comments) + u'\n\n' + unicode(src_mi.comments) - if src_mi.title and (not dest_mi.title or - dest_mi.title == _('Unknown')): - dest_mi.title = src_mi.title - if src_mi.title and (not dest_mi.authors or dest_mi.authors[0] == - _('Unknown')): - dest_mi.authors = src_mi.authors - dest_mi.author_sort = src_mi.author_sort - if src_mi.tags: - if not dest_mi.tags: - dest_mi.tags = src_mi.tags - else: - dest_mi.tags.extend(src_mi.tags) - if src_mi.cover and not dest_mi.cover: - dest_mi.cover = src_mi.cover - if not dest_mi.publisher: - dest_mi.publisher = src_mi.publisher - if not dest_mi.rating: - dest_mi.rating = src_mi.rating - if not dest_mi.series: - dest_mi.series = src_mi.series - dest_mi.series_index = src_mi.series_index - db.set_metadata(dest_id, dest_mi, ignore_errors=False) - - for key in db.field_metadata: #loop thru all defined fields - if db.field_metadata[key]['is_custom']: - colnum = db.field_metadata[key]['colnum'] - # Get orig_dest_comments before it gets changed - if db.field_metadata[key]['datatype'] == 'comments': - orig_dest_value = db.get_custom(dest_id, num=colnum, index_is_id=True) - for src_id in src_ids: - dest_value = db.get_custom(dest_id, num=colnum, index_is_id=True) - src_value = db.get_custom(src_id, num=colnum, index_is_id=True) - if db.field_metadata[key]['datatype'] == 'comments': - if src_value and src_value != orig_dest_value: - if not dest_value: - db.set_custom(dest_id, src_value, num=colnum) - else: - dest_value = unicode(dest_value) + u'\n\n' + unicode(src_value) - db.set_custom(dest_id, dest_value, num=colnum) - if db.field_metadata[key]['datatype'] in \ - ('bool', 'int', 'float', 'rating', 'datetime') \ - and not dest_value: - db.set_custom(dest_id, src_value, num=colnum) - if db.field_metadata[key]['datatype'] == 'series' \ - and not dest_value: - if src_value: - src_index = db.get_custom_extra(src_id, num=colnum, index_is_id=True) - db.set_custom(dest_id, src_value, num=colnum, extra=src_index) - if db.field_metadata[key]['datatype'] == 'text' \ - and not db.field_metadata[key]['is_multiple'] \ - and not dest_value: - db.set_custom(dest_id, src_value, num=colnum) - if db.field_metadata[key]['datatype'] == 'text' \ - and db.field_metadata[key]['is_multiple']: - if src_value: - if not dest_value: - dest_value = src_value - else: - dest_value.extend(src_value) - db.set_custom(dest_id, dest_value, num=colnum) - # }}} - - def edit_device_collections(self, view, oncard=None): - model = view.model() - result = model.get_collections_with_ids() - compare = (lambda x,y:cmp(x.lower(), y.lower())) - d = TagListEditor(self, tag_to_match=None, data=result, compare=compare) - d.exec_() - if d.result() == d.Accepted: - to_rename = d.to_rename # dict of new text to old ids - to_delete = d.to_delete # list of ids - for text in to_rename: - for old_id in to_rename[text]: - model.rename_collection(old_id, new_name=unicode(text)) - for item in to_delete: - model.delete_collection_using_id(item) - self.upload_collections(model.db, view=view, oncard=oncard) - view.reset() - - # }}} - -class SaveToDiskAction(object): # {{{ - - def save_single_format_to_disk(self, checked): - self.save_to_disk(checked, False, prefs['output_format']) - - def save_specific_format_disk(self, fmt): - self.save_to_disk(False, False, fmt) - - def save_to_single_dir(self, checked): - self.save_to_disk(checked, True) - - def save_single_fmt_to_single_dir(self, *args): - self.save_to_disk(False, single_dir=True, - single_format=prefs['output_format']) - - def save_to_disk(self, checked, single_dir=False, single_format=None): - rows = self.current_view().selectionModel().selectedRows() - if not rows or len(rows) == 0: - return error_dialog(self, _('Cannot save to disk'), - _('No books selected'), show=True) - path = choose_dir(self, 'save to disk dialog', - _('Choose destination directory')) - if not path: - return - - if self.current_view() is self.library_view: - from calibre.gui2.add import Saver - from calibre.library.save_to_disk import config - opts = config().parse() - if single_format is not None: - opts.formats = single_format - # Special case for Kindle annotation files - if single_format.lower() in ['mbp','pdr','tan']: - opts.to_lowercase = False - opts.save_cover = False - opts.write_opf = False - opts.template = opts.send_template - if single_dir: - opts.template = opts.template.split('/')[-1].strip() - if not opts.template: - opts.template = '{title} - {authors}' - self._saver = Saver(self, self.library_view.model().db, - Dispatcher(self._books_saved), rows, path, opts, - spare_server=self.spare_server) - - else: - paths = self.current_view().model().paths(rows) - self.device_manager.save_books( - Dispatcher(self.books_saved), paths, path) - - - def _books_saved(self, path, failures, error): - self._saver = None - if error: - return error_dialog(self, _('Error while saving'), - _('There was an error while saving.'), - error, show=True) - if failures: - failures = [u'%s\n\t%s'% - (title, '\n\t'.join(err.splitlines())) for title, err in - failures] - - warning_dialog(self, _('Could not save some books'), - _('Could not save some books') + ', ' + - _('Click the show details button to see which ones.'), - u'\n\n'.join(failures), show=True) - open_local_file(path) - - def books_saved(self, job): - if job.failed: - return self.device_job_exception(job) - - # }}} - -class GenerateCatalogAction(object): # {{{ - - def generate_catalog(self): - rows = self.library_view.selectionModel().selectedRows() - if not rows or len(rows) < 2: - rows = xrange(self.library_view.model().rowCount(QModelIndex())) - ids = map(self.library_view.model().id, rows) - - dbspec = None - if not ids: - return error_dialog(self, _('No books selected'), - _('No books selected to generate catalog for'), - show=True) - - # Calling gui2.tools:generate_catalog() - ret = generate_catalog(self, dbspec, ids, self.device_manager.device) - if ret is None: - return - - func, args, desc, out, sync, title = ret - - fmt = os.path.splitext(out)[1][1:].upper() - job = self.job_manager.run_job( - Dispatcher(self.catalog_generated), func, args=args, - description=desc) - job.catalog_file_path = out - job.fmt = fmt - job.catalog_sync, job.catalog_title = sync, title - self.status_bar.show_message(_('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) - self.library_view.model().reset() - if job.catalog_sync: - sync = dynamic.get('catalogs_to_be_synced', set([])) - sync.add(id) - dynamic.set('catalogs_to_be_synced', sync) - self.status_bar.show_message(_('Catalog generated.'), 3000) - self.sync_catalogs() - if job.fmt not in ['EPUB','MOBI']: - export_dir = choose_dir(self, _('Export Catalog Directory'), - _('Select destination for %s.%s') % (job.catalog_title, job.fmt.lower())) - if export_dir: - destination = os.path.join(export_dir, '%s.%s' % (job.catalog_title, job.fmt.lower())) - shutil.copyfile(job.catalog_file_path, destination) - - # }}} - -class FetchNewsAction(object): # {{{ - - def download_scheduled_recipe(self, arg): - func, args, desc, fmt, temp_files = \ - fetch_scheduled_recipe(arg) - job = self.job_manager.run_job( - Dispatcher(self.scheduled_recipe_fetched), func, args=args, - description=desc) - self.conversion_jobs[job] = (temp_files, fmt, arg) - self.status_bar.show_message(_('Fetching news from ')+arg['title'], 2000) - - def scheduled_recipe_fetched(self, job): - temp_files, fmt, arg = self.conversion_jobs.pop(job) - pt = temp_files[0] - if job.failed: - self.scheduler.recipe_download_failed(arg) - return self.job_exception(job) - id = self.library_view.model().add_news(pt.name, arg) - self.library_view.model().reset() - sync = dynamic.get('news_to_be_synced', set([])) - sync.add(id) - dynamic.set('news_to_be_synced', sync) - self.scheduler.recipe_downloaded(arg) - self.status_bar.show_message(arg['title'] + _(' fetched.'), 3000) - self.email_news(id) - self.sync_news() - - # }}} - -class ConvertAction(object): # {{{ - - def auto_convert(self, book_ids, on_card, format): - previous = self.library_view.currentIndex() - rows = [x.row() for x in \ - self.library_view.selectionModel().selectedRows()] - jobs, changed, bad = convert_single_ebook(self, self.library_view.model().db, book_ids, True, format) - if jobs == []: return - self.queue_convert_jobs(jobs, changed, bad, rows, previous, - self.book_auto_converted, extra_job_args=[on_card]) - - def auto_convert_mail(self, to, fmts, delete_from_library, book_ids, format): - previous = self.library_view.currentIndex() - rows = [x.row() for x in \ - self.library_view.selectionModel().selectedRows()] - jobs, changed, bad = convert_single_ebook(self, self.library_view.model().db, book_ids, True, format) - if jobs == []: return - self.queue_convert_jobs(jobs, changed, bad, rows, previous, - self.book_auto_converted_mail, - extra_job_args=[delete_from_library, to, fmts]) - - def auto_convert_news(self, book_ids, format): - previous = self.library_view.currentIndex() - rows = [x.row() for x in \ - self.library_view.selectionModel().selectedRows()] - jobs, changed, bad = convert_single_ebook(self, self.library_view.model().db, book_ids, True, format) - if jobs == []: return - self.queue_convert_jobs(jobs, changed, bad, rows, previous, - self.book_auto_converted_news) - - def auto_convert_catalogs(self, book_ids, format): - previous = self.library_view.currentIndex() - rows = [x.row() for x in \ - self.library_view.selectionModel().selectedRows()] - jobs, changed, bad = convert_single_ebook(self, self.library_view.model().db, book_ids, True, format) - if jobs == []: return - self.queue_convert_jobs(jobs, changed, bad, rows, previous, - self.book_auto_converted_catalogs) - - def get_books_for_conversion(self): - rows = [r.row() for r in \ - self.library_view.selectionModel().selectedRows()] - if not rows or len(rows) == 0: - d = error_dialog(self, _('Cannot convert'), - _('No books selected')) - d.exec_() - return None - return [self.library_view.model().db.id(r) for r in rows] - - def convert_ebook(self, checked, bulk=None): - book_ids = self.get_books_for_conversion() - if book_ids is None: return - previous = self.library_view.currentIndex() - rows = [x.row() for x in \ - self.library_view.selectionModel().selectedRows()] - num = 0 - if bulk or (bulk is None and len(book_ids) > 1): - self.__bulk_queue = convert_bulk_ebook(self, self.queue_convert_jobs, - self.library_view.model().db, book_ids, - out_format=prefs['output_format'], args=(rows, previous, - self.book_converted)) - if self.__bulk_queue is None: - return - num = len(self.__bulk_queue.book_ids) - else: - jobs, changed, bad = convert_single_ebook(self, - self.library_view.model().db, book_ids, out_format=prefs['output_format']) - self.queue_convert_jobs(jobs, changed, bad, rows, previous, - self.book_converted) - num = len(jobs) - - if num > 0: - self.status_bar.show_message(_('Starting conversion of %d book(s)') % - num, 2000) - - def queue_convert_jobs(self, jobs, changed, bad, rows, previous, - converted_func, extra_job_args=[]): - for func, args, desc, fmt, id, temp_files in jobs: - if id not in bad: - job = self.job_manager.run_job(Dispatcher(converted_func), - func, args=args, description=desc) - args = [temp_files, fmt, id]+extra_job_args - self.conversion_jobs[job] = tuple(args) - - if changed: - self.library_view.model().refresh_rows(rows) - current = self.library_view.currentIndex() - self.library_view.model().current_changed(current, previous) - - def book_auto_converted(self, job): - temp_files, fmt, book_id, on_card = self.conversion_jobs[job] - self.book_converted(job) - self.sync_to_device(on_card, False, specific_format=fmt, send_ids=[book_id], do_auto_convert=False) - - def book_auto_converted_mail(self, job): - temp_files, fmt, book_id, delete_from_library, to, fmts = self.conversion_jobs[job] - self.book_converted(job) - self.send_by_mail(to, fmts, delete_from_library, specific_format=fmt, send_ids=[book_id], do_auto_convert=False) - - def book_auto_converted_news(self, job): - temp_files, fmt, book_id = self.conversion_jobs[job] - self.book_converted(job) - self.sync_news(send_ids=[book_id], do_auto_convert=False) - - def book_auto_converted_catalogs(self, job): - temp_files, fmt, book_id = self.conversion_jobs[job] - self.book_converted(job) - self.sync_catalogs(send_ids=[book_id], do_auto_convert=False) - - def book_converted(self, job): - temp_files, fmt, book_id = self.conversion_jobs.pop(job)[:3] - try: - if job.failed: - self.job_exception(job) - return - data = open(temp_files[-1].name, 'rb') - self.library_view.model().db.add_format(book_id, \ - fmt, data, index_is_id=True) - data.close() - self.status_bar.show_message(job.description + \ - (' completed'), 2000) - finally: - for f in temp_files: - try: - if os.path.exists(f.name): - os.remove(f.name) - except: - pass - self.tags_view.recount() - if self.current_view() is self.library_view: - current = self.library_view.currentIndex() - self.library_view.model().current_changed(current, QModelIndex()) - - # }}} - -class ViewAction(object): # {{{ - - def view_format(self, row, format): - fmt_path = self.library_view.model().db.format_abspath(row, format) - if fmt_path: - self._view_file(fmt_path) - - def view_format_by_id(self, id_, format): - fmt_path = self.library_view.model().db.format_abspath(id_, format, - index_is_id=True) - if fmt_path: - self._view_file(fmt_path) - - def metadata_view_format(self, fmt): - fmt_path = self.library_view.model().db.\ - format_abspath(self._metadata_view_id, - fmt, index_is_id=True) - if fmt_path: - self._view_file(fmt_path) - - - def book_downloaded_for_viewing(self, job): - if job.failed: - self.device_job_exception(job) - return - self._view_file(job.result) - - def _launch_viewer(self, name=None, viewer='ebook-viewer', internal=True): - self.setCursor(Qt.BusyCursor) - try: - if internal: - args = [viewer] - if isosx and 'ebook' in viewer: - args.append('--raise-window') - if name is not None: - args.append(name) - self.job_manager.launch_gui_app(viewer, - kwargs=dict(args=args)) - else: - open_local_file(name) - time.sleep(2) # User feedback - finally: - self.unsetCursor() - - def _view_file(self, name): - ext = os.path.splitext(name)[1].upper().replace('.', '') - viewer = 'lrfviewer' if ext == 'LRF' else 'ebook-viewer' - internal = ext in config['internally_viewed_formats'] - self._launch_viewer(name, viewer, internal) - - def view_specific_format(self, triggered): - rows = self.library_view.selectionModel().selectedRows() - if not rows or len(rows) == 0: - d = error_dialog(self, _('Cannot view'), _('No book selected')) - d.exec_() - return - - row = rows[0].row() - formats = self.library_view.model().db.formats(row).upper().split(',') - d = ChooseFormatDialog(self, _('Choose the format to view'), formats) - if d.exec_() == QDialog.Accepted: - format = d.format() - self.view_format(row, format) - - def _view_check(self, num, max_=3): - if num <= max_: - return True - return question_dialog(self, _('Multiple Books Selected'), - _('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?' - ) % num) - - def view_folder(self, *args): - rows = self.current_view().selectionModel().selectedRows() - if not rows or len(rows) == 0: - d = error_dialog(self, _('Cannot open folder'), - _('No book selected')) - d.exec_() - return - if not self._view_check(len(rows)): - return - for row in rows: - path = self.library_view.model().db.abspath(row.row()) - open_local_file(path) - - def view_folder_for_id(self, id_): - path = self.library_view.model().db.abspath(id_, index_is_id=True) - open_local_file(path) - - def view_book(self, triggered): - rows = self.current_view().selectionModel().selectedRows() - self._view_books(rows) - - def view_specific_book(self, index): - self._view_books([index]) - - def _view_books(self, rows): - if not rows or len(rows) == 0: - self._launch_viewer() - return - - if not self._view_check(len(rows)): - return - - if self.current_view() is self.library_view: - for row in rows: - if hasattr(row, 'row'): - row = row.row() - - formats = self.library_view.model().db.formats(row) - title = self.library_view.model().db.title(row) - if not formats: - error_dialog(self, _('Cannot view'), - _('%s has no available formats.')%(title,), show=True) - continue - - formats = formats.upper().split(',') - - - in_prefs = False - for format in prefs['input_format_order']: - if format in formats: - in_prefs = True - self.view_format(row, format) - break - if not in_prefs: - self.view_format(row, formats[0]) - else: - paths = self.current_view().model().paths(rows) - for path in paths: - pt = PersistentTemporaryFile('_viewer_'+\ - os.path.splitext(path)[1]) - self.persistent_files.append(pt) - pt.close() - self.device_manager.view_book(\ - Dispatcher(self.book_downloaded_for_viewing), - path, pt.name) - - # }}} - diff --git a/src/calibre/gui2/actions/__init__.py b/src/calibre/gui2/actions/__init__.py new file mode 100644 index 0000000000..9c20f2adef --- /dev/null +++ b/src/calibre/gui2/actions/__init__.py @@ -0,0 +1,136 @@ +#!/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' + +from functools import partial + +from PyQt4.Qt import QToolButton, QAction, QIcon, QObject + +from calibre.gui2 import Dispatcher + +class InterfaceAction(QObject): + + ''' + A plugin representing an "action" that can be taken in the graphical user + interface. All the items in the toolbar and context menus are implemented + by these plugins. + + Note that this class is the base class for these plugins, however, to + integrate the plugin with calibre's plugin system, you have to make a + wrapper class that references the actual plugin. See the + :mod:`calibre.customize.builtins` module for examples. + + If two :class:`InterfaceAction` objects have the same name, the one with higher + priority takes precedence. + + Sub-classes should implement the :meth:`genesis`, :meth:`library_moved`, + :meth:`location_selected` :meth:`shutting_down` + and :meth:`initialization_complete` methods. + + Once initialized, this plugin has access to the main calibre GUI via the + :attr:`gui` member. You can access other plugins by name, for example:: + + self.gui.iactions['Save To Disk'] + + The QAction specified by :attr:`action_spec` is automatically create and + made available as ``self.qaction``. + + ''' + + #: The plugin name. If two plugins with the same name are present, the one + #: with higher priority takes precedence. + name = 'Implement me' + + #: The plugin priority. If two plugins with the same name are present, the one + #: with higher priority takes precedence. + priority = 1 + + #: The menu popup type for when this plugin is added to a toolbar + popup_type = QToolButton.MenuButtonPopup + + #: Whether this action should be auto repeated when its shortcut + #: key is held down. + auto_repeat = False + + #: Of the form: (text, icon_path, tooltip, keyboard shortcut) + #: icon, tooltip and keyboard shortcut can be None + #: shortcut must be a translated string if not None + action_spec = ('text', 'icon', None, None) + + def __init__(self, parent, site_customization): + QObject.__init__(self, parent) + self.setObjectName(self.name) + self.gui = parent + self.site_customization = site_customization + + def do_genesis(self): + self.Dispatcher = partial(Dispatcher, parent=self) + self.create_action() + self.gui.addAction(self.qaction) + self.genesis() + + def create_action(self, spec=None, attr='qaction'): + if spec is None: + spec = self.action_spec + text, icon, tooltip, shortcut = spec + if icon is not None: + action = QAction(QIcon(I(icon)), text, self.gui) + else: + action = QAction(text, self.gui) + action.setAutoRepeat(self.auto_repeat) + text = tooltip if tooltip else text + action.setToolTip(text) + action.setStatusTip(text) + action.setWhatsThis(text) + action.setAutoRepeat(False) + if shortcut: + action.setShortcut(shortcut) + setattr(self, attr, action) + return action + + def genesis(self): + ''' + Setup this plugin. Only called once during initialization. self.gui is + available. The action secified by :attr:`action_spec` is available as + ``self.qaction``. + ''' + pass + + def location_selected(self, loc): + ''' + Called whenever the book list being displayed in calibre changes. + Currently values for loc are: ``library, main, card and cardb``. + + This method should enable/disable this action and its sub actions as + appropriate for the location. + ''' + pass + + def library_changed(self, db): + ''' + Called whenever the current library is changed. + + :param db: The LibraryDatabase corresponding to the current library. + ''' + pass + + def initialization_complete(self): + ''' + Called once per action when the initialization of the main GUI is + completed. + ''' + pass + + def shutting_down(self): + ''' + Called once per plugin when the main GUI is in the process of shutting + down. Release any used resources, but try not to block the shutdown for + long periods of time. + + :return: False to halt the shutdown. You are responsible for telling + the user why the shutdown was halted. + ''' + return True diff --git a/src/calibre/gui2/actions/add.py b/src/calibre/gui2/actions/add.py new file mode 100644 index 0000000000..deb03021c5 --- /dev/null +++ b/src/calibre/gui2/actions/add.py @@ -0,0 +1,266 @@ +#!/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' + +import os +from functools import partial + +from PyQt4.Qt import QInputDialog, QPixmap, QMenu + + +from calibre.gui2 import error_dialog, choose_files, \ + choose_dir, warning_dialog, info_dialog +from calibre.gui2.widgets import IMAGE_EXTENSIONS +from calibre.ebooks import BOOK_EXTENSIONS +from calibre.utils.filenames import ascii_filename +from calibre.constants import preferred_encoding, filesystem_encoding +from calibre.gui2.actions import InterfaceAction + +class AddAction(InterfaceAction): + + name = 'Add Books' + action_spec = (_('Add books'), 'add_book.svg', None, _('A')) + + def genesis(self): + self._add_filesystem_book = self.Dispatcher(self.__add_filesystem_book) + self.add_menu = QMenu() + self.add_menu.addAction(_('Add books from a single directory'), + self.add_books) + self.add_menu.addAction(_('Add books from directories, including ' + 'sub-directories (One book per directory, assumes every ebook ' + 'file is the same book in a different format)'), + self.add_recursive_single) + self.add_menu.addAction(_('Add books from directories, including ' + 'sub directories (Multiple books per directory, assumes every ' + 'ebook file is a different book)'), self.add_recursive_multiple) + self.add_menu.addSeparator() + self.add_menu.addAction(_('Add Empty book. (Book entry with no ' + 'formats)'), self.add_empty) + self.add_menu.addAction(_('Add from ISBN'), self.add_from_isbn) + self.qaction.setMenu(self.add_menu) + self.qaction.triggered.connect(self.add_books) + + def location_selected(self, loc): + enabled = loc == 'library' + for action in list(self.add_menu.actions())[1:]: + action.setEnabled(enabled) + + def add_recursive(self, single): + root = choose_dir(self.gui, 'recursive book import root dir dialog', + 'Select root folder') + if not root: + return + from calibre.gui2.add import Adder + self._adder = Adder(self.gui, + self.gui.library_view.model().db, + self.Dispatcher(self._files_added), spare_server=self.gui.spare_server) + self._adder.add_recursive(root, single) + + def add_recursive_single(self, *args): + ''' + Add books from the local filesystem to either the library or the device + recursively assuming one book per folder. + ''' + self.add_recursive(True) + + def add_recursive_multiple(self, *args): + ''' + Add books from the local filesystem to either the library or the device + recursively assuming multiple books per folder. + ''' + self.add_recursive(False) + + def add_empty(self, *args): + ''' + Add an empty book item to the library. This does not import any formats + from a book file. + ''' + num, ok = QInputDialog.getInt(self.gui, _('How many empty books?'), + _('How many empty books should be added?'), 1, 1, 100) + if ok: + from calibre.ebooks.metadata import MetaInformation + for x in xrange(num): + self.gui.library_view.model().db.import_book(MetaInformation(None), []) + self.gui.library_view.model().books_added(num) + + def add_isbns(self, isbns): + from calibre.ebooks.metadata import MetaInformation + ids = set([]) + for x in isbns: + mi = MetaInformation(None) + mi.isbn = x + ids.add(self.gui.library_view.model().db.import_book(mi, [])) + self.gui.library_view.model().books_added(len(isbns)) + self.gui.iactions['Edit Metadata'].do_download_metadata(ids) + + + def files_dropped(self, paths): + to_device = self.gui.stack.currentIndex() != 0 + self._add_books(paths, to_device) + + def files_dropped_on_book(self, event, paths): + accept = False + if self.gui.current_view() is not self.gui.library_view: + return + db = self.gui.library_view.model().db + current_idx = self.gui.library_view.currentIndex() + if not current_idx.isValid(): return + cid = db.id(current_idx.row()) + for path in paths: + ext = os.path.splitext(path)[1].lower() + if ext: + ext = ext[1:] + if ext in IMAGE_EXTENSIONS: + pmap = QPixmap() + pmap.load(path) + if not pmap.isNull(): + accept = True + db.set_cover(cid, pmap) + elif ext in BOOK_EXTENSIONS: + db.add_format_with_hooks(cid, ext, path, index_is_id=True) + accept = True + if accept: + event.accept() + self.gui.library_view.model().current_changed(current_idx, current_idx) + + def __add_filesystem_book(self, paths, allow_device=True): + if isinstance(paths, basestring): + paths = [paths] + books = [path for path in map(os.path.abspath, paths) if os.access(path, + os.R_OK)] + + if books: + to_device = allow_device and self.gui.stack.currentIndex() != 0 + self._add_books(books, to_device) + if to_device: + self.gui.status_bar.show_message(\ + _('Uploading books to device.'), 2000) + + + def add_filesystem_book(self, paths, allow_device=True): + self._add_filesystem_book(paths, allow_device=allow_device) + + def add_from_isbn(self, *args): + from calibre.gui2.dialogs.add_from_isbn import AddFromISBN + d = AddFromISBN(self.gui) + if d.exec_() == d.Accepted: + self.add_isbns(d.isbns) + + def add_books(self, *args): + ''' + Add books from the local filesystem to either the library or the device. + ''' + filters = [ + (_('Books'), BOOK_EXTENSIONS), + (_('EPUB Books'), ['epub']), + (_('LRF Books'), ['lrf']), + (_('HTML Books'), ['htm', 'html', 'xhtm', 'xhtml']), + (_('LIT Books'), ['lit']), + (_('MOBI Books'), ['mobi', 'prc', 'azw']), + (_('Topaz books'), ['tpz','azw1']), + (_('Text books'), ['txt', 'rtf']), + (_('PDF Books'), ['pdf']), + (_('Comics'), ['cbz', 'cbr', 'cbc']), + (_('Archives'), ['zip', 'rar']), + ] + to_device = self.gui.stack.currentIndex() != 0 + if to_device: + filters = [(_('Supported books'), self.gui.device_manager.device.FORMATS)] + + books = choose_files(self.gui, 'add books dialog dir', 'Select books', + filters=filters) + if not books: + return + self._add_books(books, to_device) + + def _add_books(self, paths, to_device, on_card=None): + if on_card is None: + on_card = 'carda' if self.gui.stack.currentIndex() == 2 else \ + 'cardb' if self.gui.stack.currentIndex() == 3 else None + if not paths: + return + from calibre.gui2.add import Adder + self.__adder_func = partial(self._files_added, on_card=on_card) + self._adder = Adder(self.gui, + None if to_device else self.gui.library_view.model().db, + self.Dispatcher(self.__adder_func), spare_server=self.gui.spare_server) + self._adder.add(paths) + + def _files_added(self, paths=[], names=[], infos=[], on_card=None): + if paths: + self.gui.upload_books(paths, + list(map(ascii_filename, names)), + infos, on_card=on_card) + self.gui.status_bar.show_message( + _('Uploading books to device.'), 2000) + if getattr(self._adder, 'number_of_books_added', 0) > 0: + self.gui.library_view.model().books_added(self._adder.number_of_books_added) + if hasattr(self.gui, 'db_images'): + self.gui.db_images.reset() + if getattr(self._adder, 'merged_books', False): + books = u'\n'.join([x if isinstance(x, unicode) else + x.decode(preferred_encoding, 'replace') for x in + self._adder.merged_books]) + info_dialog(self.gui, _('Merged some books'), + _('Some duplicates were found and merged into the ' + 'following existing books:'), det_msg=books, show=True) + if getattr(self._adder, 'critical', None): + det_msg = [] + for name, log in self._adder.critical.items(): + if isinstance(name, str): + name = name.decode(filesystem_encoding, 'replace') + det_msg.append(name+'\n'+log) + + warning_dialog(self.gui, _('Failed to read metadata'), + _('Failed to read metadata from the following')+':', + det_msg='\n\n'.join(det_msg), show=True) + + if hasattr(self._adder, 'cleanup'): + self._adder.cleanup() + self._adder = None + + def _add_from_device_adder(self, paths=[], names=[], infos=[], + on_card=None, model=None): + self._files_added(paths, names, infos, on_card=on_card) + # set the in-library flags, and as a consequence send the library's + # metadata for this book to the device. This sets the uuid to the + # correct value. + self.gui.set_books_in_library(booklists=[model.db], reset=True) + model.reset() + + def add_books_from_device(self, view): + rows = view.selectionModel().selectedRows() + if not rows or len(rows) == 0: + d = error_dialog(self.gui, _('Add to library'), _('No book selected')) + d.exec_() + return + paths = [p for p in view._model.paths(rows) if p is not None] + ve = self.gui.device_manager.device.VIRTUAL_BOOK_EXTENSIONS + def ext(x): + ans = os.path.splitext(x)[1] + ans = ans[1:] if len(ans) > 1 else ans + return ans.lower() + remove = set([p for p in paths if ext(p) in ve]) + if remove: + paths = [p for p in paths if p not in remove] + info_dialog(self.gui, _('Not Implemented'), + _('The following books are virtual and cannot be added' + ' to the calibre library:'), '\n'.join(remove), + show=True) + if not paths: + return + if not paths or len(paths) == 0: + d = error_dialog(self.gui, _('Add to library'), _('No book files found')) + d.exec_() + return + from calibre.gui2.add import Adder + self.__adder_func = partial(self._add_from_device_adder, on_card=None, + model=view._model) + self._adder = Adder(self.gui, self.gui.library_view.model().db, + self.Dispatcher(self.__adder_func), spare_server=self.gui.spare_server) + self._adder.add(paths) + + diff --git a/src/calibre/gui2/actions/add_to_library.py b/src/calibre/gui2/actions/add_to_library.py new file mode 100644 index 0000000000..b2d1091dbb --- /dev/null +++ b/src/calibre/gui2/actions/add_to_library.py @@ -0,0 +1,22 @@ +#!/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' + +from calibre.gui2.actions import InterfaceAction + +class AddToLibraryAction(InterfaceAction): + + name = 'Add To Library' + action_spec = (_('Add books to library'), 'add_book.svg', None, None) + + def location_selected(self, loc): + enabled = loc != 'library' + self.qaction.setEnabled(enabled) + self.qaction.triggered.connect(self.add_books_to_library) + + def add_books_to_library(self, *args): + self.gui.iactions['Add Books'].add_books_from_device( + self.gui.current_view()) diff --git a/src/calibre/gui2/actions/annotate.py b/src/calibre/gui2/actions/annotate.py new file mode 100644 index 0000000000..5356d63e98 --- /dev/null +++ b/src/calibre/gui2/actions/annotate.py @@ -0,0 +1,244 @@ +#!/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' + +import os, datetime + +from PyQt4.Qt import pyqtSignal, QModelIndex, QThread, Qt + +from calibre.gui2 import error_dialog, gprefs +from calibre.ebooks.BeautifulSoup import BeautifulSoup, Tag, NavigableString +from calibre import strftime +from calibre.gui2.actions import InterfaceAction + +class FetchAnnotationsAction(InterfaceAction): + + name = 'Fetch Annotations' + action_spec = (_('Fetch annotations (experimental)'), None, None, None) + + def genesis(self): + pass + + def fetch_annotations(self, *args): + # Generate a path_map from selected ids + def get_ids_from_selected_rows(): + rows = self.gui.library_view.selectionModel().selectedRows() + if not rows or len(rows) < 2: + rows = xrange(self.gui.library_view.model().rowCount(QModelIndex())) + ids = map(self.gui.library_view.model().id, rows) + return ids + + def get_formats(id): + formats = db.formats(id, index_is_id=True) + fmts = [] + if formats: + for format in formats.split(','): + fmts.append(format.lower()) + return fmts + + def generate_annotation_paths(ids, db, device): + # Generate path templates + # Individual storage mount points scanned/resolved in driver.get_annotations() + path_map = {} + for id in ids: + mi = db.get_metadata(id, index_is_id=True) + a_path = device.create_upload_path(os.path.abspath('/'), mi, 'x.bookmark', create_dirs=False) + path_map[id] = dict(path=a_path, fmts=get_formats(id)) + return path_map + + device = self.gui.device_manager.device + + if self.gui.current_view() is not self.gui.library_view: + return error_dialog(self.gui, _('Use library only'), + _('User annotations generated from main library only'), + show=True) + db = self.gui.library_view.model().db + + # Get the list of ids + ids = get_ids_from_selected_rows() + if not ids: + return error_dialog(self.gui, _('No books selected'), + _('No books selected to fetch annotations from'), + show=True) + + # Map ids to paths + path_map = generate_annotation_paths(ids, db, device) + + # Dispatch to devices.kindle.driver.get_annotations() + self.gui.device_manager.annotations(self.Dispatcher(self.annotations_fetched), + path_map) + + def annotations_fetched(self, job): + from calibre.devices.usbms.device import Device + from calibre.ebooks.metadata import MetaInformation + from calibre.gui2.dialogs.progress import ProgressDialog + from calibre.library.cli import do_add_format + + class Updater(QThread): # {{{ + + update_progress = pyqtSignal(int) + update_done = pyqtSignal() + FINISHED_READING_PCT_THRESHOLD = 96 + + def __init__(self, parent, db, annotation_map, done_callback): + QThread.__init__(self, parent) + self.db = db + self.pd = ProgressDialog(_('Merging user annotations into database'), '', + 0, len(job.result), parent=parent) + + self.am = annotation_map + self.done_callback = done_callback + self.pd.canceled_signal.connect(self.canceled) + self.pd.setModal(True) + self.pd.show() + self.update_progress.connect(self.pd.set_value, + type=Qt.QueuedConnection) + self.update_done.connect(self.pd.hide, type=Qt.QueuedConnection) + + def generate_annotation_html(self, bookmark): + # Returns
...
+ last_read_location = bookmark.last_read_location + timestamp = datetime.datetime.utcfromtimestamp(bookmark.timestamp) + percent_read = bookmark.percent_read + + ka_soup = BeautifulSoup() + dtc = 0 + divTag = Tag(ka_soup,'div') + divTag['class'] = 'user_annotations' + + # Add the last-read location + spanTag = Tag(ka_soup, 'span') + spanTag['style'] = 'font-weight:bold' + if bookmark.book_format == 'pdf': + spanTag.insert(0,NavigableString( + _("%s
Last Page Read: %d (%d%%)") % \ + (strftime(u'%x', timestamp.timetuple()), + last_read_location, + percent_read))) + else: + spanTag.insert(0,NavigableString( + _("%s
Last Page Read: Location %d (%d%%)") % \ + (strftime(u'%x', timestamp.timetuple()), + last_read_location, + percent_read))) + + divTag.insert(dtc, spanTag) + dtc += 1 + divTag.insert(dtc, Tag(ka_soup,'br')) + dtc += 1 + + if bookmark.user_notes: + user_notes = bookmark.user_notes + annotations = [] + + # Add the annotations sorted by location + # Italicize highlighted text + for location in sorted(user_notes): + if user_notes[location]['text']: + annotations.append( + _('Location %d • %s
%s
') % \ + (user_notes[location]['displayed_location'], + user_notes[location]['type'], + user_notes[location]['text'] if \ + user_notes[location]['type'] == 'Note' else \ + '%s' % user_notes[location]['text'])) + else: + if bookmark.book_format == 'pdf': + annotations.append( + _('Page %d • %s
') % \ + (user_notes[location]['displayed_location'], + user_notes[location]['type'])) + else: + annotations.append( + _('Location %d • %s
') % \ + (user_notes[location]['displayed_location'], + user_notes[location]['type'])) + + for annotation in annotations: + divTag.insert(dtc, annotation) + dtc += 1 + + ka_soup.insert(0,divTag) + return ka_soup + + def mark_book_as_read(self,id): + read_tag = gprefs.get('catalog_epub_mobi_read_tag') + if read_tag: + self.db.set_tags(id, [read_tag], append=True) + + def canceled(self): + self.pd.hide() + + def run(self): + ignore_tags = set(['Catalog','Clippings']) + for (i, id) in enumerate(self.am): + bm = Device.UserAnnotation(self.am[id][0],self.am[id][1]) + if bm.type == 'kindle_bookmark': + mi = self.db.get_metadata(id, index_is_id=True) + user_notes_soup = self.generate_annotation_html(bm.value) + if mi.comments: + a_offset = mi.comments.find('
') + ad_offset = mi.comments.find('
') + + if a_offset >= 0: + mi.comments = mi.comments[:a_offset] + if ad_offset >= 0: + mi.comments = mi.comments[:ad_offset] + if set(mi.tags).intersection(ignore_tags): + continue + if mi.comments: + hrTag = Tag(user_notes_soup,'hr') + hrTag['class'] = 'annotations_divider' + user_notes_soup.insert(0,hrTag) + + mi.comments += user_notes_soup.prettify() + else: + mi.comments = unicode(user_notes_soup.prettify()) + # Update library comments + self.db.set_comment(id, mi.comments) + + # Update 'read' tag except for Catalogs/Clippings + if bm.value.percent_read >= self.FINISHED_READING_PCT_THRESHOLD: + if not set(mi.tags).intersection(ignore_tags): + self.mark_book_as_read(id) + + # Add bookmark file to id + self.db.add_format_with_hooks(id, bm.value.bookmark_extension, + bm.value.path, index_is_id=True) + self.update_progress.emit(i) + elif bm.type == 'kindle_clippings': + # Find 'My Clippings' author=Kindle in database, or add + last_update = 'Last modified %s' % strftime(u'%x %X',bm.value['timestamp'].timetuple()) + mc_id = list(db.data.parse('title:"My Clippings"')) + if mc_id: + do_add_format(self.db, mc_id[0], 'TXT', bm.value['path']) + mi = self.db.get_metadata(mc_id[0], index_is_id=True) + mi.comments = last_update + self.db.set_metadata(mc_id[0], mi) + else: + mi = MetaInformation('My Clippings', authors = ['Kindle']) + mi.tags = ['Clippings'] + mi.comments = last_update + self.db.add_books([bm.value['path']], ['txt'], [mi]) + + self.update_done.emit() + self.done_callback(self.am.keys()) + + # }}} + + if not job.result: return + + if self.gui.current_view() is not self.gui.library_view: + return error_dialog(self.gui, _('Use library only'), + _('User annotations generated from main library only'), + show=True) + db = self.gui.library_view.model().db + + self.__annotation_updater = Updater(self.gui, db, job.result, + self.Dispatcher(self.gui.library_view.model().refresh_ids)) + self.__annotation_updater.start() + + diff --git a/src/calibre/gui2/actions/catalog.py b/src/calibre/gui2/actions/catalog.py new file mode 100644 index 0000000000..6807d7717e --- /dev/null +++ b/src/calibre/gui2/actions/catalog.py @@ -0,0 +1,73 @@ +#!/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' + +import os, shutil + +from PyQt4.Qt import QModelIndex + +from calibre.gui2 import error_dialog, choose_dir +from calibre.gui2.tools import generate_catalog +from calibre.utils.config import dynamic +from calibre.gui2.actions import InterfaceAction + +class GenerateCatalogAction(InterfaceAction): + + name = 'Generate Catalog' + action_spec = (_('Create catalog of books in your calibre library'), None, None, None) + + def generate_catalog(self): + rows = self.gui.library_view.selectionModel().selectedRows() + if not rows or len(rows) < 2: + rows = xrange(self.gui.library_view.model().rowCount(QModelIndex())) + ids = map(self.gui.library_view.model().id, rows) + + dbspec = None + if not ids: + return error_dialog(self.gui, _('No books selected'), + _('No books selected to generate catalog for'), + show=True) + + # Calling gui2.tools:generate_catalog() + ret = generate_catalog(self.gui, dbspec, ids, self.gui.device_manager.device) + if ret is None: + return + + func, args, desc, out, sync, title = ret + + fmt = os.path.splitext(out)[1][1:].upper() + job = self.gui.job_manager.run_job( + self.Dispatcher(self.catalog_generated), func, args=args, + description=desc) + job.catalog_file_path = out + job.fmt = fmt + job.catalog_sync, job.catalog_title = sync, title + self.gui.status_bar.show_message(_('Generating %s catalog...')%fmt) + + def catalog_generated(self, job): + if job.result: + # Search terms nulled catalog results + return error_dialog(self.gui, _('No books found'), + _("No books to catalog\nCheck exclude tags"), + show=True) + if job.failed: + return self.gui.job_exception(job) + id = self.gui.library_view.model().add_catalog(job.catalog_file_path, job.catalog_title) + self.gui.library_view.model().reset() + if job.catalog_sync: + sync = dynamic.get('catalogs_to_be_synced', set([])) + sync.add(id) + dynamic.set('catalogs_to_be_synced', sync) + self.gui.status_bar.show_message(_('Catalog generated.'), 3000) + self.gui.sync_catalogs() + if job.fmt not in ['EPUB','MOBI']: + export_dir = choose_dir(self.gui, _('Export Catalog Directory'), + _('Select destination for %s.%s') % (job.catalog_title, job.fmt.lower())) + if export_dir: + destination = os.path.join(export_dir, '%s.%s' % (job.catalog_title, job.fmt.lower())) + shutil.copyfile(job.catalog_file_path, destination) + + diff --git a/src/calibre/gui2/actions/choose_library.py b/src/calibre/gui2/actions/choose_library.py new file mode 100644 index 0000000000..29e508aff2 --- /dev/null +++ b/src/calibre/gui2/actions/choose_library.py @@ -0,0 +1,188 @@ +#!/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' + +import os +from functools import partial + +from PyQt4.Qt import QMenu + +from calibre import isbytestring +from calibre.constants import filesystem_encoding +from calibre.utils.config import prefs +from calibre.gui2 import gprefs, warning_dialog +from calibre.gui2.actions import InterfaceAction + +class LibraryUsageStats(object): + + def __init__(self): + self.stats = {} + self.read_stats() + + def read_stats(self): + stats = gprefs.get('library_usage_stats', {}) + self.stats = stats + + def write_stats(self): + locs = list(self.stats.keys()) + locs.sort(cmp=lambda x, y: cmp(self.stats[x], self.stats[y]), + reverse=True) + for key in locs[15:]: + self.stats.pop(key) + gprefs.set('library_usage_stats', self.stats) + + def remove(self, location): + self.stats.pop(location, None) + self.write_stats() + + def canonicalize_path(self, lpath): + if isbytestring(lpath): + lpath = lpath.decode(filesystem_encoding) + lpath = lpath.replace(os.sep, '/') + return lpath + + def library_used(self, db): + lpath = self.canonicalize_path(db.library_path) + if lpath not in self.stats: + self.stats[lpath] = 0 + self.stats[lpath] += 1 + self.write_stats() + + def locations(self, db): + lpath = self.canonicalize_path(db.library_path) + locs = list(self.stats.keys()) + if lpath in locs: + locs.remove(lpath) + locs.sort(cmp=lambda x, y: cmp(self.stats[x], self.stats[y]), + reverse=True) + for loc in locs: + yield self.pretty(loc), loc + + def pretty(self, loc): + if loc.endswith('/'): + loc = loc[:-1] + return loc.split('/')[-1] + + +class ChooseLibraryAction(InterfaceAction): + + name = 'Choose Library' + action_spec = (_('%d books'), 'lt.png', + _('Choose calibre library to work with'), None) + + def genesis(self): + self.count_changed(0) + self.qaction.triggered.connect(self.choose_library) + + self.stats = LibraryUsageStats() + self.create_action(spec=(_('Switch to library...'), 'lt.png', None, + None), attr='action_choose') + self.action_choose.triggered.connect(self.choose_library) + self.choose_menu = QMenu(self.gui) + self.choose_menu.addAction(self.action_choose) + self.qaction.setMenu(self.choose_menu) + + self.quick_menu = QMenu(_('Quick switch')) + self.quick_menu_action = self.choose_menu.addMenu(self.quick_menu) + self.qs_separator = self.choose_menu.addSeparator() + self.switch_actions = [] + for i in range(5): + ac = self.create_action(spec=('', None, None, None), + attr='switch_action%d'%i) + self.switch_actions.append(ac) + ac.setVisible(False) + ac.triggered.connect(partial(self.qs_requested, i)) + self.choose_menu.addAction(ac) + + def library_name(self): + db = self.gui.library_view.model().db + path = db.library_path + if isbytestring(path): + path = path.decode(filesystem_encoding) + path = path.replace(os.sep, '/') + return self.stats.pretty(path) + + def library_changed(self, db): + self.stats.library_used(db) + self.build_menus() + + def initialization_complete(self): + self.library_changed(self.gui.library_view.model().db) + + def build_menus(self): + db = self.gui.library_view.model().db + locations = list(self.stats.locations(db)) + for ac in self.switch_actions: + ac.setVisible(False) + self.quick_menu.clear() + self.qs_locations = [i[1] for i in locations] + for name, loc in locations: + self.quick_menu.addAction(name, partial(self.switch_requested, + loc)) + + for i, x in enumerate(locations[:len(self.switch_actions)]): + name, loc = x + ac = self.switch_actions[i] + ac.setText(name) + ac.setVisible(True) + + self.quick_menu_action.setVisible(bool(locations)) + + + def location_selected(self, loc): + enabled = loc == 'library' + self.qaction.setEnabled(enabled) + + def switch_requested(self, location): + if not self.change_library_allowed(): + return + loc = location.replace('/', os.sep) + exists = self.gui.library_view.model().db.exists_at(loc) + if not exists: + warning_dialog(self.gui, _('No library found'), + _('No existing calibre library was found at %s.' + ' It will be removed from the list of known' + ' libraries.')%loc, show=True) + self.stats.remove(location) + self.build_menus() + return + + prefs['library_path'] = loc + self.gui.library_moved(loc) + + def qs_requested(self, idx, *args): + self.switch_requested(self.qs_locations[idx]) + + def count_changed(self, new_count): + text = self.action_spec[0]%new_count + a = self.qaction + a.setText(text) + tooltip = self.action_spec[2] + '\n\n' + text + a.setToolTip(tooltip) + a.setStatusTip(tooltip) + a.setWhatsThis(tooltip) + + def choose_library(self, *args): + if not self.change_library_allowed(): + return + from calibre.gui2.dialogs.choose_library import ChooseLibrary + db = self.gui.library_view.model().db + c = ChooseLibrary(db, self.gui.library_moved, self.gui) + c.exec_() + + def change_library_allowed(self): + if self.gui.device_connected: + warning_dialog(self.gui, _('Not allowed'), + _('You cannot change libraries when a device is' + ' connected.'), show=True) + return False + if self.gui.job_manager.has_jobs(): + warning_dialog(self.gui, _('Not allowed'), + _('You cannot change libraries while jobs' + ' are running.'), show=True) + return False + + return True diff --git a/src/calibre/gui2/actions/convert.py b/src/calibre/gui2/actions/convert.py new file mode 100644 index 0000000000..ef8a8688c5 --- /dev/null +++ b/src/calibre/gui2/actions/convert.py @@ -0,0 +1,183 @@ +#!/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' + +import os +from functools import partial + +from PyQt4.Qt import QModelIndex, QMenu + +from calibre.gui2 import error_dialog, Dispatcher +from calibre.gui2.tools import convert_single_ebook, convert_bulk_ebook +from calibre.utils.config import prefs +from calibre.gui2.actions import InterfaceAction +from calibre.customize.ui import plugin_for_input_format + +class ConvertAction(InterfaceAction): + + name = 'Convert Books' + action_spec = (_('Convert books'), 'convert.svg', None, _('C')) + + def genesis(self): + cm = QMenu() + cm.addAction(_('Convert individually'), partial(self.convert_ebook, + False, bulk=False)) + cm.addAction(_('Bulk convert'), + partial(self.convert_ebook, False, bulk=True)) + cm.addSeparator() + ac = cm.addAction( + _('Create catalog of books in your calibre library')) + ac.triggered.connect(self.gui.iactions['Generate Catalog'].generate_catalog) + self.qaction.setMenu(cm) + self.qaction.triggered.connect(self.convert_ebook) + self.convert_menu = cm + self.conversion_jobs = {} + + def location_selected(self, loc): + enabled = loc == 'library' + self.qaction.setEnabled(enabled) + + def auto_convert(self, book_ids, on_card, format): + previous = self.gui.library_view.currentIndex() + rows = [x.row() for x in \ + self.gui.library_view.selectionModel().selectedRows()] + jobs, changed, bad = convert_single_ebook(self.gui, self.gui.library_view.model().db, book_ids, True, format) + if jobs == []: return + self.queue_convert_jobs(jobs, changed, bad, rows, previous, + self.book_auto_converted, extra_job_args=[on_card]) + + def auto_convert_mail(self, to, fmts, delete_from_library, book_ids, format): + previous = self.gui.library_view.currentIndex() + rows = [x.row() for x in \ + self.gui.library_view.selectionModel().selectedRows()] + jobs, changed, bad = convert_single_ebook(self.gui, self.gui.library_view.model().db, book_ids, True, format) + if jobs == []: return + self.queue_convert_jobs(jobs, changed, bad, rows, previous, + self.book_auto_converted_mail, + extra_job_args=[delete_from_library, to, fmts]) + + def auto_convert_news(self, book_ids, format): + previous = self.gui.library_view.currentIndex() + rows = [x.row() for x in \ + self.gui.library_view.selectionModel().selectedRows()] + jobs, changed, bad = convert_single_ebook(self.gui, self.gui.library_view.model().db, book_ids, True, format) + if jobs == []: return + self.queue_convert_jobs(jobs, changed, bad, rows, previous, + self.book_auto_converted_news) + + def auto_convert_catalogs(self, book_ids, format): + previous = self.gui.library_view.currentIndex() + rows = [x.row() for x in \ + self.gui.library_view.selectionModel().selectedRows()] + jobs, changed, bad = convert_single_ebook(self.gui, self.gui.library_view.model().db, book_ids, True, format) + if jobs == []: return + self.queue_convert_jobs(jobs, changed, bad, rows, previous, + self.book_auto_converted_catalogs) + + def get_books_for_conversion(self): + rows = [r.row() for r in \ + self.gui.library_view.selectionModel().selectedRows()] + if not rows or len(rows) == 0: + d = error_dialog(self.gui, _('Cannot convert'), + _('No books selected')) + d.exec_() + return None + return [self.gui.library_view.model().db.id(r) for r in rows] + + def convert_ebook(self, checked, bulk=None): + book_ids = self.get_books_for_conversion() + if book_ids is None: return + previous = self.gui.library_view.currentIndex() + rows = [x.row() for x in \ + self.gui.library_view.selectionModel().selectedRows()] + num = 0 + if bulk or (bulk is None and len(book_ids) > 1): + self.__bulk_queue = convert_bulk_ebook(self.gui, self.queue_convert_jobs, + self.gui.library_view.model().db, book_ids, + out_format=prefs['output_format'], args=(rows, previous, + self.book_converted)) + if self.__bulk_queue is None: + return + num = len(self.__bulk_queue.book_ids) + else: + jobs, changed, bad = convert_single_ebook(self.gui, + self.gui.library_view.model().db, book_ids, out_format=prefs['output_format']) + self.queue_convert_jobs(jobs, changed, bad, rows, previous, + self.book_converted) + num = len(jobs) + + if num > 0: + self.gui.status_bar.show_message(_('Starting conversion of %d book(s)') % + num, 2000) + + def queue_convert_jobs(self, jobs, changed, bad, rows, previous, + converted_func, extra_job_args=[]): + for func, args, desc, fmt, id, temp_files in jobs: + input_file = args[0] + input_fmt = os.path.splitext(input_file)[1] + core_usage = 1 + if input_fmt: + input_fmt = input_fmt[1:] + plugin = plugin_for_input_format(input_fmt) + if plugin is not None: + core_usage = plugin.core_usage + + if id not in bad: + job = self.gui.job_manager.run_job(Dispatcher(converted_func), + func, args=args, description=desc, + core_usage=core_usage) + args = [temp_files, fmt, id]+extra_job_args + self.conversion_jobs[job] = tuple(args) + + if changed: + self.gui.library_view.model().refresh_rows(rows) + current = self.gui.library_view.currentIndex() + self.gui.library_view.model().current_changed(current, previous) + + def book_auto_converted(self, job): + temp_files, fmt, book_id, on_card = self.conversion_jobs[job] + self.book_converted(job) + self.gui.sync_to_device(on_card, False, specific_format=fmt, send_ids=[book_id], do_auto_convert=False) + + def book_auto_converted_mail(self, job): + temp_files, fmt, book_id, delete_from_library, to, fmts = self.conversion_jobs[job] + self.book_converted(job) + self.gui.send_by_mail(to, fmts, delete_from_library, specific_format=fmt, send_ids=[book_id], do_auto_convert=False) + + def book_auto_converted_news(self, job): + temp_files, fmt, book_id = self.conversion_jobs[job] + self.book_converted(job) + self.gui.sync_news(send_ids=[book_id], do_auto_convert=False) + + def book_auto_converted_catalogs(self, job): + temp_files, fmt, book_id = self.conversion_jobs[job] + self.book_converted(job) + self.gui.sync_catalogs(send_ids=[book_id], do_auto_convert=False) + + def book_converted(self, job): + temp_files, fmt, book_id = self.conversion_jobs.pop(job)[:3] + try: + if job.failed: + self.gui.job_exception(job) + return + data = open(temp_files[-1].name, 'rb') + self.gui.library_view.model().db.add_format(book_id, \ + fmt, data, index_is_id=True) + data.close() + self.gui.status_bar.show_message(job.description + \ + (' completed'), 2000) + finally: + for f in temp_files: + try: + if os.path.exists(f.name): + os.remove(f.name) + except: + pass + self.gui.tags_view.recount() + if self.gui.current_view() is self.gui.library_view: + current = self.gui.library_view.currentIndex() + self.gui.library_view.model().current_changed(current, QModelIndex()) + diff --git a/src/calibre/gui2/actions/copy_to_library.py b/src/calibre/gui2/actions/copy_to_library.py new file mode 100644 index 0000000000..5b9e885cec --- /dev/null +++ b/src/calibre/gui2/actions/copy_to_library.py @@ -0,0 +1,21 @@ +#!/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' + +from PyQt4.Qt import QMenu + +from calibre.gui2.actions import InterfaceAction + +class CopyToLibraryAction(InterfaceAction): + + name = 'Copy To Library' + action_spec = (_('Copy to library'), 'lt.png', + _('Copy selected books to the specified library'), None) + + def genesis(self): + self.menu = QMenu(self.gui) + + diff --git a/src/calibre/gui2/actions/delete.py b/src/calibre/gui2/actions/delete.py new file mode 100644 index 0000000000..e0f3ae4d65 --- /dev/null +++ b/src/calibre/gui2/actions/delete.py @@ -0,0 +1,195 @@ +#!/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' + +from PyQt4.Qt import QMenu + +from calibre.gui2 import error_dialog +from calibre.gui2.dialogs.delete_matching_from_device import DeleteMatchingFromDeviceDialog +from calibre.gui2.dialogs.confirm_delete import confirm +from calibre.gui2.actions import InterfaceAction + +class DeleteAction(InterfaceAction): + + name = 'Remove Books' + action_spec = (_('Remove books'), 'trash.svg', None, _('Del')) + + def genesis(self): + self.qaction.triggered.connect(self.delete_books) + self.delete_menu = QMenu() + self.delete_menu.addAction(_('Remove selected books'), self.delete_books) + self.delete_menu.addAction( + _('Remove files of a specific format from selected books..'), + self.delete_selected_formats) + self.delete_menu.addAction( + _('Remove all formats from selected books, except...'), + self.delete_all_but_selected_formats) + self.delete_menu.addAction( + _('Remove covers from selected books'), self.delete_covers) + self.delete_menu.addSeparator() + self.delete_menu.addAction( + _('Remove matching books from device'), + self.remove_matching_books_from_device) + self.qaction.setMenu(self.delete_menu) + self.delete_memory = {} + + def location_selected(self, loc): + enabled = loc == 'library' + for action in list(self.delete_menu.actions())[1:]: + action.setEnabled(enabled) + + def _get_selected_formats(self, msg): + from calibre.gui2.dialogs.select_formats import SelectFormats + fmts = self.gui.library_view.model().db.all_formats() + d = SelectFormats([x.lower() for x in fmts], msg, parent=self.gui) + if d.exec_() != d.Accepted: + return None + return d.selected_formats + + def _get_selected_ids(self, err_title=_('Cannot delete')): + rows = self.gui.library_view.selectionModel().selectedRows() + if not rows or len(rows) == 0: + d = error_dialog(self.gui, err_title, _('No book selected')) + d.exec_() + return set([]) + return set(map(self.gui.library_view.model().id, rows)) + + def delete_selected_formats(self, *args): + ids = self._get_selected_ids() + if not ids: + return + fmts = self._get_selected_formats( + _('Choose formats to be deleted')) + if not fmts: + return + for id in ids: + for fmt in fmts: + self.gui.library_view.model().db.remove_format(id, fmt, + index_is_id=True, notify=False) + self.gui.library_view.model().refresh_ids(ids) + self.gui.library_view.model().current_changed(self.gui.library_view.currentIndex(), + self.gui.library_view.currentIndex()) + if ids: + self.gui.tags_view.recount() + + def delete_all_but_selected_formats(self, *args): + ids = self._get_selected_ids() + if not ids: + return + fmts = self._get_selected_formats( + '

'+_('Choose formats not to be deleted')) + if fmts is None: + return + for id in ids: + bfmts = self.gui.library_view.model().db.formats(id, index_is_id=True) + if bfmts is None: + continue + bfmts = set([x.lower() for x in bfmts.split(',')]) + rfmts = bfmts - set(fmts) + for fmt in rfmts: + self.gui.library_view.model().db.remove_format(id, fmt, + index_is_id=True, notify=False) + self.gui.library_view.model().refresh_ids(ids) + self.gui.library_view.model().current_changed(self.gui.library_view.currentIndex(), + self.gui.library_view.currentIndex()) + if ids: + self.gui.tags_view.recount() + + def remove_matching_books_from_device(self, *args): + if not self.gui.device_manager.is_device_connected: + d = error_dialog(self.gui, _('Cannot delete books'), + _('No device is connected')) + d.exec_() + return + ids = self._get_selected_ids() + if not ids: + #_get_selected_ids shows a dialog box if nothing is selected, so we + #do not need to show one here + return + to_delete = {} + some_to_delete = False + for model,name in ((self.gui.memory_view.model(), _('Main memory')), + (self.gui.card_a_view.model(), _('Storage Card A')), + (self.gui.card_b_view.model(), _('Storage Card B'))): + to_delete[name] = (model, model.paths_for_db_ids(ids)) + if len(to_delete[name][1]) > 0: + some_to_delete = True + if not some_to_delete: + d = error_dialog(self.gui, _('No books to delete'), + _('None of the selected books are on the device')) + d.exec_() + return + d = DeleteMatchingFromDeviceDialog(self.gui, to_delete) + if d.exec_(): + paths = {} + ids = {} + for (model, id, path) in d.result: + if model not in paths: + paths[model] = [] + ids[model] = [] + paths[model].append(path) + ids[model].append(id) + for model in paths: + job = self.gui.remove_paths(paths[model]) + self.delete_memory[job] = (paths[model], model) + model.mark_for_deletion(job, ids[model], rows_are_ids=True) + self.gui.status_bar.show_message(_('Deleting books from device.'), 1000) + + def delete_covers(self, *args): + ids = self._get_selected_ids() + if not ids: + return + for id in ids: + self.gui.library_view.model().db.remove_cover(id) + self.gui.library_view.model().refresh_ids(ids) + self.gui.library_view.model().current_changed(self.gui.library_view.currentIndex(), + self.gui.library_view.currentIndex()) + + def delete_books(self, *args): + ''' + Delete selected books from device or library. + ''' + view = self.gui.current_view() + rows = view.selectionModel().selectedRows() + if not rows or len(rows) == 0: + return + if self.gui.stack.currentIndex() == 0: + if not confirm('

'+_('The selected books will be ' + 'permanently deleted and the files ' + 'removed from your computer. Are you sure?') + +'

', 'library_delete_books', self.gui): + return + ci = view.currentIndex() + row = None + if ci.isValid(): + row = ci.row() + ids_deleted = view.model().delete_books(rows) + for v in (self.gui.memory_view, self.gui.card_a_view, self.gui.card_b_view): + if v is None: + continue + v.model().clear_ondevice(ids_deleted) + if row is not None: + ci = view.model().index(row, 0) + if ci.isValid(): + view.set_current_row(row) + else: + if not confirm('

'+_('The selected books will be ' + 'permanently deleted ' + 'from your device. Are you sure?') + +'

', 'device_delete_books', self.gui): + return + if self.gui.stack.currentIndex() == 1: + view = self.gui.memory_view + elif self.gui.stack.currentIndex() == 2: + view = self.gui.card_a_view + else: + view = self.gui.card_b_view + paths = view.model().paths(rows) + job = self.gui.remove_paths(paths) + self.delete_memory[job] = (paths, view.model()) + view.model().mark_for_deletion(job, rows) + self.gui.status_bar.show_message(_('Deleting books from device.'), 1000) + diff --git a/src/calibre/gui2/actions/device.py b/src/calibre/gui2/actions/device.py new file mode 100644 index 0000000000..f8b2e751f1 --- /dev/null +++ b/src/calibre/gui2/actions/device.py @@ -0,0 +1,146 @@ +#!/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' + +from functools import partial + +from PyQt4.Qt import QToolButton, QMenu, pyqtSignal, QIcon + +from calibre.gui2.actions import InterfaceAction +from calibre.utils.smtp import config as email_config +from calibre.constants import iswindows, isosx + +class ShareConnMenu(QMenu): # {{{ + + connect_to_folder = pyqtSignal() + connect_to_itunes = pyqtSignal() + config_email = pyqtSignal() + toggle_server = pyqtSignal() + + def __init__(self, parent=None): + QMenu.__init__(self, parent) + mitem = self.addAction(QIcon(I('devices/folder.svg')), _('Connect to folder')) + mitem.setEnabled(True) + mitem.triggered.connect(lambda x : self.connect_to_folder.emit()) + self.connect_to_folder_action = mitem + mitem = self.addAction(QIcon(I('devices/itunes.png')), + _('Connect to iTunes')) + mitem.setEnabled(True) + mitem.triggered.connect(lambda x : self.connect_to_itunes.emit()) + self.connect_to_itunes_action = mitem + if not (iswindows or isosx): + mitem.setVisible(False) + self.addSeparator() + self.toggle_server_action = \ + self.addAction(QIcon(I('network-server.svg')), + _('Start Content Server')) + self.toggle_server_action.triggered.connect(lambda x: + self.toggle_server.emit()) + self.addSeparator() + + self.email_actions = [] + + def server_state_changed(self, running): + text = _('Start Content Server') + if running: + text = _('Stop Content Server') + self.toggle_server_action.setText(text) + + def build_email_entries(self, sync_menu): + from calibre.gui2.device import DeviceAction + for ac in self.email_actions: + self.removeAction(ac) + self.email_actions = [] + self.memory = [] + opts = email_config().parse() + if opts.accounts: + self.email_to_menu = QMenu(_('Email to')+'...', self) + keys = sorted(opts.accounts.keys()) + for account in keys: + formats, auto, default = opts.accounts[account] + dest = 'mail:'+account+';'+formats + action1 = DeviceAction(dest, False, False, I('mail.svg'), + _('Email to')+' '+account) + action2 = DeviceAction(dest, True, False, I('mail.svg'), + _('Email to')+' '+account+ _(' and delete from library')) + map(self.email_to_menu.addAction, (action1, action2)) + map(self.memory.append, (action1, action2)) + if default: + map(self.addAction, (action1, action2)) + map(self.email_actions.append, (action1, action2)) + self.email_to_menu.addSeparator() + action1.a_s.connect(sync_menu.action_triggered) + action2.a_s.connect(sync_menu.action_triggered) + ac = self.addMenu(self.email_to_menu) + self.email_actions.append(ac) + else: + ac = self.addAction(_('Setup email based sharing of books')) + self.email_actions.append(ac) + ac.triggered.connect(self.setup_email) + + def setup_email(self, *args): + self.config_email.emit() + + def set_state(self, device_connected): + self.connect_to_folder_action.setEnabled(not device_connected) + self.connect_to_itunes_action.setEnabled(not device_connected) + + +# }}} + +class SendToDeviceAction(InterfaceAction): + + name = 'Send To Device' + action_spec = (_('Send to device'), 'sync.svg', None, _('D')) + + def genesis(self): + self.qaction.triggered.connect(self.do_sync) + self.gui.create_device_menu() + + def location_selected(self, loc): + enabled = loc == 'library' + self.qaction.setEnabled(enabled) + + def do_sync(self, *args): + self.gui._sync_action_triggered() + + +class ConnectShareAction(InterfaceAction): + + name = 'Connect Share' + action_spec = (_('Connect/share'), 'connect_share.svg', None, None) + popup_type = QToolButton.InstantPopup + + def genesis(self): + self.share_conn_menu = ShareConnMenu(self.gui) + self.share_conn_menu.toggle_server.connect(self.toggle_content_server) + self.share_conn_menu.config_email.connect(partial( + self.gui.iactions['Preferences'].do_config, + initial_category='email')) + self.qaction.setMenu(self.share_conn_menu) + self.share_conn_menu.connect_to_folder.connect(self.gui.connect_to_folder) + self.share_conn_menu.connect_to_itunes.connect(self.gui.connect_to_itunes) + + def location_selected(self, loc): + enabled = loc == 'library' + self.qaction.setEnabled(enabled) + + def set_state(self, device_connected): + self.share_conn_menu.set_state(device_connected) + + def build_email_entries(self): + m = self.gui.iactions['Send To Device'].qaction.menu() + self.share_conn_menu.build_email_entries(m) + + def content_server_state_changed(self, running): + self.share_conn_menu.server_state_changed(running) + + def toggle_content_server(self): + if self.gui.content_server is None: + self.gui.start_content_server() + else: + self.gui.content_server.exit() + self.gui.content_server = None diff --git a/src/calibre/gui2/actions/edit_collections.py b/src/calibre/gui2/actions/edit_collections.py new file mode 100644 index 0000000000..8f13b012e2 --- /dev/null +++ b/src/calibre/gui2/actions/edit_collections.py @@ -0,0 +1,29 @@ +#!/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' + +from calibre.gui2.actions import InterfaceAction + +class EditCollectionsAction(InterfaceAction): + + name = 'Edit Collections' + action_spec = (_('Manage collections'), None, None, None) + + def location_selected(self, loc): + enabled = loc != 'library' + self.qaction.setEnabled(enabled) + self.qaction.triggered.connect(self.edit_collections) + + def edit_collections(self, *args): + oncard = None + cv = self.gui.current_view() + if cv is self.gui.card_a_view: + oncard = 'carda' + if cv is self.gui.card_b_view: + oncard = 'cardb' + self.gui.iactions['Edit Metadata'].edit_device_collections(cv, + oncard=oncard) + diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py new file mode 100644 index 0000000000..bb07cfda3d --- /dev/null +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -0,0 +1,367 @@ +#!/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' + +import os +from functools import partial + +from PyQt4.Qt import Qt, QTimer, QMenu + +from calibre.gui2 import error_dialog, config, warning_dialog +from calibre.gui2.dialogs.metadata_single import MetadataSingleDialog +from calibre.gui2.dialogs.metadata_bulk import MetadataBulkDialog +from calibre.gui2.dialogs.confirm_delete import confirm +from calibre.gui2.dialogs.tag_list_editor import TagListEditor +from calibre.gui2.actions import InterfaceAction +from calibre.gui2.dialogs.progress import BlockingBusy + +class EditMetadataAction(InterfaceAction): + + name = 'Edit Metadata' + action_spec = (_('Edit metadata'), 'edit_input.svg', None, _('E')) + + def genesis(self): + self.create_action(spec=(_('Merge book records'), 'merge_books.svg', + None, _('M')), attr='action_merge') + md = QMenu() + md.addAction(_('Edit metadata individually'), + partial(self.edit_metadata, False, bulk=False)) + md.addSeparator() + md.addAction(_('Edit metadata in bulk'), + partial(self.edit_metadata, False, bulk=True)) + md.addSeparator() + md.addAction(_('Download metadata and covers'), + partial(self.download_metadata, False, covers=True), + Qt.ControlModifier+Qt.Key_D) + md.addAction(_('Download only metadata'), + partial(self.download_metadata, False, covers=False)) + md.addAction(_('Download only covers'), + partial(self.download_metadata, False, covers=True, + set_metadata=False, set_social_metadata=False)) + md.addAction(_('Download only social metadata'), + partial(self.download_metadata, False, covers=False, + set_metadata=False, set_social_metadata=True)) + self.metadata_menu = md + + mb = QMenu() + mb.addAction(_('Merge into first selected book - delete others'), + self.merge_books) + mb.addSeparator() + mb.addAction(_('Merge into first selected book - keep others'), + partial(self.merge_books, safe_merge=True)) + self.merge_menu = mb + self.action_merge.setMenu(mb) + md.addSeparator() + md.addAction(self.action_merge) + + self.qaction.triggered.connect(self.edit_metadata) + self.qaction.setMenu(md) + self.action_merge.triggered.connect(self.merge_books) + + def location_selected(self, loc): + enabled = loc == 'library' + self.qaction.setEnabled(enabled) + self.action_merge.setEnabled(enabled) + + def download_metadata(self, checked, covers=True, set_metadata=True, + set_social_metadata=None): + rows = self.gui.library_view.selectionModel().selectedRows() + if not rows or len(rows) == 0: + d = error_dialog(self.gui, _('Cannot download metadata'), + _('No books selected')) + d.exec_() + return + db = self.gui.library_view.model().db + ids = [db.id(row.row()) for row in rows] + self.do_download_metadata(ids, covers=covers, + set_metadata=set_metadata, + set_social_metadata=set_social_metadata) + + def do_download_metadata(self, ids, covers=True, set_metadata=True, + set_social_metadata=None): + db = self.gui.library_view.model().db + if set_social_metadata is None: + get_social_metadata = config['get_social_metadata'] + else: + get_social_metadata = set_social_metadata + from calibre.gui2.metadata import DownloadMetadata + self._download_book_metadata = DownloadMetadata(db, ids, + get_covers=covers, set_metadata=set_metadata, + get_social_metadata=get_social_metadata) + self._download_book_metadata.start() + if set_social_metadata is not None and set_social_metadata: + x = _('social metadata') + else: + x = _('covers') if covers and not set_metadata else _('metadata') + self._book_metadata_download_check = QTimer(self.gui) + self._book_metadata_download_check.timeout.connect(self.book_metadata_download_check, + type=Qt.QueuedConnection) + self._book_metadata_download_check.start(100) + self._bb_dialog = BlockingBusy(_('Downloading %s for %d book(s)')%(x, + len(ids)), parent=self.gui) + self._bb_dialog.exec_() + + def book_metadata_download_check(self): + if self._download_book_metadata.is_alive(): + return + self._book_metadata_download_check.stop() + self._bb_dialog.accept() + cr = self.gui.library_view.currentIndex().row() + x = self._download_book_metadata + self._download_book_metadata = None + if x.exception is None: + self.gui.library_view.model().refresh_ids( + x.updated, cr) + if self.gui.cover_flow: + self.gui.cover_flow.dataChanged() + if x.failures: + details = ['%s: %s'%(title, reason) for title, + reason in x.failures.values()] + details = '%s\n'%('\n'.join(details)) + warning_dialog(self.gui, _('Failed to download some metadata'), + _('Failed to download metadata for the following:'), + det_msg=details).exec_() + else: + err = _('Failed to download metadata:') + error_dialog(self.gui, _('Error'), err, det_msg=x.tb).exec_() + + + def edit_metadata(self, checked, bulk=None): + ''' + Edit metadata of selected books in library. + ''' + rows = self.gui.library_view.selectionModel().selectedRows() + previous = self.gui.library_view.currentIndex() + if not rows or len(rows) == 0: + d = error_dialog(self.gui, _('Cannot edit metadata'), + _('No books selected')) + d.exec_() + return + + if bulk or (bulk is None and len(rows) > 1): + return self.edit_bulk_metadata(checked) + + def accepted(id): + self.gui.library_view.model().refresh_ids([id]) + + for row in rows: + self.gui.iactions['View'].metadata_view_id = self.gui.library_view.model().db.id(row.row()) + d = MetadataSingleDialog(self.gui, row.row(), + self.gui.library_view.model().db, + accepted_callback=accepted, + cancel_all=rows.index(row) < len(rows)-1) + d.view_format.connect(self.gui.iactions['View'].metadata_view_format) + d.exec_() + if d.cancel_all: + break + if rows: + current = self.gui.library_view.currentIndex() + m = self.gui.library_view.model() + if self.gui.cover_flow: + self.gui.cover_flow.dataChanged() + m.current_changed(current, previous) + self.gui.tags_view.recount() + + def edit_bulk_metadata(self, checked): + ''' + Edit metadata of selected books in library in bulk. + ''' + rows = [r.row() for r in \ + self.gui.library_view.selectionModel().selectedRows()] + if not rows or len(rows) == 0: + d = error_dialog(self.gui, _('Cannot edit metadata'), + _('No books selected')) + d.exec_() + return + # Prevent the TagView from updating due to signals from the database + self.gui.tags_view.blockSignals(True) + try: + changed = MetadataBulkDialog(self.gui, rows, + self.gui.library_view.model().db).changed + finally: + self.gui.tags_view.blockSignals(False) + if changed: + self.gui.library_view.model().resort(reset=False) + self.gui.library_view.model().research() + self.gui.tags_view.recount() + if self.gui.cover_flow: + self.gui.cover_flow.dataChanged() + + # Merge books {{{ + def merge_books(self, safe_merge=False): + ''' + Merge selected books in library. + ''' + if self.gui.stack.currentIndex() != 0: + return + rows = self.gui.library_view.selectionModel().selectedRows() + if not rows or len(rows) == 0: + return error_dialog(self.gui, _('Cannot merge books'), + _('No books selected'), show=True) + if len(rows) < 2: + return error_dialog(self.gui, _('Cannot merge books'), + _('At least two books must be selected for merging'), + show=True) + dest_id, src_books, src_ids = self.books_to_merge(rows) + if safe_merge: + if not confirm('

'+_( + 'All book formats and metadata from the selected books ' + 'will be added to the first selected book.

' + 'The second and subsequently selected books will not ' + 'be deleted or changed.

' + 'Please confirm you want to proceed.') + +'

', 'merge_books_safe', self.gui): + return + self.add_formats(dest_id, src_books) + self.merge_metadata(dest_id, src_ids) + else: + if not confirm('

'+_( + 'All book formats and metadata from the selected books will be merged ' + 'into the first selected book.

' + 'After merger the second and ' + 'subsequently selected books will be deleted.

' + 'All book formats of the first selected book will be kept ' + 'and any duplicate formats in the second and subsequently selected books ' + 'will be permanently deleted from your computer.

' + 'Are you sure you want to proceed?') + +'

', 'merge_books', self.gui): + return + if len(rows)>5: + if not confirm('

'+_('You are about to merge more than 5 books. ' + 'Are you sure you want to proceed?') + +'

', 'merge_too_many_books', self.gui): + return + self.add_formats(dest_id, src_books) + self.merge_metadata(dest_id, src_ids) + self.delete_books_after_merge(src_ids) + # leave the selection highlight on first selected book + dest_row = rows[0].row() + for row in rows: + if row.row() < rows[0].row(): + dest_row -= 1 + ci = self.gui.library_view.model().index(dest_row, 0) + if ci.isValid(): + self.gui.library_view.setCurrentIndex(ci) + + def add_formats(self, dest_id, src_books, replace=False): + for src_book in src_books: + if src_book: + fmt = os.path.splitext(src_book)[-1].replace('.', '').upper() + with open(src_book, 'rb') as f: + self.gui.library_view.model().db.add_format(dest_id, fmt, f, index_is_id=True, + notify=False, replace=replace) + + def books_to_merge(self, rows): + src_books = [] + src_ids = [] + m = self.gui.library_view.model() + for i, row in enumerate(rows): + id_ = m.id(row) + if i == 0: + dest_id = id_ + else: + src_ids.append(id_) + dbfmts = m.db.formats(id_, index_is_id=True) + if dbfmts: + for fmt in dbfmts.split(','): + src_books.append(m.db.format_abspath(id_, fmt, + index_is_id=True)) + return [dest_id, src_books, src_ids] + + def delete_books_after_merge(self, ids_to_delete): + self.gui.library_view.model().delete_books_by_id(ids_to_delete) + + def merge_metadata(self, dest_id, src_ids): + db = self.gui.library_view.model().db + dest_mi = db.get_metadata(dest_id, index_is_id=True, get_cover=True) + orig_dest_comments = dest_mi.comments + for src_id in src_ids: + src_mi = db.get_metadata(src_id, index_is_id=True, get_cover=True) + if src_mi.comments and orig_dest_comments != src_mi.comments: + if not dest_mi.comments: + dest_mi.comments = src_mi.comments + else: + dest_mi.comments = unicode(dest_mi.comments) + u'\n\n' + unicode(src_mi.comments) + if src_mi.title and (not dest_mi.title or + dest_mi.title == _('Unknown')): + dest_mi.title = src_mi.title + if src_mi.title and (not dest_mi.authors or dest_mi.authors[0] == + _('Unknown')): + dest_mi.authors = src_mi.authors + dest_mi.author_sort = src_mi.author_sort + if src_mi.tags: + if not dest_mi.tags: + dest_mi.tags = src_mi.tags + else: + dest_mi.tags.extend(src_mi.tags) + if src_mi.cover and not dest_mi.cover: + dest_mi.cover = src_mi.cover + if not dest_mi.publisher: + dest_mi.publisher = src_mi.publisher + if not dest_mi.rating: + dest_mi.rating = src_mi.rating + if not dest_mi.series: + dest_mi.series = src_mi.series + dest_mi.series_index = src_mi.series_index + db.set_metadata(dest_id, dest_mi, ignore_errors=False) + + for key in db.field_metadata: #loop thru all defined fields + if db.field_metadata[key]['is_custom']: + colnum = db.field_metadata[key]['colnum'] + # Get orig_dest_comments before it gets changed + if db.field_metadata[key]['datatype'] == 'comments': + orig_dest_value = db.get_custom(dest_id, num=colnum, index_is_id=True) + for src_id in src_ids: + dest_value = db.get_custom(dest_id, num=colnum, index_is_id=True) + src_value = db.get_custom(src_id, num=colnum, index_is_id=True) + if db.field_metadata[key]['datatype'] == 'comments': + if src_value and src_value != orig_dest_value: + if not dest_value: + db.set_custom(dest_id, src_value, num=colnum) + else: + dest_value = unicode(dest_value) + u'\n\n' + unicode(src_value) + db.set_custom(dest_id, dest_value, num=colnum) + if db.field_metadata[key]['datatype'] in \ + ('bool', 'int', 'float', 'rating', 'datetime') \ + and not dest_value: + db.set_custom(dest_id, src_value, num=colnum) + if db.field_metadata[key]['datatype'] == 'series' \ + and not dest_value: + if src_value: + src_index = db.get_custom_extra(src_id, num=colnum, index_is_id=True) + db.set_custom(dest_id, src_value, num=colnum, extra=src_index) + if db.field_metadata[key]['datatype'] == 'text' \ + and not db.field_metadata[key]['is_multiple'] \ + and not dest_value: + db.set_custom(dest_id, src_value, num=colnum) + if db.field_metadata[key]['datatype'] == 'text' \ + and db.field_metadata[key]['is_multiple']: + if src_value: + if not dest_value: + dest_value = src_value + else: + dest_value.extend(src_value) + db.set_custom(dest_id, dest_value, num=colnum) + # }}} + + def edit_device_collections(self, view, oncard=None): + model = view.model() + result = model.get_collections_with_ids() + compare = (lambda x,y:cmp(x.lower(), y.lower())) + d = TagListEditor(self.gui, tag_to_match=None, data=result, compare=compare) + d.exec_() + if d.result() == d.Accepted: + to_rename = d.to_rename # dict of new text to old ids + to_delete = d.to_delete # list of ids + for text in to_rename: + for old_id in to_rename[text]: + model.rename_collection(old_id, new_name=unicode(text)) + for item in to_delete: + model.delete_collection_using_id(item) + self.gui.upload_collections(model.db, view=view, oncard=oncard) + view.reset() + + diff --git a/src/calibre/gui2/actions/fetch_news.py b/src/calibre/gui2/actions/fetch_news.py new file mode 100644 index 0000000000..b2893e0834 --- /dev/null +++ b/src/calibre/gui2/actions/fetch_news.py @@ -0,0 +1,71 @@ +#!/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' + +from PyQt4.Qt import Qt + +from calibre.gui2 import Dispatcher +from calibre.gui2.tools import fetch_scheduled_recipe +from calibre.utils.config import dynamic +from calibre.gui2.actions import InterfaceAction + +class FetchNewsAction(InterfaceAction): + + name = 'Fetch News' + action_spec = (_('Fetch news'), 'news.svg', None, _('F')) + + def location_selected(self, loc): + enabled = loc == 'library' + self.qaction.setEnabled(enabled) + + def genesis(self): + self.conversion_jobs = {} + + def init_scheduler(self, db): + from calibre.gui2.dialogs.scheduler import Scheduler + self.scheduler = Scheduler(self.gui, db) + self.scheduler.start_recipe_fetch.connect(self.download_scheduled_recipe, type=Qt.QueuedConnection) + self.qaction.setMenu(self.scheduler.news_menu) + self.qaction.triggered.connect( + self.scheduler.show_dialog) + + def library_changed(self, db): + self.scheduler.database_changed(db) + + def initialization_complete(self): + self.connect_scheduler() + + def connect_scheduler(self): + self.scheduler.delete_old_news.connect( + self.gui.library_view.model().delete_books_by_id, + type=Qt.QueuedConnection) + + def download_scheduled_recipe(self, arg): + func, args, desc, fmt, temp_files = \ + fetch_scheduled_recipe(arg) + job = self.gui.job_manager.run_job( + Dispatcher(self.scheduled_recipe_fetched), func, args=args, + description=desc) + self.conversion_jobs[job] = (temp_files, fmt, arg) + self.gui.status_bar.show_message(_('Fetching news from ')+arg['title'], 2000) + + def scheduled_recipe_fetched(self, job): + temp_files, fmt, arg = self.conversion_jobs.pop(job) + pt = temp_files[0] + if job.failed: + self.scheduler.recipe_download_failed(arg) + return self.gui.job_exception(job) + id = self.gui.library_view.model().add_news(pt.name, arg) + self.gui.library_view.model().reset() + sync = dynamic.get('news_to_be_synced', set([])) + sync.add(id) + dynamic.set('news_to_be_synced', sync) + self.scheduler.recipe_downloaded(arg) + self.gui.status_bar.show_message(arg['title'] + _(' fetched.'), 3000) + self.gui.email_news(id) + self.gui.sync_news() + + diff --git a/src/calibre/gui2/actions/help.py b/src/calibre/gui2/actions/help.py new file mode 100644 index 0000000000..0c6b257b80 --- /dev/null +++ b/src/calibre/gui2/actions/help.py @@ -0,0 +1,25 @@ +#!/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' + +from PyQt4.Qt import QUrl + +from calibre.gui2 import open_url +from calibre.gui2.actions import InterfaceAction + +class HelpAction(InterfaceAction): + + name = 'Help' + action_spec = (_('Help'), 'help.svg', _('Browse the calibre User Manual'), _('F1'),) + + def genesis(self): + self.qaction.triggered.connect(self.show_help) + + def show_help(self, *args): + open_url(QUrl('http://calibre-ebook.com/user_manual')) + + + diff --git a/src/calibre/gui2/actions/open.py b/src/calibre/gui2/actions/open.py new file mode 100644 index 0000000000..40fc6372b7 --- /dev/null +++ b/src/calibre/gui2/actions/open.py @@ -0,0 +1,24 @@ +#!/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' + + +from calibre.gui2.actions import InterfaceAction + +class OpenFolderAction(InterfaceAction): + + name = 'Open Folder' + action_spec = (_('Open containing folder'), 'document_open.svg', None, + _('O')) + + def genesis(self): + self.qaction.triggered.connect(self.gui.iactions['View'].view_folder) + + def location_selected(self, loc): + enabled = loc == 'library' + self.qaction.setEnabled(enabled) + + diff --git a/src/calibre/gui2/actions/preferences.py b/src/calibre/gui2/actions/preferences.py new file mode 100644 index 0000000000..d047e51dac --- /dev/null +++ b/src/calibre/gui2/actions/preferences.py @@ -0,0 +1,61 @@ +#!/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' + +from PyQt4.Qt import QIcon, QMenu + +from calibre.gui2.actions import InterfaceAction +from calibre.gui2.dialogs.config import ConfigDialog +from calibre.gui2 import error_dialog, config + +class PreferencesAction(InterfaceAction): + + name = 'Preferences' + action_spec = (_('Preferences'), 'config.svg', None, _('Ctrl+P')) + + def genesis(self): + pm = QMenu() + pm.addAction(QIcon(I('config.svg')), _('Preferences'), self.do_config) + pm.addAction(QIcon(I('wizard.svg')), _('Run welcome wizard'), + self.gui.run_wizard) + self.qaction.setMenu(pm) + self.preferences_menu = pm + for x in (self.gui.preferences_action, self.qaction): + x.triggered.connect(self.do_config) + + + def do_config(self, checked=False, initial_category='general'): + if self.gui.job_manager.has_jobs(): + d = error_dialog(self.gui, _('Cannot configure'), + _('Cannot configure while there are running jobs.')) + d.exec_() + return + if self.gui.must_restart_before_config: + d = error_dialog(self.gui, _('Cannot configure'), + _('Cannot configure before calibre is restarted.')) + d.exec_() + return + d = ConfigDialog(self.gui, self.gui.library_view, + server=self.gui.content_server, initial_category=initial_category) + + d.exec_() + self.gui.content_server = d.server + if self.gui.content_server is not None: + self.gui.content_server.state_callback = \ + self.Dispatcher(self.gui.iactions['Connect Share'].content_server_state_changed) + self.gui.content_server.state_callback(self.gui.content_server.is_running) + + if d.result() == d.Accepted: + self.gui.search.search_as_you_type(config['search_as_you_type']) + self.gui.tags_view.set_new_model() # in case columns changed + self.gui.iactions['Save To Disk'].reread_prefs() + self.gui.tags_view.recount() + self.gui.create_device_menu() + self.gui.set_device_menu_items_state(bool(self.gui.device_connected)) + self.gui.tool_bar.apply_settings() + + + diff --git a/src/calibre/gui2/actions/restart.py b/src/calibre/gui2/actions/restart.py new file mode 100644 index 0000000000..be940fa32e --- /dev/null +++ b/src/calibre/gui2/actions/restart.py @@ -0,0 +1,22 @@ +#!/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' + + +from calibre.gui2.actions import InterfaceAction + +class RestartAction(InterfaceAction): + + name = 'Restart' + action_spec = (_('&Restart'), None, None, _('Ctrl+R')) + + def genesis(self): + self.qaction.triggered.connect(self.restart) + + def restart(self, *args): + self.gui.quit(restart=True) + + diff --git a/src/calibre/gui2/actions/save_to_disk.py b/src/calibre/gui2/actions/save_to_disk.py new file mode 100644 index 0000000000..fcd7c4e332 --- /dev/null +++ b/src/calibre/gui2/actions/save_to_disk.py @@ -0,0 +1,153 @@ +#!/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' + +import os +from functools import partial + +from PyQt4.Qt import QMenu, pyqtSignal + +from calibre.utils.config import prefs +from calibre.gui2 import error_dialog, Dispatcher, \ + choose_dir, warning_dialog, open_local_file +from calibre.gui2.actions import InterfaceAction +from calibre.ebooks import BOOK_EXTENSIONS + +class SaveMenu(QMenu): # {{{ + + save_fmt = pyqtSignal(object) + + def __init__(self, parent): + QMenu.__init__(self, _('Save single format to disk...'), parent) + for ext in sorted(BOOK_EXTENSIONS): + action = self.addAction(ext.upper()) + setattr(self, 'do_'+ext, partial(self.do, ext)) + action.triggered.connect( + getattr(self, 'do_'+ext)) + + def do(self, ext, *args): + self.save_fmt.emit(ext) + +# }}} + + +class SaveToDiskAction(InterfaceAction): + + name = "Save To Disk" + action_spec = (_('Save to disk'), 'save.svg', None, _('S')) + + def genesis(self): + self.qaction.triggered.connect(self.save_to_disk) + self.save_menu = QMenu() + self.save_menu.addAction(_('Save to disk'), partial(self.save_to_disk, + False)) + self.save_menu.addAction(_('Save to disk in a single directory'), + partial(self.save_to_single_dir, False)) + self.save_menu.addAction(_('Save only %s format to disk')% + prefs['output_format'].upper(), + partial(self.save_single_format_to_disk, False)) + self.save_menu.addAction( + _('Save only %s format to disk in a single directory')% + prefs['output_format'].upper(), + partial(self.save_single_fmt_to_single_dir, False)) + self.save_sub_menu = SaveMenu(self.gui) + self.save_sub_menu_action = self.save_menu.addMenu(self.save_sub_menu) + self.save_sub_menu.save_fmt.connect(self.save_specific_format_disk) + self.qaction.setMenu(self.save_menu) + + def location_selected(self, loc): + enabled = loc == 'library' + for action in list(self.save_menu.actions())[1:]: + action.setEnabled(enabled) + + def reread_prefs(self): + self.save_menu.actions()[2].setText( + _('Save only %s format to disk')% + prefs['output_format'].upper()) + self.save_menu.actions()[3].setText( + _('Save only %s format to disk in a single directory')% + prefs['output_format'].upper()) + + def save_single_format_to_disk(self, checked): + self.save_to_disk(checked, False, prefs['output_format']) + + def save_specific_format_disk(self, fmt): + self.save_to_disk(False, False, fmt) + + def save_to_single_dir(self, checked): + self.save_to_disk(checked, True) + + def save_single_fmt_to_single_dir(self, *args): + self.save_to_disk(False, single_dir=True, + single_format=prefs['output_format']) + + def save_to_disk(self, checked, single_dir=False, single_format=None): + rows = self.gui.current_view().selectionModel().selectedRows() + if not rows or len(rows) == 0: + return error_dialog(self.gui, _('Cannot save to disk'), + _('No books selected'), show=True) + path = choose_dir(self.gui, 'save to disk dialog', + _('Choose destination directory')) + if not path: + return + dpath = os.path.abspath(path).replace('/', os.sep)+os.sep + lpath = self.gui.library_view.model().db.library_path.replace('/', + os.sep)+os.sep + if dpath.startswith(lpath): + return error_dialog(self.gui, _('Not allowed'), + _('You are trying to save files into the calibre ' + 'library. This can cause corruption of your ' + 'library. Save to disk is meant to export ' + 'files from your calibre library elsewhere.'), show=True) + + if self.gui.current_view() is self.gui.library_view: + from calibre.gui2.add import Saver + from calibre.library.save_to_disk import config + opts = config().parse() + if single_format is not None: + opts.formats = single_format + # Special case for Kindle annotation files + if single_format.lower() in ['mbp','pdr','tan']: + opts.to_lowercase = False + opts.save_cover = False + opts.write_opf = False + opts.template = opts.send_template + if single_dir: + opts.template = opts.template.split('/')[-1].strip() + if not opts.template: + opts.template = '{title} - {authors}' + self._saver = Saver(self.gui, self.gui.library_view.model().db, + Dispatcher(self._books_saved), rows, path, opts, + spare_server=self.gui.spare_server) + + else: + paths = self.gui.current_view().model().paths(rows) + self.gui.device_manager.save_books( + Dispatcher(self.books_saved), paths, path) + + + def _books_saved(self, path, failures, error): + self._saver = None + if error: + return error_dialog(self.gui, _('Error while saving'), + _('There was an error while saving.'), + error, show=True) + if failures: + failures = [u'%s\n\t%s'% + (title, '\n\t'.join(err.splitlines())) for title, err in + failures] + + warning_dialog(self.gui, _('Could not save some books'), + _('Could not save some books') + ', ' + + _('Click the show details button to see which ones.'), + u'\n\n'.join(failures), show=True) + open_local_file(path) + + def books_saved(self, job): + if job.failed: + return self.gui.device_job_exception(job) + + diff --git a/src/calibre/gui2/actions/show_book_details.py b/src/calibre/gui2/actions/show_book_details.py new file mode 100644 index 0000000000..06c63714a7 --- /dev/null +++ b/src/calibre/gui2/actions/show_book_details.py @@ -0,0 +1,31 @@ +#!/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' + + +from calibre.gui2.actions import InterfaceAction +from calibre.gui2.dialogs.book_info import BookInfo +from calibre.gui2 import error_dialog + +class ShowBookDetailsAction(InterfaceAction): + + name = 'Show Book Details' + action_spec = (_('Show book details'), 'dialog_information.svg', None, + _('I')) + + def genesis(self): + self.qaction.triggered.connect(self.show_book_info) + + def show_book_info(self, *args): + if self.gui.current_view() is not self.gui.library_view: + error_dialog(self.gui, _('No detailed info available'), + _('No detailed information is available for books ' + 'on the device.')).exec_() + return + index = self.gui.library_view.currentIndex() + if index.isValid(): + BookInfo(self.gui, self.gui.library_view, index).show() + diff --git a/src/calibre/gui2/actions/similar_books.py b/src/calibre/gui2/actions/similar_books.py new file mode 100644 index 0000000000..5ce74fd2dc --- /dev/null +++ b/src/calibre/gui2/actions/similar_books.py @@ -0,0 +1,60 @@ +#!/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' + +from functools import partial + +from PyQt4.Qt import QMenu + +from calibre.gui2.actions import InterfaceAction + +class SimilarBooksAction(InterfaceAction): + + name = 'Similar Books' + action_spec = (_('Similar books...'), None, None, None) + + def genesis(self): + m = QMenu(self.gui) + for text, icon, target, shortcut in [ + (_('Books by same author'), 'user_profile.svg', 'authors', _('Alt+A')), + (_('Books in this series'), 'books_in_series.svg', 'series', _('Alt+S')), + (_('Books by this publisher'), 'publisher.png', 'publisher', _('Alt+P')), + (_('Books with the same tags'), 'tags.svg', 'tag', _('Alt+T')),]: + ac = self.create_action(spec=(text, icon, None, shortcut), + attr=target) + m.addAction(ac) + m.triggered.connect(partial(self.show_similar_books, target)) + self.qaction.setMenu(m) + self.similar_menu = m + + def show_similar_books(self, type, *args): + search, join = [], ' ' + idx = self.gui.library_view.currentIndex() + if not idx.isValid(): + return + row = idx.row() + if type == 'series': + series = idx.model().db.series(row) + if series: + search = ['series:"'+series+'"'] + elif type == 'publisher': + publisher = idx.model().db.publisher(row) + if publisher: + search = ['publisher:"'+publisher+'"'] + elif type == 'tag': + tags = idx.model().db.tags(row) + if tags: + search = ['tag:"='+t+'"' for t in tags.split(',')] + elif type in ('author', 'authors'): + authors = idx.model().db.authors(row) + if authors: + search = ['author:"='+a.strip().replace('|', ',')+'"' \ + for a in authors.split(',')] + join = ' or ' + if search: + self.gui.search.set_search_string(join.join(search)) + + diff --git a/src/calibre/gui2/actions/view.py b/src/calibre/gui2/actions/view.py new file mode 100644 index 0000000000..22592be2fe --- /dev/null +++ b/src/calibre/gui2/actions/view.py @@ -0,0 +1,181 @@ +#!/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' + +import os, time +from functools import partial + +from PyQt4.Qt import Qt, QMenu + +from calibre.constants import isosx +from calibre.gui2 import error_dialog, Dispatcher, question_dialog, config, \ + open_local_file +from calibre.gui2.dialogs.choose_format import ChooseFormatDialog +from calibre.utils.config import prefs +from calibre.ptempfile import PersistentTemporaryFile +from calibre.gui2.actions import InterfaceAction + +class ViewAction(InterfaceAction): + + name = 'View' + action_spec = (_('View'), 'view.svg', None, _('V')) + + def genesis(self): + self.persistent_files = [] + self.metadata_view_id = None + self.qaction.triggered.connect(self.view_book) + self.view_menu = QMenu() + self.view_menu.addAction(_('View'), partial(self.view_book, False)) + ac = self.view_menu.addAction(_('View specific format')) + ac.setShortcut((Qt.ControlModifier if isosx else Qt.AltModifier)+Qt.Key_V) + self.qaction.setMenu(self.view_menu) + ac.triggered.connect(self.view_specific_format, type=Qt.QueuedConnection) + + + def location_selected(self, loc): + enabled = loc == 'library' + for action in list(self.view_menu.actions())[1:]: + action.setEnabled(enabled) + + def view_format(self, row, format): + fmt_path = self.gui.library_view.model().db.format_abspath(row, format) + if fmt_path: + self._view_file(fmt_path) + + def view_format_by_id(self, id_, format): + fmt_path = self.gui.library_view.model().db.format_abspath(id_, format, + index_is_id=True) + if fmt_path: + self._view_file(fmt_path) + + def metadata_view_format(self, fmt): + fmt_path = self.gui.library_view.model().db.\ + format_abspath(self.metadata_view_id, + fmt, index_is_id=True) + if fmt_path: + self._view_file(fmt_path) + + + def book_downloaded_for_viewing(self, job): + if job.failed: + self.gui.device_job_exception(job) + return + self._view_file(job.result) + + def _launch_viewer(self, name=None, viewer='ebook-viewer', internal=True): + self.gui.setCursor(Qt.BusyCursor) + try: + if internal: + args = [viewer] + if isosx and 'ebook' in viewer: + args.append('--raise-window') + if name is not None: + args.append(name) + self.gui.job_manager.launch_gui_app(viewer, + kwargs=dict(args=args)) + else: + open_local_file(name) + time.sleep(2) # User feedback + finally: + self.gui.unsetCursor() + + def _view_file(self, name): + ext = os.path.splitext(name)[1].upper().replace('.', '') + viewer = 'lrfviewer' if ext == 'LRF' else 'ebook-viewer' + internal = ext in config['internally_viewed_formats'] + self._launch_viewer(name, viewer, internal) + + def view_specific_format(self, triggered): + rows = self.gui.library_view.selectionModel().selectedRows() + if not rows or len(rows) == 0: + d = error_dialog(self.gui, _('Cannot view'), _('No book selected')) + d.exec_() + return + + row = rows[0].row() + formats = self.gui.library_view.model().db.formats(row).upper().split(',') + d = ChooseFormatDialog(self.gui, _('Choose the format to view'), formats) + if d.exec_() == d.Accepted: + format = d.format() + self.view_format(row, format) + + def _view_check(self, num, max_=3): + if num <= max_: + return True + return question_dialog(self.gui, _('Multiple Books Selected'), + _('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?' + ) % num) + + def view_folder(self, *args): + rows = self.gui.current_view().selectionModel().selectedRows() + if not rows or len(rows) == 0: + d = error_dialog(self.gui, _('Cannot open folder'), + _('No book selected')) + d.exec_() + return + if not self._view_check(len(rows)): + return + for row in rows: + path = self.gui.library_view.model().db.abspath(row.row()) + open_local_file(path) + + def view_folder_for_id(self, id_): + path = self.gui.library_view.model().db.abspath(id_, index_is_id=True) + open_local_file(path) + + def view_book(self, triggered): + rows = self.gui.current_view().selectionModel().selectedRows() + self._view_books(rows) + + def view_specific_book(self, index): + self._view_books([index]) + + def _view_books(self, rows): + if not rows or len(rows) == 0: + self._launch_viewer() + return + + if not self._view_check(len(rows)): + return + + if self.gui.current_view() is self.gui.library_view: + for row in rows: + if hasattr(row, 'row'): + row = row.row() + + formats = self.gui.library_view.model().db.formats(row) + title = self.gui.library_view.model().db.title(row) + if not formats: + error_dialog(self.gui, _('Cannot view'), + _('%s has no available formats.')%(title,), show=True) + continue + + formats = formats.upper().split(',') + + + in_prefs = False + for format in prefs['input_format_order']: + if format in formats: + in_prefs = True + self.view_format(row, format) + break + if not in_prefs: + self.view_format(row, formats[0]) + else: + paths = self.gui.current_view().model().paths(rows) + for path in paths: + pt = PersistentTemporaryFile('_viewer_'+\ + os.path.splitext(path)[1]) + self.persistent_files.append(pt) + pt.close() + self.gui.device_manager.view_book(\ + Dispatcher(self.book_downloaded_for_viewing), + path, pt.name) + + diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py index 74f5a2148e..04d60525f1 100644 --- a/src/calibre/gui2/add.py +++ b/src/calibre/gui2/add.py @@ -443,7 +443,7 @@ class Saver(QObject): from calibre.ebooks.metadata.worker import SaveWorker self.worker = SaveWorker(self.rq, db, self.ids, path, self.opts, spare_server=self.spare_server) - self.connect(self.pd, SIGNAL('canceled()'), self.canceled) + self.pd.canceled_signal.connect(self.canceled) self.timer = QTimer(self) self.connect(self.timer, SIGNAL('timeout()'), self.update) self.timer.start(200) diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.py b/src/calibre/gui2/catalog/catalog_epub_mobi.py index 6ecab3c081..5acda0948c 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.py +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.py @@ -16,7 +16,7 @@ class PluginWidget(QWidget,Ui_Form): TITLE = _('E-book options') HELP = _('Options specific to')+' EPUB/MOBI '+_('output') - OPTION_FIELDS = [('exclude_genre','\[[\w ]*\]'), + OPTION_FIELDS = [('exclude_genre','\[.+\]'), ('exclude_tags','~,'+_('Catalog')), ('generate_titles', True), ('generate_recently_added', True), diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.ui b/src/calibre/gui2/catalog/catalog_epub_mobi.ui index dab8c972c7..cdf91eed6f 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.ui +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.ui @@ -80,7 +80,7 @@ Regex tips: -- The default regex - \[[\w ]*\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie] +- The default regex - \[.+\] - 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 diff --git a/src/calibre/gui2/convert/__init__.py b/src/calibre/gui2/convert/__init__.py index 437741d685..c8f8733899 100644 --- a/src/calibre/gui2/convert/__init__.py +++ b/src/calibre/gui2/convert/__init__.py @@ -16,18 +16,39 @@ from calibre.ebooks.conversion.config import load_defaults, \ save_defaults as save_defaults_, \ load_specifics, GuiRecommendations from calibre import prepare_string_for_xml +from calibre.customize.ui import plugin_for_input_format + +def config_widget_for_input_plugin(plugin): + name = plugin.name.lower().replace(' ', '_') + try: + return __import__('calibre.gui2.convert.'+name, + fromlist=[1]).PluginWidget + except ImportError: + pass + +def bulk_defaults_for_input_format(fmt): + plugin = plugin_for_input_format(fmt) + if plugin is not None: + w = config_widget_for_input_plugin(plugin) + if w is not None: + return load_defaults(w.COMMIT_NAME) + return {} + + class Widget(QWidget): TITLE = _('Unknown') ICON = I('config.svg') HELP = '' + COMMIT_NAME = None - def __init__(self, parent, name, options): + def __init__(self, parent, options): QWidget.__init__(self, parent) self.setupUi(self) self._options = options - self._name = name + self._name = self.commit_name = self.COMMIT_NAME + assert self._name is not None self._icon = QIcon(self.ICON) for name in self._options: if not hasattr(self, 'opt_'+name): @@ -58,7 +79,7 @@ class Widget(QWidget): def commit_options(self, save_defaults=False): recs = self.create_recommendations() if save_defaults: - save_defaults_(self._name, recs) + save_defaults_(self.commit_name, recs) return recs def create_recommendations(self): diff --git a/src/calibre/gui2/convert/comic_input.py b/src/calibre/gui2/convert/comic_input.py index 25c39fe138..c2b6bfffaa 100644 --- a/src/calibre/gui2/convert/comic_input.py +++ b/src/calibre/gui2/convert/comic_input.py @@ -14,9 +14,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('Comic Input') HELP = _('Options specific to')+' comic '+_('input') + COMMIT_NAME = 'comic_input' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'comic_input', + Widget.__init__(self, parent, ['colors', 'dont_normalize', 'keep_aspect_ratio', 'right2left', 'despeckle', 'no_sort', 'no_process', 'landscape', 'dont_sharpen', 'disable_trim', 'wide', 'output_format', diff --git a/src/calibre/gui2/convert/debug.py b/src/calibre/gui2/convert/debug.py index 78fac42df8..6fd1975443 100644 --- a/src/calibre/gui2/convert/debug.py +++ b/src/calibre/gui2/convert/debug.py @@ -19,9 +19,10 @@ class DebugWidget(Widget, Ui_Form): TITLE = _('Debug') ICON = I('debug.svg') HELP = _('Debug the conversion process.') + COMMIT_NAME = 'debug' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'debug', + Widget.__init__(self, parent, ['debug_pipeline'] ) self.db, self.book_id = db, book_id diff --git a/src/calibre/gui2/convert/epub_output.py b/src/calibre/gui2/convert/epub_output.py index 8130b00273..2d1fcdfcd8 100644 --- a/src/calibre/gui2/convert/epub_output.py +++ b/src/calibre/gui2/convert/epub_output.py @@ -14,9 +14,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('EPUB Output') HELP = _('Options specific to')+' EPUB '+_('output') + COMMIT_NAME = 'epub_output' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'epub_output', + Widget.__init__(self, parent, ['dont_split_on_page_breaks', 'flow_size', 'no_default_epub_cover', 'no_svg_cover', 'preserve_cover_aspect_ratio',] diff --git a/src/calibre/gui2/convert/fb2_input.py b/src/calibre/gui2/convert/fb2_input.py index 6f950e7663..702f87754f 100644 --- a/src/calibre/gui2/convert/fb2_input.py +++ b/src/calibre/gui2/convert/fb2_input.py @@ -11,9 +11,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('FB2 Input') HELP = _('Options specific to')+' FB2 '+_('input') + COMMIT_NAME = 'fb2_input' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'fb2_input', + Widget.__init__(self, parent, ['no_inline_fb2_toc']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/fb2_output.py b/src/calibre/gui2/convert/fb2_output.py index 76d4c56af3..55c708c2a4 100644 --- a/src/calibre/gui2/convert/fb2_output.py +++ b/src/calibre/gui2/convert/fb2_output.py @@ -13,8 +13,9 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('FB2 Output') HELP = _('Options specific to')+' FB2 '+_('output') + COMMIT_NAME = 'fb2_output' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'fb2_output', ['inline_toc']) + Widget.__init__(self, parent, ['inline_toc']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/look_and_feel.py b/src/calibre/gui2/convert/look_and_feel.py index 793d170a13..c5f579fc9e 100644 --- a/src/calibre/gui2/convert/look_and_feel.py +++ b/src/calibre/gui2/convert/look_and_feel.py @@ -16,9 +16,10 @@ class LookAndFeelWidget(Widget, Ui_Form): TITLE = _('Look & Feel') ICON = I('lookfeel.svg') HELP = _('Control the look and feel of the output') + COMMIT_NAME = 'look_and_feel' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'look_and_feel', + Widget.__init__(self, parent, ['change_justification', 'extra_css', 'base_font_size', 'font_size_mapping', 'line_height', 'linearize_tables', diff --git a/src/calibre/gui2/convert/lrf_output.py b/src/calibre/gui2/convert/lrf_output.py index b0ddc3dadb..1b4f1acad3 100644 --- a/src/calibre/gui2/convert/lrf_output.py +++ b/src/calibre/gui2/convert/lrf_output.py @@ -18,9 +18,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('LRF Output') HELP = _('Options specific to')+' LRF '+_('output') + COMMIT_NAME = 'lrf_output' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'lrf_output', + Widget.__init__(self, parent, ['wordspace', 'header', 'header_format', 'minimum_indent', 'serif_family', 'render_tables_as_images', 'sans_family', 'mono_family', diff --git a/src/calibre/gui2/convert/metadata.py b/src/calibre/gui2/convert/metadata.py index cb5b99c525..daabd6226a 100644 --- a/src/calibre/gui2/convert/metadata.py +++ b/src/calibre/gui2/convert/metadata.py @@ -42,9 +42,10 @@ class MetadataWidget(Widget, Ui_Form): ICON = I('dialog_information.svg') HELP = _('Set the metadata. The output file will contain as much of this ' 'metadata as possible.') + COMMIT_NAME = 'metadata' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'metadata', ['prefer_metadata_cover']) + Widget.__init__(self, parent, ['prefer_metadata_cover']) self.db, self.book_id = db, book_id self.cover_changed = False self.cover_data = None diff --git a/src/calibre/gui2/convert/mobi_output.py b/src/calibre/gui2/convert/mobi_output.py index 396078c48a..7eff3b55a2 100644 --- a/src/calibre/gui2/convert/mobi_output.py +++ b/src/calibre/gui2/convert/mobi_output.py @@ -19,10 +19,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('MOBI Output') HELP = _('Options specific to')+' MOBI '+_('output') - + COMMIT_NAME = 'mobi_output' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'mobi_output', + Widget.__init__(self, parent, ['prefer_author_sort', 'rescale_images', 'toc_title', 'dont_compress', 'no_inline_toc', 'masthead_font','personal_doc'] ) diff --git a/src/calibre/gui2/convert/page_setup.py b/src/calibre/gui2/convert/page_setup.py index 9faaf04ecc..e824c18b57 100644 --- a/src/calibre/gui2/convert/page_setup.py +++ b/src/calibre/gui2/convert/page_setup.py @@ -33,9 +33,10 @@ class ProfileModel(QAbstractListModel): class PageSetupWidget(Widget, Ui_Form): TITLE = _('Page Setup') + COMMIT_NAME = 'page_setup' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'page_setup', + Widget.__init__(self, parent, ['margin_top', 'margin_left', 'margin_right', 'margin_bottom', 'input_profile', 'output_profile'] ) diff --git a/src/calibre/gui2/convert/pdb_input.py b/src/calibre/gui2/convert/pdb_input.py index 058f589856..6adc49c3ed 100644 --- a/src/calibre/gui2/convert/pdb_input.py +++ b/src/calibre/gui2/convert/pdb_input.py @@ -11,9 +11,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('PDB Input') HELP = _('Options specific to')+' PDB '+_('input') + COMMIT_NAME = 'pdb_input' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'pdb_input', + Widget.__init__(self, parent, ['single_line_paras', 'print_formatted_paras']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/pdb_output.py b/src/calibre/gui2/convert/pdb_output.py index 220311546c..3f9d9ad3dc 100644 --- a/src/calibre/gui2/convert/pdb_output.py +++ b/src/calibre/gui2/convert/pdb_output.py @@ -15,9 +15,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('PDB Output') HELP = _('Options specific to')+' PDB '+_('output') + COMMIT_NAME = 'pdb_output' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'pdb_output', ['format', 'inline_toc']) + Widget.__init__(self, parent, ['format', 'inline_toc']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/pdf_input.py b/src/calibre/gui2/convert/pdf_input.py index a8cacaa5d9..511091ae85 100644 --- a/src/calibre/gui2/convert/pdf_input.py +++ b/src/calibre/gui2/convert/pdf_input.py @@ -11,9 +11,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('PDF Input') HELP = _('Options specific to')+' PDF '+_('input') + COMMIT_NAME = 'pdf_input' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'pdf_input', + Widget.__init__(self, parent, ['no_images', 'unwrap_factor']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/pdf_output.py b/src/calibre/gui2/convert/pdf_output.py index 1544d3f812..de0a34a508 100644 --- a/src/calibre/gui2/convert/pdf_output.py +++ b/src/calibre/gui2/convert/pdf_output.py @@ -16,9 +16,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('PDF Output') HELP = _('Options specific to')+' PDF '+_('output') + COMMIT_NAME = 'pdf_output' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'pdf_output', ['paper_size', + Widget.__init__(self, parent, ['paper_size', 'orientation', 'preserve_cover_aspect_ratio']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/rb_output.py b/src/calibre/gui2/convert/rb_output.py index 5fb214459f..5f8a961899 100644 --- a/src/calibre/gui2/convert/rb_output.py +++ b/src/calibre/gui2/convert/rb_output.py @@ -13,8 +13,9 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('RB Output') HELP = _('Options specific to')+' RB '+_('output') + COMMIT_NAME = 'rb_output' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'rb_output', ['inline_toc']) + Widget.__init__(self, parent, ['inline_toc']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/single.ui b/src/calibre/gui2/convert/single.ui index 290b31aaec..5b976a5cfb 100644 --- a/src/calibre/gui2/convert/single.ui +++ b/src/calibre/gui2/convert/single.ui @@ -31,7 +31,14 @@ - + + + QComboBox::AdjustToMinimumContentsLengthWithIcon + + + 5 + + @@ -64,7 +71,14 @@ - + + + QComboBox::AdjustToMinimumContentsLengthWithIcon + + + 5 + + @@ -115,8 +129,8 @@ 0 0 - 810 - 489 + 805 + 484 diff --git a/src/calibre/gui2/convert/structure_detection.py b/src/calibre/gui2/convert/structure_detection.py index bf360f5315..cc1a16c617 100644 --- a/src/calibre/gui2/convert/structure_detection.py +++ b/src/calibre/gui2/convert/structure_detection.py @@ -18,9 +18,10 @@ class StructureDetectionWidget(Widget, Ui_Form): ICON = I('chapters.svg') HELP = _('Fine tune the detection of chapter headings and ' 'other document structure.') + COMMIT_NAME = 'structure_detection' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'structure_detection', + Widget.__init__(self, parent, ['chapter', 'chapter_mark', 'remove_first_image', 'insert_metadata', 'page_breaks_before', diff --git a/src/calibre/gui2/convert/toc.py b/src/calibre/gui2/convert/toc.py index dddce8d3ef..0908aba576 100644 --- a/src/calibre/gui2/convert/toc.py +++ b/src/calibre/gui2/convert/toc.py @@ -16,9 +16,10 @@ class TOCWidget(Widget, Ui_Form): TITLE = _('Table of\nContents') ICON = I('series.svg') HELP = _('Control the creation/conversion of the Table of Contents.') + COMMIT_NAME = 'toc' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'toc', + Widget.__init__(self, parent, ['level1_toc', 'level2_toc', 'level3_toc', 'toc_threshold', 'max_toc_links', 'no_chapters_in_toc', 'use_auto_toc', 'toc_filter', diff --git a/src/calibre/gui2/convert/txt_input.py b/src/calibre/gui2/convert/txt_input.py index f108bdd7d5..006c06dd00 100644 --- a/src/calibre/gui2/convert/txt_input.py +++ b/src/calibre/gui2/convert/txt_input.py @@ -11,9 +11,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('TXT Input') HELP = _('Options specific to')+' TXT '+_('input') + COMMIT_NAME = 'txt_input' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'txt_input', + Widget.__init__(self, parent, ['single_line_paras', 'print_formatted_paras', 'markdown', 'markdown_disable_toc', 'preserve_spaces']) self.db, self.book_id = db, book_id diff --git a/src/calibre/gui2/convert/txt_output.py b/src/calibre/gui2/convert/txt_output.py index b79cd5779c..1accd08485 100644 --- a/src/calibre/gui2/convert/txt_output.py +++ b/src/calibre/gui2/convert/txt_output.py @@ -15,9 +15,10 @@ class PluginWidget(Widget, Ui_Form): TITLE = _('TXT Output') HELP = _('Options specific to')+' TXT '+_('output') + COMMIT_NAME = 'txt_output' def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, 'txt_output', + Widget.__init__(self, parent, ['newline', 'max_line_length', 'force_max_line_length', 'inline_toc']) self.db, self.book_id = db, book_id diff --git a/src/calibre/gui2/convert/txt_output.ui b/src/calibre/gui2/convert/txt_output.ui index 11a38690b1..9eae5a8115 100644 --- a/src/calibre/gui2/convert/txt_output.ui +++ b/src/calibre/gui2/convert/txt_output.ui @@ -63,7 +63,7 @@ - Force maximum line lenght + Force maximum line length diff --git a/src/calibre/gui2/cover_flow.py b/src/calibre/gui2/cover_flow.py index c72f53201f..88bbae6c41 100644 --- a/src/calibre/gui2/cover_flow.py +++ b/src/calibre/gui2/cover_flow.py @@ -10,10 +10,10 @@ Module to implement the Cover Flow feature import sys, os, time from PyQt4.Qt import QImage, QSizePolicy, QTimer, QDialog, Qt, QSize, \ - QStackedLayout, QLabel + QStackedLayout, QLabel, QByteArray, pyqtSignal from calibre import plugins -from calibre.gui2 import config, available_height, available_width +from calibre.gui2 import config, available_height, available_width, gprefs pictureflow, pictureflowerror = plugins['pictureflow'] @@ -107,6 +107,28 @@ else: DatabaseImages = None FileSystemImages = None +class CBDialog(QDialog): + + closed = pyqtSignal() + + def __init__(self, parent, cover_flow): + QDialog.__init__(self, parent) + self._layout = QStackedLayout() + self.setLayout(self._layout) + self.setWindowTitle(_('Browse by covers')) + self.layout().addWidget(cover_flow) + + geom = gprefs.get('cover_browser_dialog_geometry', bytearray('')) + geom = QByteArray(geom) + if not self.restoreGeometry(geom): + h, w = available_height()-60, int(available_width()/1.5) + self.resize(w, h) + + def closeEvent(self, *args): + geom = bytearray(self.saveGeometry()) + gprefs['cover_browser_dialog_geometry'] = geom + self.closed.emit() + class CoverFlowMixin(object): def __init__(self): @@ -122,13 +144,15 @@ class CoverFlowMixin(object): self.sync_cf_to_listview) self.db_images = DatabaseImages(self.library_view.model()) self.cover_flow.setImages(self.db_images) - self.cover_flow.itemActivated.connect(self.view_specific_book) + self.cover_flow.itemActivated.connect(self.iactions['View'].view_specific_book) else: self.cover_flow = QLabel('

'+_('Cover browser could not be loaded') +'
'+pictureflowerror) self.cover_flow.setWordWrap(True) if config['separate_cover_flow']: self.cb_splitter.button.clicked.connect(self.toggle_cover_browser) + self.cb_splitter.button.set_state_to_show() + self.cb_splitter.action_toggle.triggered.connect(self.toggle_cover_browser) if CoverFlow is not None: self.cover_flow.stop.connect(self.hide_cover_browser) else: @@ -137,7 +161,7 @@ class CoverFlowMixin(object): self.cover_flow.stop.connect(self.cb_splitter.hide_side_pane) self.cb_splitter.button.toggled.connect(self.cover_browser_toggled) - def toggle_cover_browser(self): + def toggle_cover_browser(self, *args): cbd = getattr(self, 'cb_dialog', None) if cbd is not None: self.hide_cover_browser() @@ -171,25 +195,27 @@ class CoverFlowMixin(object): def show_cover_browser(self): - d = QDialog(self) - ah, aw = available_height(), available_width() - d.resize(int(aw/1.5), ah-60) - d._layout = QStackedLayout() - d.setLayout(d._layout) - d.setWindowTitle(_('Browse by covers')) - d.layout().addWidget(self.cover_flow) + d = CBDialog(self, self.cover_flow) + d.addAction(self.cb_splitter.action_toggle) self.cover_flow.setVisible(True) self.cover_flow.setFocus(Qt.OtherFocusReason) d.show() self.cb_splitter.button.set_state_to_hide() - d.finished.connect(self.cb_splitter.button.set_state_to_show) + d.closed.connect(self.cover_browser_closed) self.cb_dialog = d + self.cb_splitter.button.set_state_to_hide() - def hide_cover_browser(self): + def cover_browser_closed(self, *args): + self.cb_dialog = None + self.cb_splitter.button.set_state_to_show() + + def hide_cover_browser(self, *args): cbd = getattr(self, 'cb_dialog', None) if cbd is not None: cbd.accept() self.cb_dialog = None + self.cb_splitter.button.set_state_to_show() + def sync_cf_to_listview(self, current, previous): if self.cover_flow_sync_flag and self.cover_flow.isVisible() and \ diff --git a/src/calibre/gui2/custom_column_widgets.py b/src/calibre/gui2/custom_column_widgets.py index 96232fe85f..f364638f37 100644 --- a/src/calibre/gui2/custom_column_widgets.py +++ b/src/calibre/gui2/custom_column_widgets.py @@ -32,11 +32,17 @@ class Base(object): val = self.normalize_db_val(val) self.setter(val) + @property + def gui_val(self): + return self.getter() + + def commit(self, book_id, notify=False): - val = self.getter() + val = self.gui_val val = self.normalize_ui_val(val) if val != self.initial_val: - self.db.set_custom(book_id, val, num=self.col_id, notify=notify) + self.db.set_custom(book_id, val, num=self.col_id, notify=notify, + commit=False) def normalize_db_val(self, val): return val @@ -284,10 +290,14 @@ class Series(Base): if idx is not None: self.widgets[1].setCurrentIndex(idx) + def getter(self): + n = unicode(self.name_widget.currentText()).strip() + i = self.idx_widget.value() + return n, i + def commit(self, book_id, notify=False): - val = unicode(self.name_widget.currentText()).strip() + val, s_index = self.gui_val val = self.normalize_ui_val(val) - s_index = self.idx_widget.value() if val != self.initial_val or s_index != self.initial_index: if s_index == 0.0: if tweaks['series_index_auto_increment'] == 'next': @@ -296,7 +306,7 @@ class Series(Base): else: s_index = None self.db.set_custom(book_id, val, extra=s_index, - num=self.col_id, notify=notify) + num=self.col_id, notify=notify, commit=False) widgets = { 'bool' : Bool, @@ -378,6 +388,13 @@ def populate_metadata_page(layout, db, book_id, bulk=False, two_column=False, pa class BulkBase(Base): + @property + def gui_val(self): + if not hasattr(self, '_cached_gui_val_'): + self._cached_gui_val_ = self.getter() + return self._cached_gui_val_ + + def get_initial_value(self, book_ids): values = set([]) for book_id in book_ids: @@ -394,26 +411,16 @@ class BulkBase(Base): ans = list(ans) return ans - def process_each_book(self): - return False - def initialize(self, book_ids): - if not self.process_each_book(): - self.initial_val = val = self.get_initial_value(book_ids) - val = self.normalize_db_val(val) - self.setter(val) + self.initial_val = val = self.get_initial_value(book_ids) + val = self.normalize_db_val(val) + self.setter(val) def commit(self, book_ids, notify=False): - if self.process_each_book(): - for book_id in book_ids: - val = self.db.get_custom(book_id, num=self.col_id, index_is_id=True) - self.db.set_custom(book_id, self.getter(val), num=self.col_id, notify=notify) - else: - val = self.getter() - val = self.normalize_ui_val(val) - if val != self.initial_val: - for book_id in book_ids: - self.db.set_custom(book_id, val, num=self.col_id, notify=notify) + val = self.gui_val + val = self.normalize_ui_val(val) + if val != self.initial_val: + self.db.set_custom_bulk(book_ids, val, num=self.col_id, notify=notify) class BulkBool(BulkBase, Bool): pass @@ -431,6 +438,7 @@ class BulkDateTime(BulkBase, DateTime): pass class BulkSeries(BulkBase): + def setup_ui(self, parent): values = self.all_values = list(self.db.all_custom(num=self.col_id)) values.sort(cmp = lambda x,y: cmp(x.lower(), y.lower())) @@ -450,27 +458,31 @@ class BulkSeries(BulkBase): self.name_widget.addItem(c) self.name_widget.setEditText('') + def getter(self): + n = unicode(self.name_widget.currentText()).strip() + i = self.idx_widget.checkState() + return n, i + def commit(self, book_ids, notify=False): - val = unicode(self.name_widget.currentText()).strip() + val, update_indices = self.gui_val val = self.normalize_ui_val(val) - update_indices = self.idx_widget.checkState() if val != '': + extras = [] + next_index = self.db.get_next_cc_series_num_for(val, num=self.col_id) for book_id in book_ids: if update_indices: if tweaks['series_index_auto_increment'] == 'next': - s_index = self.db.get_next_cc_series_num_for\ - (val, num=self.col_id) + s_index = next_index + next_index += 1 else: s_index = 1.0 else: s_index = self.db.get_custom_extra(book_id, num=self.col_id, index_is_id=True) - self.db.set_custom(book_id, val, extra=s_index, + extras.append(s_index) + self.db.set_custom_bulk(book_ids, val, extras=extras, num=self.col_id, notify=notify) - def process_each_book(self): - return True - class RemoveTags(QWidget): def __init__(self, parent, values): @@ -533,20 +545,37 @@ class BulkText(BulkBase): if idx is not None: self.widgets[1].setCurrentIndex(idx) - def process_each_book(self): - return self.col_metadata['is_multiple'] - - def getter(self, original_value = None): + def commit(self, book_ids, notify=False): if self.col_metadata['is_multiple']: - if self.removing_widget.checkbox.isChecked(): - ans = set() + remove_all, adding, rtext = self.gui_val + remove = set() + if remove_all: + for book_id in book_ids: + remove |= set(self.db.get_custom(book_id, num=self.col_id, + index_is_id=True)) else: - ans = set(original_value) - ans -= set([v.strip() for v in - unicode(self.removing_widget.tags_box.text()).split(',')]) - ans |= set([v.strip() for v in - unicode(self.adding_widget.text()).split(',')]) - return ans # returning a set instead of a list works, for now at least. + txt = rtext + if txt: + remove = set([v.strip() for v in txt.split(',')]) + txt = adding + if txt: + add = set([v.strip() for v in txt.split(',')]) + else: + add = set() + self.db.set_custom_bulk_multiple(book_ids, add=add, remove=remove, + num=self.col_id) + else: + val = self.gui_val + val = self.normalize_ui_val(val) + if val != self.initial_val: + self.db.set_custom_bulk(book_ids, val, num=self.col_id, notify=notify) + + def getter(self): + if self.col_metadata['is_multiple']: + return self.removing_widget.checkbox.isChecked(), \ + unicode(self.adding_widget.text()), \ + unicode(self.removing_widget.tags_box.text()) + val = unicode(self.widgets[1].currentText()).strip() if not val: val = None diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index cadb4f1e46..bc79a3c9de 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -33,7 +33,7 @@ from calibre.devices.apple.driver import ITUNES_ASYNC from calibre.devices.folder_device.driver import FOLDER_DEVICE from calibre.ebooks.metadata.meta import set_metadata from calibre.constants import DEBUG -from calibre.utils.config import prefs +from calibre.utils.config import prefs, tweaks # }}} @@ -118,6 +118,7 @@ class DeviceManager(Thread): # {{{ self.jobs = Queue.Queue(0) self.keep_going = True self.job_manager = job_manager + self.reported_errors = set([]) self.current_job = None self.scanner = DeviceScanner() self.connected_device = None @@ -141,13 +142,16 @@ class DeviceManager(Thread): # {{{ for dev, detected_device in connected_devices: if dev.OPEN_FEEDBACK_MESSAGE is not None: self.open_feedback_slot(dev.OPEN_FEEDBACK_MESSAGE) - dev.reset(detected_device=detected_device, - report_progress=self.report_progress) try: + dev.reset(detected_device=detected_device, + report_progress=self.report_progress) dev.open() except: - prints('Unable to open device', str(dev)) - traceback.print_exc() + tb = traceback.format_exc() + if DEBUG or tb not in self.reported_errors: + self.reported_errors.add(tb) + prints('Unable to open device', str(dev)) + prints(tb) continue self.connected_device = dev self.connected_device_kind = device_kind @@ -192,11 +196,13 @@ class DeviceManager(Thread): # {{{ if possibly_connected_devices: if not self.do_connect(possibly_connected_devices, device_kind='device'): - prints('Connect to device failed, retrying in 5 seconds...') + if DEBUG: + prints('Connect to device failed, retrying in 5 seconds...') time.sleep(5) if not self.do_connect(possibly_connected_devices, device_kind='usb'): - prints('Device connect failed again, giving up') + if DEBUG: + prints('Device connect failed again, giving up') # Mount devices that don't use USB, such as the folder device and iTunes # This will be called on the GUI thread. Because of this, we must store @@ -602,13 +608,13 @@ class DeviceMixin(object): # {{{ self.device_error_dialog = error_dialog(self, _('Error'), _('Error communicating with device'), ' ') self.device_error_dialog.setModal(Qt.NonModal) - self.share_conn_menu.connect_to_folder.connect(self.connect_to_folder) - self.share_conn_menu.connect_to_itunes.connect(self.connect_to_itunes) self.emailer = Emailer() self.emailer.start() self.device_manager = DeviceManager(Dispatcher(self.device_detected), self.job_manager, Dispatcher(self.status_bar.show_message)) self.device_manager.start() + if tweaks['auto_connect_to_folder']: + self.connect_to_folder_named(tweaks['auto_connect_to_folder']) def set_default_thumbnail(self, height): r = QSvgRenderer(I('book.svg')) @@ -620,6 +626,11 @@ class DeviceMixin(object): # {{{ self.default_thumbnail = (pixmap.width(), pixmap.height(), pixmap_to_data(pixmap)) + def connect_to_folder_named(self, folder): + if os.path.exists(folder) and os.path.isdir(folder): + self.device_manager.mount_device(kls=FOLDER_DEVICE, kind='folder', + path=folder) + def connect_to_folder(self): dir = choose_dir(self, 'Select Device Folder', _('Select folder to open as device')) @@ -641,20 +652,18 @@ class DeviceMixin(object): # {{{ def create_device_menu(self): self._sync_menu = DeviceMenu(self) - self.share_conn_menu.build_email_entries(self._sync_menu) - self.action_sync.setMenu(self._sync_menu) + self.iactions['Send To Device'].qaction.setMenu(self._sync_menu) + self.iactions['Connect Share'].build_email_entries() self.connect(self._sync_menu, SIGNAL('sync(PyQt_PyObject, PyQt_PyObject, PyQt_PyObject)'), self.dispatch_sync_event) - self._sync_menu.fetch_annotations.connect(self.fetch_annotations) + self._sync_menu.fetch_annotations.connect( + self.iactions['Fetch Annotations'].fetch_annotations) self._sync_menu.disconnect_mounted_device.connect(self.disconnect_mounted_device) + self.iactions['Connect Share'].set_state(self.device_connected) if self.device_connected: - self.share_conn_menu.connect_to_folder_action.setEnabled(False) - self.share_conn_menu.connect_to_itunes_action.setEnabled(False) self._sync_menu.disconnect_mounted_device_action.setEnabled(True) else: - self.share_conn_menu.connect_to_folder_action.setEnabled(True) - self.share_conn_menu.connect_to_itunes_action.setEnabled(True) self._sync_menu.disconnect_mounted_device_action.setEnabled(False) def device_job_exception(self, job): @@ -690,17 +699,14 @@ class DeviceMixin(object): # {{{ # Device connected {{{ def set_device_menu_items_state(self, connected): + self.iactions['Connect Share'].set_state(connected) if connected: - self.share_conn_menu.connect_to_folder_action.setEnabled(False) - self.share_conn_menu.connect_to_itunes_action.setEnabled(False) self._sync_menu.disconnect_mounted_device_action.setEnabled(True) self._sync_menu.enable_device_actions(True, self.device_manager.device.card_prefix(), self.device_manager.device) self.eject_action.setEnabled(True) else: - self.share_conn_menu.connect_to_folder_action.setEnabled(True) - self.share_conn_menu.connect_to_itunes_action.setEnabled(True) self._sync_menu.disconnect_mounted_device_action.setEnabled(False) self._sync_menu.enable_device_actions(False) self.eject_action.setEnabled(False) @@ -785,8 +791,9 @@ class DeviceMixin(object): # {{{ self.device_job_exception(job) return - if self.delete_memory.has_key(job): - paths, model = self.delete_memory.pop(job) + dm = self.iactions['Remove Books'].delete_memory + if dm.has_key(job): + paths, model = dm.pop(job) self.device_manager.remove_books_from_metadata(paths, self.booklists()) model.paths_deleted(paths) @@ -918,7 +925,7 @@ class DeviceMixin(object): # {{{ _('Auto convert the following books before sending via ' 'email?'), det_msg=autos, buttons=QMessageBox.Yes|QMessageBox.Cancel): - self.auto_convert_mail(to, fmts, delete_from_library, auto, format) + self.iactions['Convert Books'].auto_convert_mail(to, fmts, delete_from_library, auto, format) if bad: bad = '\n'.join('%s'%(i,) for i in bad) @@ -1020,7 +1027,7 @@ class DeviceMixin(object): # {{{ _('Auto convert the following books before uploading to ' 'the device?'), det_msg=autos, buttons=QMessageBox.Yes|QMessageBox.Cancel): - self.auto_convert_catalogs(auto, format) + self.iactions['Convert Books'].auto_convert_catalogs(auto, format) files = [f for f in files if f is not None] if not files: dynamic.set('catalogs_to_be_synced', set([])) @@ -1082,7 +1089,7 @@ class DeviceMixin(object): # {{{ _('Auto convert the following books before uploading to ' 'the device?'), det_msg=autos, buttons=QMessageBox.Yes|QMessageBox.Cancel): - self.auto_convert_news(auto, format) + self.iactions['Convert Books'].auto_convert_news(auto, format) files = [f for f in files if f is not None] for f in files: f.deleted_after_upload = del_on_upload @@ -1201,7 +1208,7 @@ class DeviceMixin(object): # {{{ _('Auto convert the following books before uploading to ' 'the device?'), det_msg=autos, buttons=QMessageBox.Yes|QMessageBox.Cancel): - self.auto_convert(auto, on_card, format) + self.iactions['Convert Books'].auto_convert(auto, on_card, format) if bad: bad = '\n'.join('%s'%(i,) for i in bad) diff --git a/src/calibre/gui2/dialogs/add_from_isbn.py b/src/calibre/gui2/dialogs/add_from_isbn.py new file mode 100644 index 0000000000..a7bd578d61 --- /dev/null +++ b/src/calibre/gui2/dialogs/add_from_isbn.py @@ -0,0 +1,40 @@ +#!/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' + +from PyQt4.Qt import QDialog, QApplication + +from calibre.gui2.dialogs.add_from_isbn_ui import Ui_Dialog +from calibre.ebooks.metadata import check_isbn + +class AddFromISBN(QDialog, Ui_Dialog): + + def __init__(self, parent=None): + QDialog.__init__(self, parent) + self.setupUi(self) + + self.isbns = [] + self.paste_button.clicked.connect(self.paste) + + def paste(self, *args): + app = QApplication.instance() + c = app.clipboard() + txt = unicode(c.text()).strip() + if txt: + old = unicode(self.isbn_box.toPlainText()).strip() + new = old + '\n' + txt + self.isbn_box.setPlainText(new) + + def accept(self, *args): + for line in unicode(self.isbn_box.toPlainText()).strip().splitlines(): + if line: + isbn = check_isbn(line) + if isbn is not None: + isbn = isbn.upper() + if isbn not in self.isbns: + self.isbns.append(isbn) + QDialog.accept(self, *args) + diff --git a/src/calibre/gui2/dialogs/add_from_isbn.ui b/src/calibre/gui2/dialogs/add_from_isbn.ui new file mode 100644 index 0000000000..e4882f7d18 --- /dev/null +++ b/src/calibre/gui2/dialogs/add_from_isbn.ui @@ -0,0 +1,90 @@ + + + Dialog + + + + 0 + 0 + 678 + 430 + + + + Add books by ISBN + + + + :/images/add_book.svg:/images/add_book.svg + + + + + + + + + <p>Enter a list of ISBNs in the box to the left, one per line. calibre will automatically create entries for books based on the ISBN and download metadata and covers for them.<p>Any invalid ISBNs in the list will be ignored. + + + true + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + &Paste from clipboard + + + + + + + + + + + buttonBox + accepted() + Dialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + Dialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/calibre/gui2/dialogs/book_info.py b/src/calibre/gui2/dialogs/book_info.py index 9770ef864f..e085dcc3e2 100644 --- a/src/calibre/gui2/dialogs/book_info.py +++ b/src/calibre/gui2/dialogs/book_info.py @@ -48,11 +48,11 @@ class BookInfo(QDialog, Ui_BookInfo): self.refresh(row) def open_book_path(self, path): - if os.sep in unicode(path): + path = unicode(path) + if os.sep in path: open_local_file(path) else: - format = unicode(path) - path = self.view.model().db.format_abspath(self.current_row, format) + path = self.view.model().db.format_abspath(self.current_row, path) if path is not None: open_local_file(path) diff --git a/src/calibre/gui2/dialogs/book_info.ui b/src/calibre/gui2/dialogs/book_info.ui index 02dae12281..39f9abf3c5 100644 --- a/src/calibre/gui2/dialogs/book_info.ui +++ b/src/calibre/gui2/dialogs/book_info.ui @@ -57,7 +57,7 @@ - Fit &cover to view + Fit &cover within view diff --git a/src/calibre/gui2/dialogs/choose_library.py b/src/calibre/gui2/dialogs/choose_library.py index f53f617448..32d45c6043 100644 --- a/src/calibre/gui2/dialogs/choose_library.py +++ b/src/calibre/gui2/dialogs/choose_library.py @@ -75,9 +75,15 @@ class ChooseLibrary(QDialog, Ui_Dialog): action = 'existing' elif self.empty_library.isChecked(): action = 'new' - loc = os.path.abspath(unicode(self.location.text()).strip()) - if not loc or not os.path.exists(loc) or not self.check_action(action, - loc): + text = unicode(self.location.text()).strip() + if not text: + return error_dialog(self, _('No location'), _('No location selected'), + show=True) + loc = os.path.abspath(text) + if not loc or not os.path.exists(loc) or not os.path.isdir(loc): + return error_dialog(self, _('Bad location'), + _('%s is not an existing folder')%loc, show=True) + if not self.check_action(action, loc): return QDialog.accept(self) self.location.save_history() diff --git a/src/calibre/gui2/dialogs/config/__init__.py b/src/calibre/gui2/dialogs/config/__init__.py index 5dcc4feb1a..f183d0871b 100644 --- a/src/calibre/gui2/dialogs/config/__init__.py +++ b/src/calibre/gui2/dialogs/config/__init__.py @@ -18,7 +18,7 @@ from calibre.gui2 import error_dialog, config, gprefs, \ open_url, open_local_file, \ ALL_COLUMNS, NONE, info_dialog, choose_files, \ warning_dialog, ResizableDialog, question_dialog -from calibre.utils.config import prefs +from calibre.utils.config import prefs, read_raw_tweaks, write_tweaks from calibre.ebooks import BOOK_EXTENSIONS from calibre.ebooks.oeb.iterator import is_supported from calibre.library.server import server_config @@ -29,12 +29,15 @@ from calibre.customize.ui import initialized_plugins, is_disabled, enable_plugin input_format_plugins, \ output_format_plugins, available_output_formats from calibre.utils.smtp import config as smtp_prefs +from calibre.gui2.convert import config_widget_for_input_plugin from calibre.gui2.convert.look_and_feel import LookAndFeelWidget from calibre.gui2.convert.page_setup import PageSetupWidget from calibre.gui2.convert.structure_detection import StructureDetectionWidget from calibre.ebooks.conversion.plumber import Plumber from calibre.utils.logging import Log from calibre.gui2.convert.toc import TOCWidget +from calibre.utils.search_query_parser import saved_searches + class ConfigTabs(QTabWidget): @@ -58,15 +61,10 @@ class ConfigTabs(QTabWidget): self.widgets = [lf, ps, sd, toc] for plugin in input_format_plugins(): - name = plugin.name.lower().replace(' ', '_') - try: - input_widget = __import__('calibre.gui2.convert.'+name, - fromlist=[1]) - pw = input_widget.PluginWidget + pw = config_widget_for_input_plugin(plugin) + if pw is not None: pw.ICON = I('forward.svg') self.widgets.append(widget_factory(pw)) - except ImportError: - continue for plugin in output_format_plugins(): name = plugin.name.lower().replace(' ', '_') @@ -496,6 +494,14 @@ class ConfigDialog(ResizableDialog, Ui_Dialog): if x == config['gui_layout']: li = i self.opt_gui_layout.setCurrentIndex(li) + restrictions = sorted(saved_searches().names(), + cmp=lambda x,y: cmp(x.lower(), y.lower())) + restrictions.insert(0, '') + for x in ('gui', 'cs'): + w = getattr(self, 'opt_%s_restriction'%x) + w.addItems(restrictions) + idx = w.findText(self.db.prefs.get(x+'_restriction', '')) + w.setCurrentIndex(0 if idx < 0 else idx) self.opt_disable_animations.setChecked(config['disable_animations']) self.opt_show_donate_button.setChecked(config['show_donate_button']) idx = 0 @@ -512,9 +518,28 @@ class ConfigDialog(ResizableDialog, Ui_Dialog): idx = i self.opt_toolbar_text.addItem(x[0], x[1]) self.opt_toolbar_text.setCurrentIndex(idx) + self.reset_confirmation_button.clicked.connect(self.reset_confirmation) + + deft, curt = read_raw_tweaks() + self.current_tweaks.setPlainText(curt.decode('utf-8')) + self.default_tweaks.setPlainText(deft.decode('utf-8')) + self.restore_tweaks_to_default_button.clicked.connect(self.restore_tweaks_to_default) self.category_view.setCurrentIndex(self.category_view.model().index_for_name(initial_category)) + def restore_tweaks_to_default(self, *args): + deft, curt = read_raw_tweaks() + self.current_tweaks.setPlainText(deft.decode('utf-8')) + + + def reset_confirmation(self): + from calibre.gui2 import dynamic + for key in dynamic.keys(): + if key.endswith('_again') and dynamic[key] is False: + dynamic[key] = True + info_dialog(self, _('Done'), + _('Confirmation dialogs have all been reset'), show=True) + def check_port_value(self, *args): port = self.port.value() if port < 1025: @@ -678,6 +703,21 @@ class ConfigDialog(ResizableDialog, Ui_Dialog): self.input_order.insertItem(idx-1, self.input_order.takeItem(idx)) self.input_order.setCurrentRow(idx-1) + def set_tweaks(self): + raw = unicode(self.current_tweaks.toPlainText()).encode('utf-8') + try: + exec raw + except: + import traceback + error_dialog(self, _('Invalid tweaks'), + _('The tweaks you entered are invalid, try resetting the' + ' tweaks to default and changing them one by one until' + ' you find the invalid setting.'), + det_msg=traceback.format_exc(), show=True) + return False + write_tweaks(raw) + return True + def down_input(self): idx = self.input_order.currentRow() if idx < self.input_order.count()-1: @@ -843,6 +883,8 @@ class ConfigDialog(ResizableDialog, Ui_Dialog): return if not self.add_save.save_settings(): return + if not self.set_tweaks(): + return wl = self.opt_worker_limit.value() if wl%2 != 0: wl += 1 @@ -894,6 +936,9 @@ class ConfigDialog(ResizableDialog, Ui_Dialog): config['internally_viewed_formats'] = fmts val = self.opt_gui_layout.itemData(self.opt_gui_layout.currentIndex()).toString() config['gui_layout'] = unicode(val) + for x in ('gui', 'cs'): + w = getattr(self, 'opt_%s_restriction'%x) + self.db.prefs.set(x+'_restriction', unicode(w.currentText())) if must_restart: warning_dialog(self, _('Must restart'), diff --git a/src/calibre/gui2/dialogs/config/config.ui b/src/calibre/gui2/dialogs/config/config.ui index df19aa2a26..79917760ab 100644 --- a/src/calibre/gui2/dialogs/config/config.ui +++ b/src/calibre/gui2/dialogs/config/config.ui @@ -7,7 +7,7 @@ 0 0 - 1000 + 1001 730 @@ -89,7 +89,7 @@ 0 0 - 724 + 725 683 @@ -222,6 +222,13 @@ + + + + Reset all disabled &confirmation dialogs + + + @@ -288,7 +295,7 @@ - + Use &Roman numerals for series number @@ -298,35 +305,35 @@ - + Enable system &tray icon (needs restart) - + Show &notifications in system tray - + Show &splash screen at startup - + Show cover &browser in a separate window (needs restart) - + Show &average ratings in the tags browser @@ -336,7 +343,7 @@ - + Search as you type @@ -346,21 +353,21 @@ - + Automatically send downloaded &news to ebook reader - + &Delete news from library when it is automatically sent to reader - + @@ -377,7 +384,7 @@ - + @@ -563,7 +570,36 @@ + + + + Restriction to apply when the current library is opened: + + + opt_gui_restriction + + + + + + + 250 + 16777215 + + + + Apply this restriction on calibre startup if the current library is being used. Also applied when switching to this library. Note that this setting is per library. + + + QComboBox::AdjustToMinimumContentsLengthWithIcon + + + 20 + + + + Disable all animations. Useful if you have a slow/old computer. @@ -573,14 +609,14 @@ - + Show &donate button (restart) - + &Toolbar @@ -712,61 +748,192 @@ - - - &Maximum number of waiting worker processes (needs restart): - - - opt_worker_limit - - - - - - - 2 - - - 10000 - - - 2 - - - - - - - &Check database integrity - - - - - - - &Install command line tools - - - - - - - Open calibre &configuration directory - - - - - - - Limit the max. simultaneous jobs to the available CPU &cores - - - - - - - Debug &device detection + + + 0 + + + &Miscellaneous + + + + + + &Maximum number of waiting worker processes (needs restart): + + + opt_worker_limit + + + + + + + 2 + + + 10000 + + + 2 + + + + + + + Limit the max. simultaneous jobs to the available CPU &cores + + + + + + + Qt::Vertical + + + + 20 + 79 + + + + + + + + Debug &device detection + + + + + + + Qt::Vertical + + + + 20 + 80 + + + + + + + + &Check database integrity + + + + + + + Qt::Vertical + + + + 20 + 79 + + + + + + + + Open calibre &configuration directory + + + + + + + Qt::Vertical + + + + 20 + 80 + + + + + + + + &Install command line tools + + + + + + + Qt::Vertical + + + + 20 + 79 + + + + + + + + + &Tweaks + + + + + + Values for the tweaks are shown below. Edit them to change the behavior of calibre + + + true + + + + + + + All available tweaks + + + + + + true + + + + + + + + + + &Current tweaks + + + + + + + + + + + + &Restore to defaults + + + + + @@ -902,6 +1069,26 @@ + + + + Restriction (saved search) to apply: + + + + + + + This restriction (based on a saved search) will restrict the books the content server makes available to those matching the search. This setting is per library (i.e. you can have a different restriction per library). + + + QComboBox::AdjustToMinimumContentsLengthWithIcon + + + 20 + + + diff --git a/src/calibre/gui2/dialogs/config/create_custom_column.py b/src/calibre/gui2/dialogs/config/create_custom_column.py index 34091d893f..fdf093b6d5 100644 --- a/src/calibre/gui2/dialogs/config/create_custom_column.py +++ b/src/calibre/gui2/dialogs/config/create_custom_column.py @@ -100,11 +100,11 @@ class CreateCustomColumn(QDialog, Ui_QCreateCustomColumn): def accept(self): - col = unicode(self.column_name_box.text()).lower() + col = unicode(self.column_name_box.text()) if not col: return self.simple_error('', _('No lookup name was provided')) - if re.match('^\w*$', col) is None or not col[0].isalpha(): - return self.simple_error('', _('The label must contain only letters, digits and underscores, and start with a letter')) + if re.match('^\w*$', col) is None or not col[0].isalpha() or col.lower() != col: + return self.simple_error('', _('The lookup name must contain only lower case letters, digits and underscores, and start with a letter')) col_heading = unicode(self.column_heading_box.text()) col_type = self.column_types[self.column_type_box.currentIndex()]['datatype'] if col_type == '*text': @@ -130,8 +130,6 @@ class CreateCustomColumn(QDialog, Ui_QCreateCustomColumn): bad_head = True if bad_head: return self.simple_error('', _('The heading %s is already used')%col_heading) - if ':' in col or ' ' in col or col.lower() != col: - return self.simple_error('', _('The lookup name must be lower case and cannot contain ":"s or spaces')) date_format = {} if col_type == 'datetime': diff --git a/src/calibre/gui2/dialogs/confirm_delete.py b/src/calibre/gui2/dialogs/confirm_delete.py index 42a1be41c0..1aabcb7b9e 100644 --- a/src/calibre/gui2/dialogs/confirm_delete.py +++ b/src/calibre/gui2/dialogs/confirm_delete.py @@ -5,7 +5,7 @@ __docformat__ = 'restructuredtext en' from calibre.gui2 import dynamic from calibre.gui2.dialogs.confirm_delete_ui import Ui_Dialog -from PyQt4.Qt import QDialog, SIGNAL, Qt +from PyQt4.Qt import QDialog, Qt, QPixmap, QIcon def _config_name(name): return name + '_again' @@ -18,15 +18,17 @@ class Dialog(QDialog, Ui_Dialog): self.msg.setText(msg) self.name = name - self.connect(self.again, SIGNAL('stateChanged(int)'), self.toggle) + self.again.stateChanged.connect(self.toggle) self.buttonBox.setFocus(Qt.OtherFocusReason) - def toggle(self, x): + def toggle(self, *args): dynamic[_config_name(self.name)] = self.again.isChecked() -def confirm(msg, name, parent=None): +def confirm(msg, name, parent=None, pixmap='dialog_warning.svg'): if not dynamic.get(_config_name(name), True): return True d = Dialog(msg, name, parent) + d.label.setPixmap(QPixmap(I(pixmap))) + d.setWindowIcon(QIcon(I(pixmap))) return d.exec_() == d.Accepted diff --git a/src/calibre/gui2/dialogs/edit_authors_dialog.py b/src/calibre/gui2/dialogs/edit_authors_dialog.py index 4c749a79d0..7fe50181a3 100644 --- a/src/calibre/gui2/dialogs/edit_authors_dialog.py +++ b/src/calibre/gui2/dialogs/edit_authors_dialog.py @@ -48,17 +48,42 @@ class EditAuthorsDialog(QDialog, Ui_EditAuthorsDialog): select_item = sort self.table.resizeColumnsToContents() - # set up the signal after the table is filled + # set up the cellChanged signal only after the table is filled self.table.cellChanged.connect(self.cell_changed) - self.table.setSortingEnabled(True) + # set up sort buttons + self.sort_by_author.setCheckable(True) + self.sort_by_author.setChecked(False) + self.sort_by_author.clicked.connect(self.do_sort_by_author) + self.author_order = 1 + self.table.sortByColumn(1, Qt.AscendingOrder) + self.sort_by_author_sort.clicked.connect(self.do_sort_by_author_sort) + self.sort_by_author_sort.setCheckable(True) + self.sort_by_author_sort.setChecked(True) + self.author_sort_order = 1 + + # set up author sort calc button + self.recalc_author_sort.clicked.connect(self.do_recalc_author_sort) + if select_item is not None: self.table.setCurrentItem(select_item) self.table.editItem(select_item) else: self.table.setCurrentCell(0, 0) + def do_sort_by_author(self): + self.author_order = 1 if self.author_order == 0 else 0 + self.table.sortByColumn(0, self.author_order) + self.sort_by_author.setChecked(True) + self.sort_by_author_sort.setChecked(False) + + def do_sort_by_author_sort(self): + self.author_sort_order = 1 if self.author_sort_order == 0 else 0 + self.table.sortByColumn(1, self.author_sort_order) + self.sort_by_author.setChecked(False) + self.sort_by_author_sort.setChecked(True) + def accepted(self): self.result = [] for row in range(0,self.table.rowCount()): @@ -69,6 +94,17 @@ class EditAuthorsDialog(QDialog, Ui_EditAuthorsDialog): if orig_aut != aut or orig_sort != sort: self.result.append((id, orig_aut, aut, sort)) + def do_recalc_author_sort(self): + self.table.cellChanged.disconnect() + for row in range(0,self.table.rowCount()): + item = self.table.item(row, 0) + aut = unicode(item.text()).strip() + c = self.table.item(row, 1) + # Sometimes trailing commas are left by changing between copy algs + c.setText(author_to_author_sort(aut).rstrip(',')) + self.table.setFocus(Qt.OtherFocusReason) + self.table.cellChanged.connect(self.cell_changed) + def cell_changed(self, row, col): if col == 0: item = self.table.item(row, 0) @@ -79,8 +115,4 @@ class EditAuthorsDialog(QDialog, Ui_EditAuthorsDialog): else: item = self.table.item(row, 1) self.table.setCurrentItem(item) - # disable and reenable sorting to force the sort now, so we can scroll - # to the item after it moves - self.table.setSortingEnabled(False) - self.table.setSortingEnabled(True) self.table.scrollToItem(item) diff --git a/src/calibre/gui2/dialogs/edit_authors_dialog.ui b/src/calibre/gui2/dialogs/edit_authors_dialog.ui index d124f1498d..6518e6a1b0 100644 --- a/src/calibre/gui2/dialogs/edit_authors_dialog.ui +++ b/src/calibre/gui2/dialogs/edit_authors_dialog.ui @@ -6,7 +6,7 @@ 0 0 - 730 + 768 342 @@ -34,17 +34,64 @@ - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - true - - + + + + + Sort by author + + + + + + + Sort by author sort + + + + + + + Reset all the author sort values to a value automatically generated from the author. Exactly how this value is automatically generated can be controlled via Preferences->Advanced->Tweaks + + + Recalculate all author sort values + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + false + + + + diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index 9fcfe13253..fc0a0c5840 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -3,14 +3,101 @@ __copyright__ = '2008, Kovid Goyal ' '''Dialog to edit metadata in bulk''' -from PyQt4.QtCore import SIGNAL, QObject -from PyQt4.QtGui import QDialog, QGridLayout +from threading import Thread + +from PyQt4.Qt import QDialog, QGridLayout from calibre.gui2.dialogs.metadata_bulk_ui import Ui_MetadataBulkDialog from calibre.gui2.dialogs.tag_editor import TagEditor from calibre.ebooks.metadata import string_to_authors, \ authors_to_string from calibre.gui2.custom_column_widgets import populate_metadata_page +from calibre.gui2.dialogs.progress import BlockingBusy +from calibre.gui2 import error_dialog, Dispatcher + +class Worker(Thread): + + def __init__(self, args, db, ids, cc_widgets, callback): + Thread.__init__(self) + self.args = args + self.db = db + self.ids = ids + self.error = None + self.callback = callback + self.cc_widgets = cc_widgets + + def doit(self): + remove, add, au, aus, do_aus, rating, pub, do_series, \ + do_autonumber, do_remove_format, remove_format, do_swap_ta, \ + do_remove_conv, do_auto_author, series = self.args + + # first loop: do author and title. These will commit at the end of each + # operation, because each operation modifies the file system. We want to + # try hard to keep the DB and the file system in sync, even in the face + # of exceptions or forced exits. + for id in self.ids: + if do_swap_ta: + title = self.db.title(id, index_is_id=True) + aum = self.db.authors(id, index_is_id=True) + if aum: + aum = [a.strip().replace('|', ',') for a in aum.split(',')] + new_title = authors_to_string(aum) + self.db.set_title(id, new_title, notify=False) + if title: + new_authors = string_to_authors(title) + self.db.set_authors(id, new_authors, notify=False) + + if au: + self.db.set_authors(id, string_to_authors(au), notify=False) + + # All of these just affect the DB, so we can tolerate a total rollback + for id in self.ids: + if do_auto_author: + x = self.db.author_sort_from_book(id, index_is_id=True) + if x: + self.db.set_author_sort(id, x, notify=False, commit=False) + + if aus and do_aus: + self.db.set_author_sort(id, aus, notify=False, commit=False) + + if rating != -1: + self.db.set_rating(id, 2*rating, notify=False, commit=False) + + if pub: + self.db.set_publisher(id, pub, notify=False, commit=False) + + if do_series: + next = self.db.get_next_series_num_for(series) + self.db.set_series(id, series, notify=False, commit=False) + num = next if do_autonumber and series else 1.0 + self.db.set_series_index(id, num, notify=False, commit=False) + + if do_remove_format: + self.db.remove_format(id, remove_format, index_is_id=True, notify=False, commit=False) + + if do_remove_conv: + self.db.delete_conversion_options(id, 'PIPE', commit=False) + self.db.commit() + + for w in self.cc_widgets: + w.commit(self.ids) + self.db.bulk_modify_tags(self.ids, add=add, remove=remove, + notify=False) + self.db.clean() + + def run(self): + try: + self.doit() + except Exception, err: + import traceback + try: + err = unicode(err) + except: + err = repr(err) + self.error = (err, traceback.format_exc()) + + self.callback() + class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): @@ -25,10 +112,10 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): len(rows)) self.write_series = False self.changed = False - QObject.connect(self.button_box, SIGNAL("accepted()"), self.sync) - self.tags.update_tags_cache(self.db.all_tags()) - self.remove_tags.update_tags_cache(self.db.all_tags()) + all_tags = self.db.all_tags() + self.tags.update_tags_cache(all_tags) + self.remove_tags.update_tags_cache(all_tags) self.initialize_combos() @@ -37,9 +124,9 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): self.remove_format.setCurrentIndex(-1) - QObject.connect(self.series, SIGNAL('currentIndexChanged(int)'), self.series_changed) - QObject.connect(self.series, SIGNAL('editTextChanged(QString)'), self.series_changed) - QObject.connect(self.tag_editor_button, SIGNAL('clicked()'), self.tag_editor) + self.series.currentIndexChanged[int].connect(self.series_changed) + self.series.editTextChanged.connect(self.series_changed) + self.tag_editor_button.clicked.connect(self.tag_editor) if len(db.custom_column_label_map) == 0: self.central_widget.tabBar().setVisible(False) else: @@ -93,7 +180,7 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): self.publisher.addItem(name) self.publisher.setEditText('') - def tag_editor(self): + def tag_editor(self, *args): d = TagEditor(self, self.db, None) d.exec_() if d.result() == QDialog.Accepted: @@ -102,61 +189,51 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): self.tags.update_tags_cache(self.db.all_tags()) self.remove_tags.update_tags_cache(self.db.all_tags()) - def sync(self): - for id in self.ids: - au = unicode(self.authors.text()) - if au: - au = string_to_authors(au) - self.db.set_authors(id, au, notify=False) - if self.auto_author_sort.isChecked(): - x = self.db.author_sort_from_book(id, index_is_id=True) - if x: - self.db.set_author_sort(id, x, notify=False) - aus = unicode(self.author_sort.text()) - if aus and self.author_sort.isEnabled(): - self.db.set_author_sort(id, aus, notify=False) - if self.rating.value() != -1: - self.db.set_rating(id, 2*self.rating.value(), notify=False) - pub = unicode(self.publisher.text()) - if pub: - self.db.set_publisher(id, pub, notify=False) - remove_tags = unicode(self.remove_tags.text()).strip() - if remove_tags: - remove_tags = [i.strip() for i in remove_tags.split(',')] - self.db.unapply_tags(id, remove_tags, notify=False) - tags = unicode(self.tags.text()).strip() - if tags: - tags = map(lambda x: x.strip(), tags.split(',')) - self.db.set_tags(id, tags, append=True, notify=False) - if self.write_series: - series = unicode(self.series.currentText()).strip() - next = self.db.get_next_series_num_for(series) - self.db.set_series(id, series, notify=False) - num = next if self.autonumber_series.isChecked() and series else 1.0 - self.db.set_series_index(id, num, notify=False) + def accept(self): + if len(self.ids) < 1: + return QDialog.accept(self) - if self.remove_format.currentIndex() > -1: - self.db.remove_format(id, unicode(self.remove_format.currentText()), index_is_id=True, notify=False) - - if self.swap_title_and_author.isChecked(): - title = self.db.title(id, index_is_id=True) - aum = self.db.authors(id, index_is_id=True) - if aum: - aum = [a.strip().replace('|', ',') for a in aum.split(',')] - new_title = authors_to_string(aum) - self.db.set_title(id, new_title, notify=False) - if title: - new_authors = string_to_authors(title) - self.db.set_authors(id, new_authors, notify=False) - - if self.remove_conversion_settings.isChecked(): - self.db.delete_conversion_options(id, 'PIPE') - - self.changed = True + self.changed = bool(self.ids) + # Cache values from GUI so that Qt widgets are not used in + # non GUI thread for w in getattr(self, 'custom_column_widgets', []): - w.commit(self.ids) + w.gui_val + + remove = unicode(self.remove_tags.text()).strip().split(',') + add = unicode(self.tags.text()).strip().split(',') + au = unicode(self.authors.text()) + aus = unicode(self.author_sort.text()) + do_aus = self.author_sort.isEnabled() + rating = self.rating.value() + pub = unicode(self.publisher.text()) + do_series = self.write_series + series = unicode(self.series.currentText()).strip() + do_autonumber = self.autonumber_series.isChecked() + do_remove_format = self.remove_format.currentIndex() > -1 + remove_format = unicode(self.remove_format.currentText()) + do_swap_ta = self.swap_title_and_author.isChecked() + do_remove_conv = self.remove_conversion_settings.isChecked() + do_auto_author = self.auto_author_sort.isChecked() + + args = (remove, add, au, aus, do_aus, rating, pub, do_series, + do_autonumber, do_remove_format, remove_format, do_swap_ta, + do_remove_conv, do_auto_author, series) + + bb = BlockingBusy(_('Applying changes to %d books. This may take a while.') + %len(self.ids), parent=self) + self.worker = Worker(args, self.db, self.ids, + getattr(self, 'custom_column_widgets', []), + Dispatcher(bb.accept, parent=bb)) + self.worker.start() + bb.exec_() + + if self.worker.error is not None: + return error_dialog(self, _('Failed'), + self.worker.error[0], det_msg=self.worker.error[1], + show=True) + return QDialog.accept(self) - def series_changed(self): + def series_changed(self, *args): self.write_series = True diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py index fd5e6b049d..3e07422967 100644 --- a/src/calibre/gui2/dialogs/metadata_single.py +++ b/src/calibre/gui2/dialogs/metadata_single.py @@ -12,7 +12,7 @@ import time import traceback from PyQt4.Qt import SIGNAL, QObject, Qt, QTimer, QThread, QDate, \ - QPixmap, QListWidgetItem, QDialog + QPixmap, QListWidgetItem, QDialog, pyqtSignal from calibre.gui2 import error_dialog, file_icon_provider, dynamic, \ choose_files, choose_images, ResizableDialog, \ @@ -24,8 +24,9 @@ from calibre.gui2.widgets import ProgressIndicator from calibre.ebooks import BOOK_EXTENSIONS from calibre.ebooks.metadata import string_to_authors, \ authors_to_string, check_isbn -from calibre.ebooks.metadata.library_thing import cover_from_isbn +from calibre.ebooks.metadata.covers import download_cover from calibre.ebooks.metadata.meta import get_metadata +from calibre.ebooks.metadata import MetaInformation from calibre.utils.config import prefs, tweaks from calibre.utils.date import qt_to_dt, local_tz, utcfromtimestamp from calibre.customize.ui import run_plugins_on_import, get_isbndb_key @@ -48,12 +49,13 @@ class CoverFetcher(QThread): def run(self): try: + au = self.author if self.author else None + mi = MetaInformation(self.title, [au]) if not self.isbn: from calibre.ebooks.metadata.fetch import search if not self.title: self.needs_isbn = True return - au = self.author if self.author else None key = get_isbndb_key() if not key: key = None @@ -66,8 +68,10 @@ class CoverFetcher(QThread): return self.isbn = results[0] - self.cover_data = cover_from_isbn(self.isbn, timeout=self.timeout, - username=self.username, password=self.password)[0] + mi.isbn = self.isbn + + self.cover_data, self.errors = download_cover(mi, + timeout=self.timeout) except Exception, e: self.exception = e self.traceback = traceback.format_exc() @@ -95,6 +99,7 @@ class Format(QListWidgetItem): class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): COVER_FETCH_TIMEOUT = 240 # seconds + view_format = pyqtSignal(object) def do_reset_cover(self, *args): pix = QPixmap(I('default_cover.svg')) @@ -138,6 +143,21 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.cpixmap = pix self.cover_data = cover + def generate_cover(self, *args): + from calibre.utils.magick.draw import create_cover_page, TextLine + title = unicode(self.title.text()).strip() + author = unicode(self.authors.text()).strip() + if not title or not author: + return error_dialog(self, _('Specify title and author'), + _('You must specify a title and author before generating ' + 'a cover'), show=True) + lines = [TextLine(title, 44), TextLine(author, 32)] + self.cover_data = create_cover_page(lines, I('library.png')) + pix = QPixmap() + pix.loadFromData(self.cover_data) + self.cover.setPixmap(pix) + self.cover_changed = True + self.cpixmap = pix def add_format(self, x): files = choose_files(self, 'add formats dialog', @@ -421,6 +441,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.central_widget.tabBar().setVisible(False) else: self.create_custom_column_editors() + self.generate_cover_button.clicked.connect(self.generate_cover) def create_custom_column_editors(self): w = self.central_widget.widget(1) @@ -454,7 +475,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): def show_format(self, item, *args): fmt = item.ext - self.emit(SIGNAL('view_format(PyQt_PyObject)'), fmt) + self.view_format.emit(fmt) def deduce_author_sort(self): au = unicode(self.authors.text()) @@ -576,6 +597,13 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): error_dialog(self, _('Cannot fetch cover'), _('Could not fetch cover.
')+unicode(err)).exec_() return + if self.cover_fetcher.errors and self.cover_fetcher.cover_data is None: + details = u'\n\n'.join([e[-1] + ': ' + e[1] for e in self.cover_fetcher.errors]) + error_dialog(self, _('Cannot fetch cover'), + _('Could not fetch cover.
') + + _('For the error message from each cover source, ' + 'click Show details below.'), det_msg=details, show=True) + return pix = QPixmap() pix.loadFromData(self.cover_fetcher.cover_data) @@ -640,9 +668,9 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): 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) + 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, ' @@ -677,6 +705,10 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): def accept(self): + cf = getattr(self, 'cover_fetcher', None) + if cf is not None and hasattr(cf, 'terminate'): + cf.terminate() + cf.wait() try: if self.formats_changed: self.sync_formats() @@ -687,24 +719,31 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.db.set_authors(self.id, string_to_authors(au), notify=False) aus = unicode(self.author_sort.text()) if aus: - self.db.set_author_sort(self.id, aus, notify=False) + self.db.set_author_sort(self.id, aus, notify=False, commit=False) self.db.set_isbn(self.id, - 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, unicode(self.publisher.currentText()), notify=False) + re.sub(r'[^0-9a-zA-Z]', '', unicode(self.isbn.text())), + notify=False, commit=False) + self.db.set_rating(self.id, 2*self.rating.value(), notify=False, + commit=False) + self.db.set_publisher(self.id, unicode(self.publisher.currentText()), + notify=False, commit=False) self.db.set_tags(self.id, [x.strip() for x in - unicode(self.tags.text()).split(',')], notify=False) + unicode(self.tags.text()).split(',')], notify=False, commit=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, unicode(self.comments.toPlainText()), notify=False) + unicode(self.series.currentText()).strip(), notify=False, + commit=False) + self.db.set_series_index(self.id, self.series_index.value(), + notify=False, commit=False) + self.db.set_comment(self.id, unicode(self.comments.toPlainText()), + notify=False, commit=False) d = self.pubdate.date() d = qt_to_dt(d) - self.db.set_pubdate(self.id, d, notify=False) + self.db.set_pubdate(self.id, d, notify=False, commit=False) d = self.date.date() d = qt_to_dt(d) if d.date() != self.orig_timestamp.date(): - self.db.set_timestamp(self.id, d, notify=False) + self.db.set_timestamp(self.id, d, notify=False, commit=False) + self.db.commit() if self.cover_changed: if self.cover_data is not None: @@ -713,6 +752,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.db.remove_cover(self.id) for w in getattr(self, 'custom_column_widgets', []): w.commit(self.id) + self.db.commit() except IOError, err: if err.errno == 13: # Permission denied fname = err.filename if err.filename else 'file' @@ -737,9 +777,9 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): wg = dynamic.get('metasingle_window_geometry', None) ss = dynamic.get('metasingle_splitter_state', None) if wg is not None: - self.restoreGeometry(wg) + self.restoreGeometry(wg) if ss is not None: - self.splitter.restoreState(ss) + self.splitter.restoreState(ss) def save_state(self): dynamic.set('metasingle_window_geometry', bytes(self.saveGeometry())) diff --git a/src/calibre/gui2/dialogs/metadata_single.ui b/src/calibre/gui2/dialogs/metadata_single.ui index 5da9d37d04..19ae89bfba 100644 --- a/src/calibre/gui2/dialogs/metadata_single.ui +++ b/src/calibre/gui2/dialogs/metadata_single.ui @@ -653,6 +653,16 @@ + + + + Generate a default cover based on the title and author + + + &Generate cover + + + @@ -736,15 +746,17 @@ fetch_metadata_button add_format_button remove_format_button + button_set_cover + button_set_metadata + formats cover_path cover_button reset_cover fetch_cover_button - button_set_cover - formats - button_set_metadata - button_box + generate_cover_button scrollArea + central_widget + button_box diff --git a/src/calibre/gui2/dialogs/progress.py b/src/calibre/gui2/dialogs/progress.py index 91f6edd252..553ee4b03b 100644 --- a/src/calibre/gui2/dialogs/progress.py +++ b/src/calibre/gui2/dialogs/progress.py @@ -5,13 +5,17 @@ __docformat__ = 'restructuredtext en' '''''' -from PyQt4.Qt import QDialog, SIGNAL, Qt +from PyQt4.Qt import QDialog, pyqtSignal, Qt, QVBoxLayout, QLabel, QFont from calibre.gui2.dialogs.progress_ui import Ui_Dialog +from calibre.gui2.progress_indicator import ProgressIndicator class ProgressDialog(QDialog, Ui_Dialog): - def __init__(self, title, msg='', min=0, max=99, parent=None): + canceled_signal = pyqtSignal() + + def __init__(self, title, msg='', min=0, max=99, parent=None, + cancelable=True): QDialog.__init__(self, parent) self.setupUi(self) self.setWindowTitle(title) @@ -23,7 +27,10 @@ class ProgressDialog(QDialog, Ui_Dialog): self.bar.setValue(min) self.canceled = False - self.connect(self.button_box, SIGNAL('rejected()'), self._canceled) + self.button_box.rejected.connect(self._canceled) + if not cancelable: + self.button_box.setVisible(False) + self.cancelable = cancelable def set_msg(self, msg=''): self.message.setText(msg) @@ -50,10 +57,50 @@ class ProgressDialog(QDialog, Ui_Dialog): self.canceled = True self.button_box.setDisabled(True) self.title.setText(_('Aborting...')) - self.emit(SIGNAL('canceled()')) + self.canceled_signal.emit() + + def reject(self): + if not self.cancelable: + return + QDialog.reject(self) def keyPressEvent(self, ev): if ev.key() == Qt.Key_Escape: - self._canceled() + if self.cancelable: + self._canceled() else: QDialog.keyPressEvent(self, ev) + +class BlockingBusy(QDialog): + + def __init__(self, msg, parent=None, window_title=_('Working')): + QDialog.__init__(self, parent) + + self._layout = QVBoxLayout() + self.setLayout(self._layout) + self.msg = QLabel(msg) + #self.msg.setWordWrap(True) + self.font = QFont() + self.font.setPointSize(self.font.pointSize() + 8) + self.msg.setFont(self.font) + self.pi = ProgressIndicator(self) + self.pi.setDisplaySize(100) + self._layout.addWidget(self.pi, 0, Qt.AlignHCenter) + self._layout.addSpacing(15) + self._layout.addWidget(self.msg, 0, Qt.AlignHCenter) + self.start() + self.setWindowTitle(window_title) + self.resize(self.sizeHint()) + + def start(self): + self.pi.startAnimation() + + def stop(self): + self.pi.stopAnimation() + + def accept(self): + self.stop() + return QDialog.accept(self) + + def reject(self): + pass # Cannot cancel this dialog diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index a3ae5b77aa..73de77b13b 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -7,7 +7,7 @@ __docformat__ = 'restructuredtext en' import functools, sys, os -from PyQt4.Qt import QMenu, Qt, QStackedWidget, \ +from PyQt4.Qt import Qt, QStackedWidget, QMenu, \ QSize, QSizePolicy, QStatusBar, QLabel, QFont from calibre.utils.config import prefs @@ -27,69 +27,35 @@ def partial(*args, **kwargs): _keep_refs.append(ans) return ans +LIBRARY_CONTEXT_MENU = ( + 'Edit Metadata', 'Send To Device', 'Save To Disk', 'Connect Share', None, + 'Convert Books', 'View', 'Open Folder', 'Show Book Details', None, + 'Remove Books', + ) + +DEVICE_CONTEXT_MENU = ('View', 'Save To Disk', None, 'Remove Books', None, + 'Add To Library', 'Edit Collections', + ) + class LibraryViewMixin(object): # {{{ def __init__(self, db): - similar_menu = QMenu(_('Similar books...')) - similar_menu.addAction(self.action_books_by_same_author) - similar_menu.addAction(self.action_books_in_this_series) - similar_menu.addAction(self.action_books_with_the_same_tags) - similar_menu.addAction(self.action_books_by_this_publisher) - self.action_books_by_same_author.setShortcut(Qt.ALT + Qt.Key_A) - self.action_books_in_this_series.setShortcut(Qt.ALT + Qt.Key_S) - self.action_books_by_this_publisher.setShortcut(Qt.ALT + Qt.Key_P) - self.action_books_with_the_same_tags.setShortcut(Qt.ALT+Qt.Key_T) - self.addAction(self.action_books_by_same_author) - self.addAction(self.action_books_by_this_publisher) - self.addAction(self.action_books_in_this_series) - self.addAction(self.action_books_with_the_same_tags) - self.similar_menu = similar_menu - self.action_books_by_same_author.triggered.connect( - partial(self.show_similar_books, 'authors')) - self.action_books_in_this_series.triggered.connect( - partial(self.show_similar_books, 'series')) - self.action_books_with_the_same_tags.triggered.connect( - partial(self.show_similar_books, 'tag')) - self.action_books_by_this_publisher.triggered.connect( - partial(self.show_similar_books, 'publisher')) + lm = QMenu(self) + def populate_menu(m, items): + for what in items: + if what is None: + m.addSeparator() + elif what in self.iactions: + m.addAction(self.iactions[what].qaction) + populate_menu(lm, LIBRARY_CONTEXT_MENU) + dm = QMenu(self) + populate_menu(dm, DEVICE_CONTEXT_MENU) + ec = self.iactions['Edit Collections'].qaction + self.library_view.set_context_menu(lm, ec) + for v in (self.memory_view, self.card_a_view, self.card_b_view): + v.set_context_menu(dm, ec) - self.library_view.set_context_menu(self.action_edit, self.action_sync, - self.action_convert, self.action_view, - self.action_save, - self.action_open_containing_folder, - self.action_show_book_details, - self.action_del, - self.action_conn_share, - add_to_library = None, - edit_device_collections=None, - similar_menu=similar_menu) - add_to_library = (_('Add books to library'), self.add_books_from_device) - - edit_device_collections = (_('Manage collections'), - partial(self.edit_device_collections, oncard=None)) - self.memory_view.set_context_menu(None, None, None, - self.action_view, self.action_save, None, None, - self.action_del, None, - add_to_library=add_to_library, - edit_device_collections=edit_device_collections) - - edit_device_collections = (_('Manage collections'), - partial(self.edit_device_collections, oncard='carda')) - self.card_a_view.set_context_menu(None, None, None, - self.action_view, self.action_save, None, None, - self.action_del, None, - add_to_library=add_to_library, - edit_device_collections=edit_device_collections) - - edit_device_collections = (_('Manage collections'), - partial(self.edit_device_collections, oncard='cardb')) - self.card_b_view.set_context_menu(None, None, None, - self.action_view, self.action_save, None, None, - self.action_del, None, - add_to_library=add_to_library, - edit_device_collections=edit_device_collections) - - self.library_view.files_dropped.connect(self.files_dropped, type=Qt.QueuedConnection) + self.library_view.files_dropped.connect(self.iactions['Add Books'].files_dropped, type=Qt.QueuedConnection) for func, args in [ ('connect_to_search_box', (self.search, self.search_done)), @@ -116,37 +82,10 @@ class LibraryViewMixin(object): # {{{ for view in ('library', 'memory', 'card_a', 'card_b'): view = getattr(self, view+'_view') - view.verticalHeader().sectionDoubleClicked.connect(self.view_specific_book) + view.verticalHeader().sectionDoubleClicked.connect(self.iactions['View'].view_specific_book) - def show_similar_books(self, type, *args): - search, join = [], ' ' - idx = self.library_view.currentIndex() - if not idx.isValid(): - return - row = idx.row() - if type == 'series': - series = idx.model().db.series(row) - if series: - search = ['series:"'+series+'"'] - elif type == 'publisher': - publisher = idx.model().db.publisher(row) - if publisher: - search = ['publisher:"'+publisher+'"'] - elif type == 'tag': - tags = idx.model().db.tags(row) - if tags: - search = ['tag:"='+t+'"' for t in tags.split(',')] - elif type in ('author', 'authors'): - authors = idx.model().db.authors(row) - if authors: - search = ['author:"='+a.strip().replace('|', ',')+'"' \ - for a in authors.split(',')] - join = ' or ' - if search: - self.search.set_search_string(join.join(search)) - def search_done(self, view, ok): if view is self.current_view(): self.search.search_done(ok) @@ -166,7 +105,8 @@ class LibraryWidget(Splitter): # {{{ I('cover_flow.svg'), orientation=orientation, parent=parent, connect_button=not config['separate_cover_flow'], - side_index=idx, initial_side_size=size, initial_show=False) + side_index=idx, initial_side_size=size, initial_show=False, + shortcut=_('Shift+Alt+B')) parent.library_view = BooksView(parent) parent.library_view.setObjectName('library_view') self.addWidget(parent.library_view) @@ -181,7 +121,8 @@ class Stack(QStackedWidget): # {{{ self.tb_widget = TagBrowserWidget(parent) parent.tb_splitter = Splitter('tag_browser_splitter', _('Tag Browser'), I('tags.svg'), - parent=parent, side_index=0, initial_side_size=200) + parent=parent, side_index=0, initial_side_size=200, + shortcut=_('Shift+Alt+T')) parent.tb_splitter.addWidget(self.tb_widget) parent.tb_splitter.addWidget(parent.cb_splitter) parent.tb_splitter.setCollapsible(parent.tb_splitter.other_index, False) @@ -274,7 +215,8 @@ class LayoutMixin(object): # {{{ self.stack = Stack(self) self.bd_splitter = Splitter('book_details_splitter', _('Book Details'), I('book.svg'), - orientation=Qt.Vertical, parent=self, side_index=1) + orientation=Qt.Vertical, parent=self, side_index=1, + shortcut=_('Alt+D')) self.bd_splitter.addWidget(self.stack) self.bd_splitter.addWidget(self.book_details) self.bd_splitter.setCollapsible(self.bd_splitter.other_index, False) @@ -283,7 +225,8 @@ class LayoutMixin(object): # {{{ else: # wide {{{ self.bd_splitter = Splitter('book_details_splitter', _('Book Details'), I('book.svg'), initial_side_size=200, - orientation=Qt.Horizontal, parent=self, side_index=1) + orientation=Qt.Horizontal, parent=self, side_index=1, + shortcut=_('Shift+Alt+D')) self.stack = Stack(self) self.bd_splitter.addWidget(self.stack) self.book_details = BookDetails(True, self) @@ -304,10 +247,10 @@ class LayoutMixin(object): # {{{ def finalize_layout(self): self.status_bar.initialize(self.system_tray_icon) - self.book_details.show_book_info.connect(self.show_book_info) - self.book_details.files_dropped.connect(self.files_dropped_on_book) - self.book_details.open_containing_folder.connect(self.view_folder_for_id) - self.book_details.view_specific_format.connect(self.view_format_by_id) + self.book_details.show_book_info.connect(self.iactions['Show Book Details'].show_book_info) + self.book_details.files_dropped.connect(self.iactions['Add Books'].files_dropped_on_book) + self.book_details.open_containing_folder.connect(self.iactions['View'].view_folder_for_id) + self.book_details.view_specific_format.connect(self.iactions['View'].view_format_by_id) m = self.library_view.model() if m.rowCount(None) > 0: diff --git a/src/calibre/gui2/jobs.py b/src/calibre/gui2/jobs.py index d512409d25..fd23234c8a 100644 --- a/src/calibre/gui2/jobs.py +++ b/src/calibre/gui2/jobs.py @@ -14,7 +14,8 @@ from Queue import Empty, Queue from PyQt4.Qt import QAbstractTableModel, QVariant, QModelIndex, Qt, \ QTimer, pyqtSignal, QIcon, QDialog, QAbstractItemDelegate, QApplication, \ QSize, QStyleOptionProgressBarV2, QString, QStyle, QToolTip, QFrame, \ - QHBoxLayout, QVBoxLayout, QSizePolicy, QLabel, QCoreApplication + QHBoxLayout, QVBoxLayout, QSizePolicy, QLabel, QCoreApplication, QAction, \ + QByteArray from calibre.utils.ipc.server import Server from calibre.utils.ipc.job import ParallelJob @@ -175,6 +176,7 @@ class JobManager(QAbstractTableModel): self.jobs.append(job) self.jobs.sort() self.job_added.emit(len(self.unfinished_jobs())) + self.layoutChanged.emit() def done_jobs(self): return [j for j in self.jobs if j.is_finished] @@ -198,8 +200,9 @@ class JobManager(QAbstractTableModel): return False def run_job(self, done, name, args=[], kwargs={}, - description=''): + description='', core_usage=1): job = ParallelJob(name, description, done, args=args, kwargs=kwargs) + job.core_usage = core_usage self.add_job(job) self.server.add_job(job) return job @@ -279,6 +282,7 @@ class JobsButton(QFrame): self.pi = ProgressIndicator(self, size) self._jobs = QLabel(''+_('Jobs:')+' 0') self._jobs.mouseReleaseEvent = self.mouseReleaseEvent + self.shortcut = _('Shift+Alt+J') if horizontal: self.setLayout(QHBoxLayout()) @@ -295,15 +299,24 @@ class JobsButton(QFrame): self.layout().setMargin(0) self._jobs.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.setCursor(Qt.PointingHandCursor) - self.setToolTip(_('Click to see list of active jobs.')) + b = _('Click to see list of jobs') + self.setToolTip(b + u' (%s)'%self.shortcut) + self.action_toggle = QAction(b, parent) + parent.addAction(self.action_toggle) + self.action_toggle.setShortcut(self.shortcut) + self.action_toggle.triggered.connect(self.toggle) def initialize(self, jobs_dialog, job_manager): self.jobs_dialog = jobs_dialog job_manager.job_added.connect(self.job_added) job_manager.job_done.connect(self.job_done) + self.jobs_dialog.addAction(self.action_toggle) def mouseReleaseEvent(self, event): + self.toggle() + + def toggle(self, *args): if self.jobs_dialog.isVisible(): self.jobs_dialog.hide() else: @@ -363,12 +376,26 @@ class JobsDialog(QDialog, Ui_JobsDialog): self.jobs_view.setItemDelegateForColumn(2, self.pb_delegate) self.jobs_view.doubleClicked.connect(self.show_job_details) self.jobs_view.horizontalHeader().setMovable(True) - state = gprefs.get('jobs view column layout', None) - if state is not None: - try: - self.jobs_view.horizontalHeader().restoreState(bytes(state)) - except: - pass + self.restore_state() + + def restore_state(self): + try: + geom = gprefs.get('jobs_dialog_geometry', bytearray('')) + self.restoreGeometry(QByteArray(geom)) + state = gprefs.get('jobs view column layout', bytearray('')) + self.jobs_view.horizontalHeader().restoreState(QByteArray(state)) + except: + pass + + def save_state(self): + try: + state = bytearray(self.jobs_view.horizontalHeader().saveState()) + gprefs['jobs view column layout'] = state + geom = bytearray(self.saveGeometry()) + gprefs['jobs_dialog_geometry'] = geom + except: + pass + def show_job_details(self, index): row = index.row() @@ -392,9 +419,13 @@ class JobsDialog(QDialog, Ui_JobsDialog): self.model.kill_all_jobs() def closeEvent(self, e): - try: - state = bytearray(self.jobs_view.horizontalHeader().saveState()) - gprefs['jobs view column layout'] = state - except: - pass - e.accept() + self.save_state() + return QDialog.closeEvent(self, e) + + def show(self, *args): + self.restore_state() + return QDialog.show(self, *args) + + def hide(self, *args): + self.save_state() + return QDialog.hide(self, *args) diff --git a/src/calibre/gui2/layout.py b/src/calibre/gui2/layout.py index 012a9b5ce3..6c87fe9da3 100644 --- a/src/calibre/gui2/layout.py +++ b/src/calibre/gui2/layout.py @@ -5,42 +5,32 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' __docformat__ = 'restructuredtext en' -from operator import attrgetter from functools import partial -from PyQt4.Qt import QIcon, Qt, QWidget, QAction, QToolBar, QSize, \ +from PyQt4.Qt import QIcon, Qt, QWidget, QToolBar, QSize, \ pyqtSignal, QToolButton, \ QObject, QVBoxLayout, QSizePolicy, QLabel, QHBoxLayout, QActionGroup, \ - QMenu, QUrl + QMenu -from calibre.constants import __appname__, isosx +from calibre.constants import __appname__ from calibre.gui2.search_box import SearchBox2, SavedSearchBox from calibre.gui2.throbber import ThrobbingButton -from calibre.gui2 import config, open_url, gprefs +from calibre.gui2 import config, gprefs from calibre.gui2.widgets import ComboBoxWithHelp from calibre import human_readable -from calibre.utils.config import prefs -from calibre.ebooks import BOOK_EXTENSIONS -from calibre.gui2.dialogs.scheduler import Scheduler -from calibre.utils.smtp import config as email_config +TOOLBAR_NO_DEVICE = ( + 'Add Books', 'Edit Metadata', None, 'Convert Books', 'View', None, + 'Choose Library', 'Donate', None, 'Fetch News', 'Save To Disk', + 'Connect Share', None, 'Remove Books', None, 'Help', 'Preferences', + ) -class SaveMenu(QMenu): # {{{ - - save_fmt = pyqtSignal(object) - - def __init__(self, parent): - QMenu.__init__(self, _('Save single format to disk...'), parent) - for ext in sorted(BOOK_EXTENSIONS): - action = self.addAction(ext.upper()) - setattr(self, 'do_'+ext, partial(self.do, ext)) - action.triggered.connect( - getattr(self, 'do_'+ext)) - - def do(self, ext, *args): - self.save_fmt.emit(ext) - -# }}} +TOOLBAR_DEVICE = ( + 'Add Books', 'Edit Metadata', None, 'Convert Books', 'View', + 'Send To Device', None, None, 'Location Manager', None, None, + 'Fetch News', 'Save To Disk', 'Connect Share', None, + 'Remove Books', None, 'Help', 'Preferences', + ) class LocationManager(QObject): # {{{ @@ -221,8 +211,9 @@ class SearchBar(QWidget): # {{{ class ToolBar(QToolBar): # {{{ - def __init__(self, actions, donate, location_manager, parent=None): + def __init__(self, donate, location_manager, parent): QToolBar.__init__(self, parent) + self.gui = parent self.setContextMenuPolicy(Qt.PreventContextMenu) self.setMovable(False) self.setFloatable(False) @@ -232,7 +223,6 @@ class ToolBar(QToolBar): # {{{ self.donate = donate self.apply_settings() - self.all_actions = actions self.location_manager = location_manager self.location_manager.locations_changed.connect(self.build_bar) self.d_widget = QWidget() @@ -258,50 +248,30 @@ class ToolBar(QToolBar): # {{{ def build_bar(self): showing_device = self.location_manager.has_device - order_field = 'device' if showing_device else 'normal' - o = attrgetter(order_field+'_order') - sepvals = [2] if showing_device else [1] - sepvals += [3] - actions = [x for x in self.all_actions if o(x) > -1] - actions.sort(cmp=lambda x,y : cmp(o(x), o(y))) + actions = TOOLBAR_DEVICE if showing_device else TOOLBAR_NO_DEVICE + self.clear() + for what in actions: + if what is None: + self.addSeparator() + elif what == 'Location Manager': + for ac in self.location_manager.available_actions: + self.addAction(ac) + self.setup_tool_button(ac, QToolButton.MenuButtonPopup) + elif what == 'Donate' and config['show_donate_button']: + self.addWidget(self.d_widget) + elif what in self.gui.iactions: + action = self.gui.iactions[what] + self.addAction(action.qaction) + self.setup_tool_button(action.qaction, action.popup_type) - def setup_tool_button(ac): - ch = self.widgetForAction(ac) - ch.setCursor(Qt.PointingHandCursor) - ch.setAutoRaise(True) - if ac.menu() is not None: - name = getattr(ac, 'action_name', None) - ch.setPopupMode(ch.InstantPopup if name == 'conn_share' - else ch.MenuButtonPopup) - - for x in actions: - self.addAction(x) - setup_tool_button(x) - - if x.action_name == 'choose_library': - self.choose_action = x - if showing_device: - self.addSeparator() - for ac in self.location_manager.available_actions: - self.addAction(ac) - setup_tool_button(ac) - self.addSeparator() - self.location_manager.location_library.trigger() - elif config['show_donate_button']: - self.addWidget(self.d_widget) - - for x in actions: - if x.separator_before in sepvals: - self.insertSeparator(x) - - self.choose_action.setVisible(not showing_device) - - def count_changed(self, new_count): - text = _('%d books')%new_count - a = self.choose_action - a.setText(text) + def setup_tool_button(self, ac, menu_mode=None): + ch = self.widgetForAction(ac) + ch.setCursor(Qt.PointingHandCursor) + ch.setAutoRaise(True) + if ac.menu() is not None and menu_mode is not None: + ch.setPopupMode(menu_mode) def resizeEvent(self, ev): QToolBar.resizeEvent(self, ev) @@ -320,69 +290,9 @@ class ToolBar(QToolBar): # {{{ # }}} -class Action(QAction): - pass - -class ShareConnMenu(QMenu): # {{{ - - connect_to_folder = pyqtSignal() - connect_to_itunes = pyqtSignal() - config_email = pyqtSignal() - - def __init__(self, parent=None): - QMenu.__init__(self, parent) - mitem = self.addAction(QIcon(I('devices/folder.svg')), _('Connect to folder')) - mitem.setEnabled(True) - mitem.triggered.connect(lambda x : self.connect_to_folder.emit()) - self.connect_to_folder_action = mitem - - mitem = self.addAction(QIcon(I('devices/itunes.png')), - _('Connect to iTunes')) - mitem.setEnabled(True) - mitem.triggered.connect(lambda x : self.connect_to_itunes.emit()) - self.connect_to_itunes_action = mitem - self.addSeparator() - self.email_actions = [] - - def build_email_entries(self, sync_menu): - from calibre.gui2.device import DeviceAction - for ac in self.email_actions: - self.removeAction(ac) - self.email_actions = [] - opts = email_config().parse() - if opts.accounts: - self.email_to_menu = QMenu(_('Email to')+'...', self) - keys = sorted(opts.accounts.keys()) - for account in keys: - formats, auto, default = opts.accounts[account] - dest = 'mail:'+account+';'+formats - action1 = DeviceAction(dest, False, False, I('mail.svg'), - _('Email to')+' '+account) - action2 = DeviceAction(dest, True, False, I('mail.svg'), - _('Email to')+' '+account+ _(' and delete from library')) - map(self.email_to_menu.addAction, (action1, action2)) - if default: - map(self.addAction, (action1, action2)) - map(self.email_actions.append, (action1, action2)) - self.email_to_menu.addSeparator() - action1.a_s.connect(sync_menu.action_triggered) - action2.a_s.connect(sync_menu.action_triggered) - ac = self.addMenu(self.email_to_menu) - self.email_actions.append(ac) - else: - ac = self.addAction(_('Setup email based sharing of books')) - self.email_actions.append(ac) - ac.triggered.connect(self.setup_email) - - def setup_email(self, *args): - self.config_email.emit() - -# }}} - class MainWindowMixin(object): def __init__(self, db): - self.device_connected = None self.setObjectName('MainWindow') self.setWindowIcon(QIcon(I('library.png'))) self.setWindowTitle(__appname__) @@ -396,219 +306,18 @@ class MainWindowMixin(object): self.donate_button = ThrobbingButton(self.centralwidget) self.location_manager = LocationManager(self) - self.init_scheduler(db) - all_actions = self.setup_actions() + self.iactions['Fetch News'].init_scheduler(db) self.search_bar = SearchBar(self) - self.tool_bar = ToolBar(all_actions, self.donate_button, + self.tool_bar = ToolBar(self.donate_button, self.location_manager, self) self.addToolBar(Qt.TopToolBarArea, self.tool_bar) - self.tool_bar.choose_action.triggered.connect(self.choose_library) l = self.centralwidget.layout() l.addWidget(self.search_bar) - def init_scheduler(self, db): - self.scheduler = Scheduler(self, db) - self.scheduler.start_recipe_fetch.connect( - self.download_scheduled_recipe, type=Qt.QueuedConnection) - - def read_toolbar_settings(self): - pass - - def choose_library(self, *args): - from calibre.gui2.dialogs.choose_library import ChooseLibrary - db = self.library_view.model().db - c = ChooseLibrary(db, self.library_moved, self) - c.exec_() - - def setup_actions(self): # {{{ - all_actions = [] - - def ac(normal_order, device_order, separator_before, - name, text, icon, shortcut=None, tooltip=None): - action = Action(QIcon(I(icon)), text, self) - action.normal_order = normal_order - action.device_order = device_order - action.separator_before = separator_before - action.action_name = name - text = tooltip if tooltip else text - action.setToolTip(text) - action.setStatusTip(text) - action.setWhatsThis(text) - action.setAutoRepeat(False) - action.setObjectName('action_'+name) - if shortcut: - action.setShortcut(shortcut) - setattr(self, 'action_'+name, action) - all_actions.append(action) - - ac(0, 0, 0, 'add', _('Add books'), 'add_book.svg', _('A')) - ac(1, 1, 0, 'edit', _('Edit metadata'), 'edit_input.svg', _('E')) - ac(2, 2, 3, 'convert', _('Convert books'), 'convert.svg', _('C')) - ac(3, 3, 0, 'view', _('View'), 'view.svg', _('V')) - ac(-1, 4, 0, 'sync', _('Send to device'), 'sync.svg') - ac(5, 5, 3, 'choose_library', _('%d books')%0, 'lt.png', - tooltip=_('Choose calibre library to work with')) - ac(6, 6, 3, 'news', _('Fetch news'), 'news.svg', _('F')) - ac(7, 7, 0, 'save', _('Save to disk'), 'save.svg', _('S')) - ac(8, 8, 0, 'conn_share', _('Connect/share'), 'connect_share.svg') - ac(9, 9, 3, 'del', _('Remove books'), 'trash.svg', _('Del')) - ac(10, 10, 3, 'help', _('Help'), 'help.svg', _('F1'), _("Browse the calibre User Manual")) - ac(11, 11, 0, 'preferences', _('Preferences'), 'config.svg', _('Ctrl+P')) - - ac(-1, -1, 0, 'merge', _('Merge book records'), 'merge_books.svg', _('M')) - ac(-1, -1, 0, 'open_containing_folder', _('Open containing folder'), - 'document_open.svg') - ac(-1, -1, 0, 'show_book_details', _('Show book details'), - 'dialog_information.svg') - ac(-1, -1, 0, 'books_by_same_author', _('Books by same author'), - 'user_profile.svg') - ac(-1, -1, 0, 'books_in_this_series', _('Books in this series'), - 'books_in_series.svg') - ac(-1, -1, 0, 'books_by_this_publisher', _('Books by this publisher'), - 'publisher.png') - ac(-1, -1, 0, 'books_with_the_same_tags', _('Books with the same tags'), - 'tags.svg') - - self.action_news.setMenu(self.scheduler.news_menu) - self.action_news.triggered.connect( - self.scheduler.show_dialog) - self.share_conn_menu = ShareConnMenu(self) - self.share_conn_menu.config_email.connect(partial(self.do_config, - initial_category='email')) - self.action_conn_share.setMenu(self.share_conn_menu) - - self.action_help.triggered.connect(self.show_help) - md = QMenu() - md.addAction(_('Edit metadata individually'), - partial(self.edit_metadata, False, bulk=False)) - md.addSeparator() - md.addAction(_('Edit metadata in bulk'), - partial(self.edit_metadata, False, bulk=True)) - md.addSeparator() - md.addAction(_('Download metadata and covers'), - partial(self.download_metadata, False, covers=True), - Qt.ControlModifier+Qt.Key_D) - md.addAction(_('Download only metadata'), - partial(self.download_metadata, False, covers=False)) - md.addAction(_('Download only covers'), - partial(self.download_metadata, False, covers=True, - set_metadata=False, set_social_metadata=False)) - md.addAction(_('Download only social metadata'), - partial(self.download_metadata, False, covers=False, - set_metadata=False, set_social_metadata=True)) - self.metadata_menu = md - - mb = QMenu() - mb.addAction(_('Merge into first selected book - delete others'), - self.merge_books) - mb.addSeparator() - mb.addAction(_('Merge into first selected book - keep others'), - partial(self.merge_books, safe_merge=True)) - self.merge_menu = mb - self.action_merge.setMenu(mb) - md.addSeparator() - md.addAction(self.action_merge) - - self.add_menu = QMenu() - self.add_menu.addAction(_('Add books from a single directory'), - self.add_books) - self.add_menu.addAction(_('Add books from directories, including ' - 'sub-directories (One book per directory, assumes every ebook ' - 'file is the same book in a different format)'), - self.add_recursive_single) - self.add_menu.addAction(_('Add books from directories, including ' - 'sub directories (Multiple books per directory, assumes every ' - 'ebook file is a different book)'), self.add_recursive_multiple) - self.add_menu.addAction(_('Add Empty book. (Book entry with no ' - 'formats)'), self.add_empty) - self.action_add.setMenu(self.add_menu) - self.action_add.triggered.connect(self.add_books) - self.action_del.triggered.connect(self.delete_books) - self.action_edit.triggered.connect(self.edit_metadata) - self.action_merge.triggered.connect(self.merge_books) - - self.action_save.triggered.connect(self.save_to_disk) - self.save_menu = QMenu() - self.save_menu.addAction(_('Save to disk'), partial(self.save_to_disk, - False)) - self.save_menu.addAction(_('Save to disk in a single directory'), - partial(self.save_to_single_dir, False)) - self.save_menu.addAction(_('Save only %s format to disk')% - prefs['output_format'].upper(), - partial(self.save_single_format_to_disk, False)) - self.save_menu.addAction( - _('Save only %s format to disk in a single directory')% - prefs['output_format'].upper(), - partial(self.save_single_fmt_to_single_dir, False)) - self.save_sub_menu = SaveMenu(self) - self.save_menu.addMenu(self.save_sub_menu) - self.save_sub_menu.save_fmt.connect(self.save_specific_format_disk) - - self.action_view.triggered.connect(self.view_book) - self.view_menu = QMenu() - self.view_menu.addAction(_('View'), partial(self.view_book, False)) - ac = self.view_menu.addAction(_('View specific format')) - ac.setShortcut((Qt.ControlModifier if isosx else Qt.AltModifier)+Qt.Key_V) - self.action_view.setMenu(self.view_menu) - ac.triggered.connect(self.view_specific_format, type=Qt.QueuedConnection) - - self.delete_menu = QMenu() - self.delete_menu.addAction(_('Remove selected books'), self.delete_books) - self.delete_menu.addAction( - _('Remove files of a specific format from selected books..'), - self.delete_selected_formats) - self.delete_menu.addAction( - _('Remove all formats from selected books, except...'), - self.delete_all_but_selected_formats) - self.delete_menu.addAction( - _('Remove covers from selected books'), self.delete_covers) - self.delete_menu.addSeparator() - self.delete_menu.addAction( - _('Remove matching books from device'), - self.remove_matching_books_from_device) - self.action_del.setMenu(self.delete_menu) - - self.action_open_containing_folder.setShortcut(Qt.Key_O) - self.addAction(self.action_open_containing_folder) - self.action_open_containing_folder.triggered.connect(self.view_folder) - self.action_sync.setShortcut(Qt.Key_D) - self.action_sync.setEnabled(True) - self.create_device_menu() - self.action_sync.triggered.connect( - self._sync_action_triggered) - - self.action_edit.setMenu(md) - self.action_save.setMenu(self.save_menu) - - cm = QMenu() - cm.addAction(_('Convert individually'), partial(self.convert_ebook, - False, bulk=False)) - cm.addAction(_('Bulk convert'), - partial(self.convert_ebook, False, bulk=True)) - cm.addSeparator() - ac = cm.addAction( - _('Create catalog of books in your calibre library')) - ac.triggered.connect(self.generate_catalog) - self.action_convert.setMenu(cm) - self.action_convert.triggered.connect(self.convert_ebook) - self.convert_menu = cm - - pm = QMenu() - pm.addAction(QIcon(I('config.svg')), _('Preferences'), self.do_config) - pm.addAction(QIcon(I('wizard.svg')), _('Run welcome wizard'), - self.run_wizard) - self.action_preferences.setMenu(pm) - self.preferences_menu = pm - for x in (self.preferences_action, self.action_preferences): - x.triggered.connect(self.do_config) - return all_actions - # }}} - - def show_help(self, *args): - open_url(QUrl('http://calibre-ebook.com/user_manual')) + diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index 7ccbc027f6..389208fdcd 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -389,37 +389,10 @@ class BooksView(QTableView): # {{{ #}}} # Context Menu {{{ - def set_context_menu(self, edit_metadata, send_to_device, convert, view, - save, open_folder, book_details, delete, conn_share, - similar_menu=None, add_to_library=None, - edit_device_collections=None): + def set_context_menu(self, menu, edit_collections_action): self.setContextMenuPolicy(Qt.DefaultContextMenu) - self.context_menu = QMenu(self) - if edit_metadata is not None: - self.context_menu.addAction(edit_metadata) - if send_to_device is not None: - self.context_menu.addAction(send_to_device) - if convert is not None: - self.context_menu.addAction(convert) - if conn_share is not None: - self.context_menu.addAction(conn_share) - self.context_menu.addAction(view) - self.context_menu.addAction(save) - if open_folder is not None: - self.context_menu.addAction(open_folder) - if delete is not None: - self.context_menu.addAction(delete) - if book_details is not None: - self.context_menu.addAction(book_details) - if similar_menu is not None: - self.context_menu.addMenu(similar_menu) - if add_to_library is not None: - func = partial(add_to_library[1], view=self) - self.context_menu.addAction(add_to_library[0], func) - if edit_device_collections is not None: - func = partial(edit_device_collections[1], view=self) - self.edit_collections_menu = \ - self.context_menu.addAction(edit_device_collections[0], func) + self.context_menu = menu + self.edit_collections_action = edit_collections_action def contextMenuEvent(self, event): self.context_menu.popup(event.globalPos()) @@ -528,10 +501,11 @@ class DeviceBooksView(BooksView): # {{{ self.setAcceptDrops(False) def contextMenuEvent(self, event): - self.edit_collections_menu.setVisible( - callable(getattr(self._model.db, 'supports_collections', None)) and \ + edit_collections = callable(getattr(self._model.db, 'supports_collections', None)) and \ self._model.db.supports_collections() and \ - prefs['manage_device_metadata'] == 'manual') + prefs['manage_device_metadata'] == 'manual' + + self.edit_collections_action.setVisible(edit_collections) self.context_menu.popup(event.globalPos()) event.accept() diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index ca896fc014..f9d7d80b24 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -155,7 +155,7 @@ class GuiRunner(QObject): main.initialize(self.library_path, self.db, self.listener, self.actions) if DEBUG: prints('Started up in', time.time() - self.startup_time) - add_filesystem_book = partial(main.add_filesystem_book, allow_device=False) + add_filesystem_book = partial(main.iactions['Add Books'].add_filesystem_book, allow_device=False) sys.excepthook = main.unhandled_exception if len(self.args) > 1: p = os.path.abspath(self.args[1]) diff --git a/src/calibre/gui2/metadata.py b/src/calibre/gui2/metadata.py index cd4cc1be41..c71f82c654 100644 --- a/src/calibre/gui2/metadata.py +++ b/src/calibre/gui2/metadata.py @@ -13,8 +13,10 @@ from Queue import Queue, Empty from calibre.ebooks.metadata.fetch import search, get_social_metadata from calibre.gui2 import config -from calibre.ebooks.metadata.library_thing import cover_from_isbn +from calibre.ebooks.metadata.covers import download_cover from calibre.customize.ui import get_isbndb_key +from calibre import prints +from calibre.constants import DEBUG class Worker(Thread): @@ -26,13 +28,15 @@ class Worker(Thread): def run(self): while True: - isbn = self.jobs.get() - if not isbn: + mi = self.jobs.get() + if not getattr(mi, 'isbn', False): break try: - cdata, _ = cover_from_isbn(isbn) + cdata, errors = download_cover(mi) if cdata: - self.results.put((isbn, cdata)) + self.results.put((mi.isbn, cdata)) + elif DEBUG: + prints('Cover download failed:', errors) except: traceback.print_exc() @@ -98,7 +102,7 @@ class DownloadMetadata(Thread): fmi = results[0] self.fetched_metadata[id] = fmi if fmi.isbn and self.get_covers: - self.worker.jobs.put(fmi.isbn) + self.worker.jobs.put(fmi) if (not config['overwrite_author_title_metadata']): fmi.authors = mi.authors fmi.author_sort = mi.author_sort diff --git a/src/calibre/gui2/progress_indicator/QProgressIndicator.cpp b/src/calibre/gui2/progress_indicator/QProgressIndicator.cpp index ce4e4364ad..095a4b9f68 100644 --- a/src/calibre/gui2/progress_indicator/QProgressIndicator.cpp +++ b/src/calibre/gui2/progress_indicator/QProgressIndicator.cpp @@ -1,124 +1,124 @@ -#include "QProgressIndicator.h" - -#include - -QProgressIndicator::QProgressIndicator(QWidget* parent, int size) - : QWidget(parent), - m_angle(0), - m_timerId(-1), - m_delay(80), - m_displayedWhenStopped(true), - m_displaySize(size), - m_color(Qt::black) -{ - setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - setFocusPolicy(Qt::NoFocus); -} - -bool QProgressIndicator::isAnimated () const -{ - return (m_timerId != -1); -} - -void QProgressIndicator::setDisplayedWhenStopped(bool state) -{ - m_displayedWhenStopped = state; - - update(); -} - -void QProgressIndicator::setDisplaySize(int size) -{ - m_displaySize = size; - update(); -} - - -bool QProgressIndicator::isDisplayedWhenStopped() const -{ - return m_displayedWhenStopped; -} - -void QProgressIndicator::startAnimation() -{ - m_angle = 0; - - if (m_timerId == -1) - m_timerId = startTimer(m_delay); -} - -void QProgressIndicator::stopAnimation() -{ - if (m_timerId != -1) - killTimer(m_timerId); - - m_timerId = -1; - - update(); -} - -void QProgressIndicator::setAnimationDelay(int delay) -{ - if (m_timerId != -1) - killTimer(m_timerId); - - m_delay = delay; - - if (m_timerId != -1) - m_timerId = startTimer(m_delay); -} - -void QProgressIndicator::setColor(const QColor & color) -{ - m_color = color; - - update(); -} - -QSize QProgressIndicator::sizeHint() const -{ - return QSize(m_displaySize, m_displaySize); -} - -int QProgressIndicator::heightForWidth(int w) const -{ - return w; -} - -void QProgressIndicator::timerEvent(QTimerEvent * /*event*/) -{ - m_angle = (m_angle+30)%360; - - update(); -} - -void QProgressIndicator::paintEvent(QPaintEvent * /*event*/) -{ - if (!m_displayedWhenStopped && !isAnimated()) - return; - - int width = qMin(this->width(), this->height()); - - QPainter p(this); - p.setRenderHint(QPainter::Antialiasing); - - int outerRadius = (width-1)*0.5; - int innerRadius = (width-1)*0.5*0.38; - - int capsuleHeight = outerRadius - innerRadius; - int capsuleWidth = (width > 32 ) ? capsuleHeight *.23 : capsuleHeight *.35; - int capsuleRadius = capsuleWidth/2; - - for (int i=0; i<12; i++) - { - QColor color = m_color; - color.setAlphaF(1.0f - (i/12.0f)); - p.setPen(Qt::NoPen); - p.setBrush(color); - p.save(); - p.translate(rect().center()); - p.rotate(m_angle - i*30.0f); - p.drawRoundedRect(-capsuleWidth*0.5, -(innerRadius+capsuleHeight), capsuleWidth, capsuleHeight, capsuleRadius, capsuleRadius); - p.restore(); - } -} +#include "QProgressIndicator.h" + +#include + +QProgressIndicator::QProgressIndicator(QWidget* parent, int size) + : QWidget(parent), + m_angle(0), + m_timerId(-1), + m_delay(80), + m_displayedWhenStopped(true), + m_displaySize(size), + m_color(Qt::black) +{ + setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + setFocusPolicy(Qt::NoFocus); +} + +bool QProgressIndicator::isAnimated () const +{ + return (m_timerId != -1); +} + +void QProgressIndicator::setDisplayedWhenStopped(bool state) +{ + m_displayedWhenStopped = state; + + update(); +} + +void QProgressIndicator::setDisplaySize(int size) +{ + m_displaySize = size; + update(); +} + + +bool QProgressIndicator::isDisplayedWhenStopped() const +{ + return m_displayedWhenStopped; +} + +void QProgressIndicator::startAnimation() +{ + m_angle = 0; + + if (m_timerId == -1) + m_timerId = startTimer(m_delay); +} + +void QProgressIndicator::stopAnimation() +{ + if (m_timerId != -1) + killTimer(m_timerId); + + m_timerId = -1; + + update(); +} + +void QProgressIndicator::setAnimationDelay(int delay) +{ + if (m_timerId != -1) + killTimer(m_timerId); + + m_delay = delay; + + if (m_timerId != -1) + m_timerId = startTimer(m_delay); +} + +void QProgressIndicator::setColor(const QColor & color) +{ + m_color = color; + + update(); +} + +QSize QProgressIndicator::sizeHint() const +{ + return QSize(m_displaySize, m_displaySize); +} + +int QProgressIndicator::heightForWidth(int w) const +{ + return w; +} + +void QProgressIndicator::timerEvent(QTimerEvent * /*event*/) +{ + m_angle = (m_angle+30)%360; + + update(); +} + +void QProgressIndicator::paintEvent(QPaintEvent * /*event*/) +{ + if (!m_displayedWhenStopped && !isAnimated()) + return; + + int width = qMin(this->width(), this->height()); + + QPainter p(this); + p.setRenderHint(QPainter::Antialiasing); + + int outerRadius = (width-1)*0.5; + int innerRadius = (width-1)*0.5*0.38; + + int capsuleHeight = outerRadius - innerRadius; + int capsuleWidth = (width > 32 ) ? capsuleHeight *.23 : capsuleHeight *.35; + int capsuleRadius = capsuleWidth/2; + + for (int i=0; i<12; i++) + { + QColor color = m_color; + color.setAlphaF(1.0f - (i/12.0f)); + p.setPen(Qt::NoPen); + p.setBrush(color); + p.save(); + p.translate(rect().center()); + p.rotate(m_angle - i*30.0f); + p.drawRoundedRect(-capsuleWidth*0.5, -(innerRadius+capsuleHeight), capsuleWidth, capsuleHeight, capsuleRadius, capsuleRadius); + p.restore(); + } +} diff --git a/src/calibre/gui2/progress_indicator/QProgressIndicator.h b/src/calibre/gui2/progress_indicator/QProgressIndicator.h index e7e84cf95a..c2098ffe64 100644 --- a/src/calibre/gui2/progress_indicator/QProgressIndicator.h +++ b/src/calibre/gui2/progress_indicator/QProgressIndicator.h @@ -1,93 +1,93 @@ -#pragma once - -#include -#include - -/*! - \class QProgressIndicator - \brief The QProgressIndicator class lets an application display a progress indicator to show that a lengthy task is under way. - - Progress indicators are indeterminate and do nothing more than spin to show that the application is busy. - \sa QProgressBar -*/ -class QProgressIndicator : public QWidget -{ - Q_OBJECT - Q_PROPERTY(int delay READ animationDelay WRITE setAnimationDelay) - Q_PROPERTY(bool displayedWhenStopped READ isDisplayedWhenStopped WRITE setDisplayedWhenStopped) - Q_PROPERTY(QColor color READ color WRITE setColor) - Q_PROPERTY(int displaySize READ displaySize WRITE setDisplaySize) -public: - QProgressIndicator(QWidget* parent = 0, int size = 64); - - /*! Returns the delay between animation steps. - \return The number of milliseconds between animation steps. By default, the animation delay is set to 80 milliseconds. - \sa setAnimationDelay - */ - int animationDelay() const { return m_delay; } - - /*! Returns a Boolean value indicating whether the component is currently animated. - \return Animation state. - \sa startAnimation stopAnimation - */ - bool isAnimated () const; - - /*! Returns a Boolean value indicating whether the receiver shows itself even when it is not animating. - \return Return true if the progress indicator shows itself even when it is not animating. By default, it returns false. - \sa setDisplayedWhenStopped - */ - bool isDisplayedWhenStopped() const; - - /*! Returns the color of the component. - \sa setColor - */ - const QColor & color() const { return m_color; } - - virtual QSize sizeHint() const; - int heightForWidth(int w) const; - int displaySize() const { return m_displaySize; } -public slots: - /*! Starts the spin animation. - \sa stopAnimation isAnimated - */ - void startAnimation(); - - /*! Stops the spin animation. - \sa startAnimation isAnimated - */ - void stopAnimation(); - - /*! Sets the delay between animation steps. - Setting the \a delay to a value larger than 40 slows the animation, while setting the \a delay to a smaller value speeds it up. - \param delay The delay, in milliseconds. - \sa animationDelay - */ - void setAnimationDelay(int delay); - - /*! Sets whether the component hides itself when it is not animating. - \param state The animation state. Set false to hide the progress indicator when it is not animating; otherwise true. - \sa isDisplayedWhenStopped - */ - void setDisplayedWhenStopped(bool state); - - /*! Sets the color of the components to the given color. - \sa color - */ - void setColor(const QColor & color); - - /*! Set the size of this widget (used by sizeHint) - * \sa displaySize - */ - void setDisplaySize(int size); -protected: - virtual void timerEvent(QTimerEvent * event); - virtual void paintEvent(QPaintEvent * event); -private: - int m_angle; - int m_timerId; - int m_delay; - int m_displaySize; - bool m_displayedWhenStopped; - QColor m_color; -}; - +#pragma once + +#include +#include + +/*! + \class QProgressIndicator + \brief The QProgressIndicator class lets an application display a progress indicator to show that a lengthy task is under way. + + Progress indicators are indeterminate and do nothing more than spin to show that the application is busy. + \sa QProgressBar +*/ +class QProgressIndicator : public QWidget +{ + Q_OBJECT + Q_PROPERTY(int delay READ animationDelay WRITE setAnimationDelay) + Q_PROPERTY(bool displayedWhenStopped READ isDisplayedWhenStopped WRITE setDisplayedWhenStopped) + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(int displaySize READ displaySize WRITE setDisplaySize) +public: + QProgressIndicator(QWidget* parent = 0, int size = 64); + + /*! Returns the delay between animation steps. + \return The number of milliseconds between animation steps. By default, the animation delay is set to 80 milliseconds. + \sa setAnimationDelay + */ + int animationDelay() const { return m_delay; } + + /*! Returns a Boolean value indicating whether the component is currently animated. + \return Animation state. + \sa startAnimation stopAnimation + */ + bool isAnimated () const; + + /*! Returns a Boolean value indicating whether the receiver shows itself even when it is not animating. + \return Return true if the progress indicator shows itself even when it is not animating. By default, it returns false. + \sa setDisplayedWhenStopped + */ + bool isDisplayedWhenStopped() const; + + /*! Returns the color of the component. + \sa setColor + */ + const QColor & color() const { return m_color; } + + virtual QSize sizeHint() const; + int heightForWidth(int w) const; + int displaySize() const { return m_displaySize; } +public slots: + /*! Starts the spin animation. + \sa stopAnimation isAnimated + */ + void startAnimation(); + + /*! Stops the spin animation. + \sa startAnimation isAnimated + */ + void stopAnimation(); + + /*! Sets the delay between animation steps. + Setting the \a delay to a value larger than 40 slows the animation, while setting the \a delay to a smaller value speeds it up. + \param delay The delay, in milliseconds. + \sa animationDelay + */ + void setAnimationDelay(int delay); + + /*! Sets whether the component hides itself when it is not animating. + \param state The animation state. Set false to hide the progress indicator when it is not animating; otherwise true. + \sa isDisplayedWhenStopped + */ + void setDisplayedWhenStopped(bool state); + + /*! Sets the color of the components to the given color. + \sa color + */ + void setColor(const QColor & color); + + /*! Set the size of this widget (used by sizeHint) + * \sa displaySize + */ + void setDisplaySize(int size); +protected: + virtual void timerEvent(QTimerEvent * event); + virtual void paintEvent(QPaintEvent * event); +private: + int m_angle; + int m_timerId; + int m_delay; + int m_displaySize; + bool m_displayedWhenStopped; + QColor m_color; +}; + diff --git a/src/calibre/gui2/search_box.py b/src/calibre/gui2/search_box.py index cb6791bb3b..8986346dbc 100644 --- a/src/calibre/gui2/search_box.py +++ b/src/calibre/gui2/search_box.py @@ -146,7 +146,8 @@ class SearchBox2(QComboBox): self._in_a_search = False if event.key() in (Qt.Key_Return, Qt.Key_Enter): self.do_search() - self.timer.start(1500) + if self.as_you_type: + self.timer.start(1500) def mouse_released(self, event): self.normalize_state() @@ -372,6 +373,7 @@ class SearchBoxMixin(object): self.set_number_of_books_shown() def search_box_changed(self): + self.saved_search.clear_to_help() self.tags_view.clear() def do_advanced_search(self, *args): @@ -381,8 +383,7 @@ class SearchBoxMixin(object): class SavedSearchBoxMixin(object): - def __init__(self, db): - self.db = db + def __init__(self): self.connect(self.saved_search, SIGNAL('changed()'), self.saved_searches_changed) self.saved_searches_changed() self.connect(self.clear_button, SIGNAL('clicked()'), self.saved_search.clear_to_help) @@ -401,26 +402,16 @@ class SavedSearchBoxMixin(object): b = getattr(self, x+'_search_button') b.setStatusTip(b.toolTip()) - def set_database(self, db): - self.db = db - self.saved_searches_changed() - def saved_searches_changed(self): - p = saved_searches().names() - p.sort() + p = sorted(saved_searches().names(), cmp=lambda x,y: cmp(x.lower(), y.lower())) t = unicode(self.search_restriction.currentText()) self.search_restriction.clear() # rebuild the restrictions combobox using current saved searches self.search_restriction.addItem('') self.tags_view.recount() for s in p: self.search_restriction.addItem(s) - if t: - if t in p: # redo the current restriction, if there was one - self.search_restriction.setCurrentIndex(self.search_restriction.findText(t)) - # self.tags_view.set_search_restriction(t) - else: - self.search_restriction.setCurrentIndex(0) - self.apply_search_restriction('') + if t: # redo the search restriction if there was one + self.apply_named_search_restriction(t) def do_saved_search_edit(self, search): d = SavedSearchEditor(self, search) diff --git a/src/calibre/gui2/search_restriction_mixin.py b/src/calibre/gui2/search_restriction_mixin.py index a4186ad8d1..139d7c551d 100644 --- a/src/calibre/gui2/search_restriction_mixin.py +++ b/src/calibre/gui2/search_restriction_mixin.py @@ -29,6 +29,16 @@ class SearchRestrictionMixin(object): if self.restriction_in_effect: self.set_number_of_books_shown() + def apply_named_search_restriction(self, name): + if not name: + r = 0 + else: + r = self.search_restriction.findText(name) + if r < 0: + r = 0 + self.search_restriction.setCurrentIndex(r) + self.apply_search_restriction(r) + def apply_search_restriction(self, i): r = unicode(self.search_restriction.currentText()) if r is not None and r != '': diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py index 1565520ca1..7d2333f58b 100644 --- a/src/calibre/gui2/tag_view.py +++ b/src/calibre/gui2/tag_view.py @@ -78,6 +78,7 @@ class TagsView(QTreeView): # {{{ self.setAnimated(True) self.setHeaderHidden(True) self.setItemDelegate(TagDelegate(self)) + self.made_connections = False def set_database(self, db, tag_match, sort_by): self.hidden_categories = config['tag_browser_hidden_categories'] @@ -90,12 +91,14 @@ class TagsView(QTreeView): # {{{ self.search_restriction = None self.setModel(self._model) self.setContextMenuPolicy(Qt.CustomContextMenu) - self.clicked.connect(self.toggle) - self.customContextMenuRequested.connect(self.show_context_menu) pop = config['sort_tags_by'] self.sort_by.setCurrentIndex(self.db.CATEGORY_SORTS.index(pop)) - self.sort_by.currentIndexChanged.connect(self.sort_changed) - self.refresh_required.connect(self.recount, type=Qt.QueuedConnection) + if not self.made_connections: + self.clicked.connect(self.toggle) + self.customContextMenuRequested.connect(self.show_context_menu) + self.refresh_required.connect(self.recount, type=Qt.QueuedConnection) + self.sort_by.currentIndexChanged.connect(self.sort_changed) + self.made_connections = True db.add_listener(self.database_changed) def database_changed(self, event, ids): diff --git a/src/calibre/gui2/throbber.py b/src/calibre/gui2/throbber.py index 99c899c9f3..e27438b60d 100644 --- a/src/calibre/gui2/throbber.py +++ b/src/calibre/gui2/throbber.py @@ -26,7 +26,10 @@ class ThrobbingButton(QToolButton): def set_normal_icon_size(self, w, h): self.normal_icon_size = QSize(w, h) self.setIconSize(self.normal_icon_size) - self.setMinimumSize(self.sizeHint()) + try: + self.setMinimumSize(self.sizeHint()) + except: + self.setMinimumSize(QSize(w+5, h+5)) def animation_finished(self): self.setIconSize(self.normal_icon_size) diff --git a/src/calibre/gui2/tools.py b/src/calibre/gui2/tools.py index 9680b616e3..caef82ab81 100644 --- a/src/calibre/gui2/tools.py +++ b/src/calibre/gui2/tools.py @@ -22,6 +22,7 @@ from calibre.customize.conversion import OptionRecommendation from calibre.utils.config import prefs from calibre.ebooks.conversion.config import GuiRecommendations, \ load_defaults, load_specifics, save_specifics +from calibre.gui2.convert import bulk_defaults_for_input_format def convert_single_ebook(parent, db, book_ids, auto_conversion=False, out_format=None): changed = False @@ -148,7 +149,7 @@ class QueueBulk(QProgressDialog): temp_files = [] combined_recs = GuiRecommendations() - default_recs = load_defaults('%s_input' % input_format) + default_recs = bulk_defaults_for_input_format(input_format) for key in default_recs: combined_recs[key] = default_recs[key] if self.use_saved_single_settings: @@ -208,7 +209,6 @@ class QueueBulk(QProgressDialog): self.queue(self.jobs, self.changed, self.bad, *self.args) def fetch_scheduled_recipe(arg): - from calibre.ebooks.conversion.config import load_defaults fmt = prefs['output_format'].lower() pt = PersistentTemporaryFile(suffix='_recipe_out.%s'%fmt.lower()) pt.close() @@ -221,7 +221,7 @@ def fetch_scheduled_recipe(arg): if lf.get('base_font_size', 0.0) != 0.0: recs.append(('base_font_size', lf['base_font_size'], OptionRecommendation.HIGH)) - recs.append(('keep_ligatures', lf['keep_ligatures'], + recs.append(('keep_ligatures', lf.get('keep_ligatures', False), OptionRecommendation.HIGH)) lr = load_defaults('lrf_output') diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index ec8d07bdbe..41b166b13f 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -15,7 +15,7 @@ from threading import Thread from PyQt4.Qt import Qt, SIGNAL, QTimer, \ QPixmap, QMenu, QIcon, pyqtSignal, \ QDialog, \ - QSystemTrayIcon, QApplication, QKeySequence, QAction, \ + QSystemTrayIcon, QApplication, QKeySequence, \ QMessageBox, QHelpEvent from calibre import prints @@ -23,8 +23,10 @@ from calibre.constants import __appname__, isosx from calibre.ptempfile import PersistentTemporaryFile from calibre.utils.config import prefs, dynamic from calibre.utils.ipc.server import Server +from calibre.library.database2 import LibraryDatabase2 +from calibre.customize.ui import interface_actions from calibre.gui2 import error_dialog, GetMetadata, open_local_file, \ - gprefs, max_available_height, config, info_dialog + gprefs, max_available_height, config, info_dialog, Dispatcher from calibre.gui2.cover_flow import CoverFlowMixin from calibre.gui2.widgets import ProgressIndicator from calibre.gui2.update import UpdateMixin @@ -32,17 +34,10 @@ from calibre.gui2.main_window import MainWindow from calibre.gui2.layout import MainWindowMixin from calibre.gui2.device import DeviceMixin from calibre.gui2.jobs import JobManager, JobsDialog, JobsButton -from calibre.gui2.dialogs.config import ConfigDialog - -from calibre.gui2.dialogs.book_info import BookInfo -from calibre.library.database2 import LibraryDatabase2 from calibre.gui2.init import LibraryViewMixin, LayoutMixin from calibre.gui2.search_box import SearchBoxMixin, SavedSearchBoxMixin from calibre.gui2.search_restriction_mixin import SearchRestrictionMixin from calibre.gui2.tag_view import TagBrowserMixin -from calibre.gui2.actions import AnnotationsAction, AddAction, DeleteAction, \ - EditMetadataAction, SaveToDiskAction, GenerateCatalogAction, FetchNewsAction, \ - ConvertAction, ViewAction class Listener(Thread): # {{{ @@ -91,21 +86,33 @@ class SystemTrayIcon(QSystemTrayIcon): # {{{ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ TagBrowserMixin, CoverFlowMixin, LibraryViewMixin, SearchBoxMixin, - SavedSearchBoxMixin, SearchRestrictionMixin, LayoutMixin, UpdateMixin, - AnnotationsAction, AddAction, DeleteAction, - EditMetadataAction, SaveToDiskAction, GenerateCatalogAction, FetchNewsAction, - ConvertAction, ViewAction): + SavedSearchBoxMixin, SearchRestrictionMixin, LayoutMixin, UpdateMixin + ): 'The main GUI' def __init__(self, opts, parent=None): MainWindow.__init__(self, opts, parent) self.opts = opts + self.device_connected = None + acmap = {} + for action in interface_actions(): + mod, cls = action.actual_plugin.split(':') + ac = getattr(__import__(mod, fromlist=['1'], level=0), cls)(self, + action.site_customization) + if ac.name in acmap: + if ac.priority >= acmap[ac.name].priority: + acmap[ac.name] = ac + else: + acmap[ac.name] = ac + + self.iactions = acmap def initialize(self, library_path, db, listener, actions): opts = self.opts self.preferences_action, self.quit_action = actions self.library_path = library_path + self.content_server = None self.spare_servers = [] self.must_restart_before_config = False # Initialize fontconfig in a separate thread as this can be a lengthy @@ -118,12 +125,14 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ self.another_instance_wants_to_talk) self.check_messages_timer.start(1000) + for ac in self.iactions.values(): + ac.do_genesis() MainWindowMixin.__init__(self, db) # Jobs Button {{{ self.job_manager = JobManager() self.jobs_dialog = JobsDialog(self, self.job_manager) - self.jobs_button = JobsButton(horizontal=True) + self.jobs_button = JobsButton(horizontal=True, parent=self) self.jobs_button.initialize(self.jobs_dialog, self.job_manager) # }}} @@ -139,14 +148,10 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ self.verbose = opts.verbose self.get_metadata = GetMetadata() self.upload_memory = {} - self.delete_memory = {} - self.conversion_jobs = {} - self.persistent_files = [] self.metadata_dialogs = [] self.default_thumbnail = None self.tb_wrapper = textwrap.TextWrapper(width=40) self.viewers = collections.deque() - self.content_server = None self.system_tray_icon = SystemTrayIcon(QIcon(I('library.png')), self) self.system_tray_icon.setToolTip('calibre') self.system_tray_icon.tooltip_requested.connect( @@ -166,22 +171,13 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ QIcon(I('eject.svg')), _('&Eject connected device')) self.eject_action.setEnabled(False) self.addAction(self.quit_action) - self.action_restart = QAction(_('&Restart'), self) - self.addAction(self.action_restart) self.system_tray_menu.addAction(self.quit_action) self.quit_action.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_Q)) - self.action_restart.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_R)) - self.action_show_book_details.setShortcut(QKeySequence(Qt.Key_I)) - self.addAction(self.action_show_book_details) self.system_tray_icon.setContextMenu(self.system_tray_menu) self.connect(self.quit_action, SIGNAL('triggered(bool)'), self.quit) self.connect(self.donate_action, SIGNAL('triggered(bool)'), self.donate) self.connect(self.restore_action, SIGNAL('triggered()'), self.show_windows) - self.connect(self.action_show_book_details, - SIGNAL('triggered(bool)'), self.show_book_info) - self.connect(self.action_restart, SIGNAL('triggered()'), - self.restart) self.connect(self.system_tray_icon, SIGNAL('activated(QSystemTrayIcon::ActivationReason)'), self.system_tray_icon_activated) @@ -199,7 +195,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ UpdateMixin.__init__(self, opts) ####################### Search boxes ######################## - SavedSearchBoxMixin.__init__(self, db) + SavedSearchBoxMixin.__init__(self) SearchBoxMixin.__init__(self) ####################### Library view ######################## @@ -209,9 +205,8 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ if self.system_tray_icon.isVisible() and opts.start_in_tray: self.hide_windows() - for t in (self.tool_bar, ): - self.library_view.model().count_changed_signal.connect \ - (t.count_changed) + self.library_view.model().count_changed_signal.connect( + self.iactions['Choose Library'].count_changed) if not gprefs.get('quick_start_guide_added', False): from calibre.ebooks.metadata import MetaInformation mi = MetaInformation(_('Calibre Quick Start Guide'), ['John Schember']) @@ -235,6 +230,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ ######################### Search Restriction ########################## SearchRestrictionMixin.__init__(self) + self.apply_named_search_restriction(db.prefs.get('gui_restriction', '')) ########################### Cover Flow ################################ @@ -246,22 +242,28 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ if config['autolaunch_server']: - from calibre.library.server.main import start_threaded_server - from calibre.library.server import server_config - self.content_server = start_threaded_server( - db, server_config().parse()) - self.test_server_timer = QTimer.singleShot(10000, self.test_server) + self.start_content_server() self.keyboard_interrupt.connect(self.quit, type=Qt.QueuedConnection) - AddAction.__init__(self) + self.read_settings() self.finalize_layout() self.donate_button.start_animation() + self.set_window_title() - self.scheduler.delete_old_news.connect( - self.library_view.model().delete_books_by_id, - type=Qt.QueuedConnection) + for ac in self.iactions.values(): + ac.initialization_complete() + + def start_content_server(self): + from calibre.library.server.main import start_threaded_server + from calibre.library.server import server_config + self.content_server = start_threaded_server( + self.library_view.model().db, server_config().parse()) + self.content_server.state_callback = Dispatcher( + self.iactions['Connect Share'].content_server_state_changed) + self.content_server.state_callback(True) + self.test_server_timer = QTimer.singleShot(10000, self.test_server) def resizeEvent(self, ev): @@ -308,7 +310,8 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ setattr(window, '__systray_minimized', False) def test_server(self, *args): - if self.content_server.exception is not None: + if self.content_server is not None and \ + self.content_server.exception is not None: error_dialog(self, _('Failed to start content server'), unicode(self.content_server.exception)).exec_() @@ -323,7 +326,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ if len(argv) > 1: path = os.path.abspath(argv[1]) if os.access(path, os.R_OK): - self.add_filesystem_book(path) + self.iactions['Add Books'].add_filesystem_book(path) self.setWindowState(self.windowState() & \ ~Qt.WindowMinimized|Qt.WindowActive) self.show_windows() @@ -350,38 +353,6 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ def booklists(self): return self.memory_view.model().db, self.card_a_view.model().db, self.card_b_view.model().db - - def do_config(self, checked=False, initial_category='general'): - if self.job_manager.has_jobs(): - d = error_dialog(self, _('Cannot configure'), - _('Cannot configure while there are running jobs.')) - d.exec_() - return - if self.must_restart_before_config: - d = error_dialog(self, _('Cannot configure'), - _('Cannot configure before calibre is restarted.')) - d.exec_() - return - d = ConfigDialog(self, self.library_view, - server=self.content_server, initial_category=initial_category) - - d.exec_() - self.content_server = d.server - if d.result() == d.Accepted: - self.read_toolbar_settings() - self.search.search_as_you_type(config['search_as_you_type']) - self.save_menu.actions()[2].setText( - _('Save only %s format to disk')% - prefs['output_format'].upper()) - self.save_menu.actions()[3].setText( - _('Save only %s format to disk in a single directory')% - prefs['output_format'].upper()) - self.tags_view.set_new_model() # in case columns changed - self.tags_view.recount() - self.create_device_menu() - self.set_device_menu_items_state(bool(self.device_connected)) - self.tool_bar.apply_settings() - def library_moved(self, newloc): if newloc is None: return db = LibraryDatabase2(newloc) @@ -396,18 +367,17 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ self.saved_search.clear_to_help() self.book_details.reset_info() self.library_view.model().count_changed() - self.scheduler.database_changed(db) prefs['library_path'] = self.library_path + db = self.library_view.model().db + for action in self.iactions.values(): + action.library_changed(db) + self.set_window_title() + self.apply_named_search_restriction('') # reset restriction to null + self.saved_searches_changed() # reload the search restrictions combo box + self.apply_named_search_restriction(db.prefs.get('gui_restriction', '')) - def show_book_info(self, *args): - if self.current_view() is not self.library_view: - error_dialog(self, _('No detailed info available'), - _('No detailed information is available for books ' - 'on the device.')).exec_() - return - index = self.library_view.currentIndex() - if index.isValid(): - BookInfo(self, self.library_view, index).show() + def set_window_title(self): + self.setWindowTitle(__appname__ + u' - ||%s||'%self.iactions['Choose Library'].library_name()) def location_selected(self, location): ''' @@ -419,26 +389,12 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ for x in ('tb', 'cb'): splitter = getattr(self, x+'_splitter') splitter.button.setEnabled(location == 'library') + for action in self.iactions.values(): + action.location_selected(location) if location == 'library': - self.action_edit.setEnabled(True) - self.action_merge.setEnabled(True) - self.action_convert.setEnabled(True) - self.view_menu.actions()[1].setEnabled(True) - self.action_open_containing_folder.setEnabled(True) - self.action_sync.setEnabled(True) self.search_restriction.setEnabled(True) - for action in list(self.delete_menu.actions())[1:]: - action.setEnabled(True) else: - self.action_edit.setEnabled(False) - self.action_merge.setEnabled(False) - self.action_convert.setEnabled(False) - self.view_menu.actions()[1].setEnabled(False) - self.action_open_containing_folder.setEnabled(False) - self.action_sync.setEnabled(False) self.search_restriction.setEnabled(False) - for action in list(self.delete_menu.actions())[1:]: - action.setEnabled(False) # Reset the view in case something changed while it was invisible self.current_view().reset() self.set_number_of_books_shown() @@ -493,7 +449,6 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ geometry = config['main_window_geometry'] if geometry is not None: self.restoreGeometry(geometry) - self.read_toolbar_settings() self.read_layout_settings() def write_settings(self): @@ -501,9 +456,6 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ dynamic.set('sort_history', self.library_view.model().sort_history) self.save_layout_state() - def restart(self): - self.quit(restart=True) - def quit(self, checked=True, restart=False): if not self.confirm_quit(): return @@ -566,6 +518,9 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ def shutdown(self, write_settings=True): + for action in self.iactions.values(): + if not action.shutting_down(): + return if write_settings: self.write_settings() self.check_messages_timer.stop() @@ -583,7 +538,9 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ try: try: if self.content_server is not None: - self.content_server.exit() + s = self.content_server + self.content_server = None + s.exit() except: pass time.sleep(2) diff --git a/src/calibre/gui2/update.py b/src/calibre/gui2/update.py index 38612c46f2..ce6d134298 100644 --- a/src/calibre/gui2/update.py +++ b/src/calibre/gui2/update.py @@ -31,7 +31,7 @@ class CheckForUpdates(QThread): 'win' if iswindows else 'osx' if isosx else 'oth') req.add_header('CALIBRE_INSTALL_UUID', prefs['installation_uuid']) version = br.open(req).read().strip() - if version and version != __version__: + if version and version != __version__ and len(version) < 10: self.update_found.emit(version) except: traceback.print_exc() diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py index 4653529095..75f95b1a90 100644 --- a/src/calibre/gui2/viewer/documentview.py +++ b/src/calibre/gui2/viewer/documentview.py @@ -81,7 +81,8 @@ class ConfigDialog(QDialog, Ui_Dialog): self.css.setToolTip(_('Set the user CSS stylesheet. This can be used to customize the look of all books.')) self.max_view_width.setValue(opts.max_view_width) pats = [os.path.basename(x).split('.')[0] for x in - glob.glob(P('viewer/hyphenate/patterns/*.js'))] + glob.glob(P('viewer/hyphenate/patterns/*.js', + allow_user_override=False))] names = list(map(get_language, pats)) pmap = {} for i in range(len(pats)): diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py index ec88c3f886..32bfdd22ce 100644 --- a/src/calibre/gui2/viewer/main.py +++ b/src/calibre/gui2/viewer/main.py @@ -166,6 +166,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer): def __init__(self, pathtoebook=None, debug_javascript=False): MainWindow.__init__(self, None) self.setupUi(self) + self.base_window_title = unicode(self.windowTitle()) self.iterator = None self.current_page = None self.pending_search = None @@ -602,7 +603,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer): self.toc_model = TOC(self.iterator.toc) self.toc.setModel(self.toc_model) self.current_title = title - self.setWindowTitle(unicode(self.windowTitle())+' - '+title) + self.setWindowTitle(self.base_window_title+' - '+title) self.pos.setMaximum(sum(self.iterator.pages)) self.pos.setSuffix(' / %d'%sum(self.iterator.pages)) self.vertical_scrollbar.setMinimum(100) diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py index 994fa4575f..dbb3947d4c 100644 --- a/src/calibre/gui2/widgets.py +++ b/src/calibre/gui2/widgets.py @@ -5,7 +5,7 @@ Miscellaneous widgets used in the GUI ''' import re, os, traceback -from PyQt4.Qt import QIcon, QFont, QLabel, QListWidget, \ +from PyQt4.Qt import QIcon, QFont, QLabel, QListWidget, QAction, \ QListWidgetItem, QTextCharFormat, QApplication, \ QSyntaxHighlighter, QCursor, QColor, QWidget, \ QPixmap, QSplitterHandle, QToolButton, \ @@ -855,7 +855,7 @@ class SplitterHandle(QSplitterHandle): class LayoutButton(QToolButton): - def __init__(self, icon, text, splitter, parent=None): + def __init__(self, icon, text, splitter, parent=None, shortcut=None): QToolButton.__init__(self, parent) self.label = text self.setIcon(QIcon(icon)) @@ -864,18 +864,21 @@ class LayoutButton(QToolButton): self.splitter = splitter splitter.state_changed.connect(self.update_state) self.setCursor(Qt.PointingHandCursor) + self.shortcut = '' + if shortcut: + self.shortcut = shortcut def set_state_to_show(self, *args): self.setChecked(False) label =_('Show') - self.setText(label + ' ' + self.label) + self.setText(label + ' ' + self.label + u' (%s)'%self.shortcut) self.setToolTip(self.text()) self.setStatusTip(self.text()) def set_state_to_hide(self, *args): self.setChecked(True) label = _('Hide') - self.setText(label + ' ' + self.label) + self.setText(label + ' ' + self.label+ u' (%s)'%self.shortcut) self.setToolTip(self.text()) self.setStatusTip(self.text()) @@ -891,7 +894,7 @@ class Splitter(QSplitter): def __init__(self, name, label, icon, initial_show=True, initial_side_size=120, connect_button=True, - orientation=Qt.Horizontal, side_index=0, parent=None): + orientation=Qt.Horizontal, side_index=0, parent=None, shortcut=None): QSplitter.__init__(self, parent) self.resize_timer = QTimer(self) self.resize_timer.setSingleShot(True) @@ -906,10 +909,21 @@ class Splitter(QSplitter): self.initial_side_size = initial_side_size self.initial_show = initial_show self.splitterMoved.connect(self.splitter_moved, type=Qt.QueuedConnection) - self.button = LayoutButton(icon, label, self) + self.button = LayoutButton(icon, label, self, shortcut=shortcut) if connect_button: self.button.clicked.connect(self.double_clicked) + if shortcut is not None: + self.action_toggle = QAction(QIcon(icon), _('Toggle') + ' ' + label, + self) + self.action_toggle.triggered.connect(self.toggle_triggered) + self.action_toggle.setShortcut(shortcut) + if parent is not None: + parent.addAction(self.action_toggle) + + def toggle_triggered(self, *args): + self.toggle_side_pane() + def createHandle(self): return SplitterHandle(self.orientation(), self) @@ -927,7 +941,10 @@ class Splitter(QSplitter): @property def is_side_index_hidden(self): sizes = list(self.sizes()) - return sizes[self.side_index] == 0 + try: + return sizes[self.side_index] == 0 + except IndexError: + return True @property def save_name(self): diff --git a/src/calibre/gui2/wizard/__init__.py b/src/calibre/gui2/wizard/__init__.py index b831201f2d..394b919016 100644 --- a/src/calibre/gui2/wizard/__init__.py +++ b/src/calibre/gui2/wizard/__init__.py @@ -29,6 +29,8 @@ from calibre.utils.config import dynamic, prefs from calibre.gui2 import NONE, choose_dir, error_dialog from calibre.gui2.dialogs.progress import ProgressDialog +# Devices {{{ + class Device(object): output_profile = 'default' @@ -59,7 +61,7 @@ class Kindle(Device): output_profile = 'kindle' output_format = 'MOBI' - name = 'Kindle 1 or 2' + name = 'Kindle 1, 2 or 3' manufacturer = 'Amazon' id = 'kindle' @@ -166,9 +168,9 @@ class iPhone(Device): class Android(Device): - name = 'Adroid phone + WordPlayer' + name = 'Adroid phone + WordPlayer/Aldiko' output_format = 'EPUB' - manufacturer = 'Google/HTC' + manufacturer = 'Android' id = 'android' class HanlinV3(Device): @@ -209,6 +211,7 @@ class EZReaderPP(HanlinV5): manufacturer = 'Astak' id = 'ezreader_pp' +# }}} def get_devices(): for x in globals().values(): @@ -672,9 +675,7 @@ class Wizard(QWizard): self.connect(self.library_page, SIGNAL('retranslate()'), self.retranslate) self.finish_page = FinishPage() - bt = unicode(self.buttonText(self.FinishButton)).replace('&', '') - t = unicode(self.finish_page.finish_text.text()) - self.finish_page.finish_text.setText(t%bt) + self.set_finish_text() self.kindle_page = KindlePage() self.stanza_page = StanzaPage() self.word_player_page = WordPlayerPage() @@ -699,6 +700,7 @@ class Wizard(QWizard): for pid in self.pageIds(): page = self.page(pid) page.retranslateUi(page) + self.set_finish_text() def accept(self): pages = map(self.page, self.visitedPages()) @@ -712,6 +714,13 @@ class Wizard(QWizard): def completed(self, newloc): return QWizard.accept(self) + def set_finish_text(self, *args): + bt = unicode(self.buttonText(self.FinishButton)).replace('&', '') + t = unicode(self.finish_page.finish_text.text()) + if '%s' in t: + self.finish_page.finish_text.setText(t%bt) + + def wizard(parent=None): w = Wizard(parent) return w diff --git a/src/calibre/gui2/wizard/finish.ui b/src/calibre/gui2/wizard/finish.ui index 8a3275a091..d637aa350a 100644 --- a/src/calibre/gui2/wizard/finish.ui +++ b/src/calibre/gui2/wizard/finish.ui @@ -37,8 +37,8 @@ - 20 - 56 + 0 + 0 @@ -46,7 +46,7 @@ - <h2>Demo videos</h2>Videos demonstrating the various features of calibre are available <a href="http://calibre-ebook.com/demo">online</a>. + <h2>Demo videos</h2>Videos demonstrating the various features of calibre are available <a href="http://calibre-ebook.com/demo">online</a>. true @@ -59,19 +59,6 @@ - - - - Qt::Vertical - - - - 20 - 56 - - - - @@ -88,19 +75,6 @@ - - - - Qt::Vertical - - - - 20 - 40 - - - - diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py index b778b58c31..ca66d28ddb 100644 --- a/src/calibre/library/caches.py +++ b/src/calibre/library/caches.py @@ -542,6 +542,8 @@ class ResultCache(SearchQueryParser): if field is not None: self.sort(field, ascending) self._map_filtered = list(self._map) + if self.search_restriction: + self.search('', return_matches=False, ignore_search_restriction=False) def seriescmp(self, sidx, siidx, x, y, library_order=None): try: @@ -607,26 +609,24 @@ class ResultCache(SearchQueryParser): self._map.sort(cmp=fcmp, reverse=not ascending) self._map_filtered = [id for id in self._map if id in self._map_filtered] - def search(self, query, return_matches=False, - ignore_search_restriction=False): - q = '' - if not query or not query.strip(): - if not ignore_search_restriction: - q = self.search_restriction - else: - q = query - if not ignore_search_restriction and self.search_restriction: - q = u'%s (%s)' % (self.search_restriction, query) - if not q: - if return_matches: - return list(self._map) # when return_matches, do not update the maps! - self._map_filtered = list(self._map) - return - matches = sorted(self.parse(q)) - ans = [id for id in self._map if id in matches] + def search(self, query, return_matches=False): + ans = self.search_getting_ids(query, self.search_restriction) if return_matches: return ans self._map_filtered = ans + def search_getting_ids(self, query, search_restriction): + q = '' + if not query or not query.strip(): + q = search_restriction + else: + q = query + if search_restriction: + q = u'%s (%s)' % (search_restriction, query) + if not q: + return list(self._map) + matches = sorted(self.parse(q)) + return [id for id in self._map if id in matches] + def set_search_restriction(self, s): self.search_restriction = s diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index a540a8a660..b4fd537729 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -10,7 +10,7 @@ from copy import deepcopy from xml.sax.saxutils import escape -from calibre import filesystem_encoding, prints, prepare_string_for_xml, strftime +from calibre import prints, prepare_string_for_xml, strftime from calibre.constants import preferred_encoding from calibre.customize import CatalogPlugin from calibre.customize.conversion import OptionRecommendation, DummyReporter @@ -541,7 +541,7 @@ class EPUB_MOBI(CatalogPlugin): "Default: '%default'None\n" "Applies to: ePub, MOBI output formats")), Option('--exclude-genre', - default='\[[\w ]*\]', + default='\[.+\]', dest='exclude_genre', action = None, help=_("Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" @@ -1202,9 +1202,7 @@ class EPUB_MOBI(CatalogPlugin): self.generateHTMLByDateRead() self.generateHTMLByTags() - from calibre.utils.PythonMagickWand import ImageMagick - with ImageMagick(): - self.generateThumbnails() + self.generateThumbnails() self.generateOPF() self.generateNCXHeader() @@ -4057,29 +4055,15 @@ class EPUB_MOBI(CatalogPlugin): return ' '.join(translated) def generateThumbnail(self, title, image_dir, thumb_file): - import calibre.utils.PythonMagickWand as pw + from calibre.utils.magick import Image try: - img = pw.NewMagickWand() - if img < 0: - raise RuntimeError('generateThumbnail(): Cannot create wand') - # Read the cover - if not pw.MagickReadImage(img, - title['cover'].encode(filesystem_encoding)): - self.opts.log.error('generateThumbnail(): Failed to read cover image from: %s' % title['cover']) - raise IOError - thumb = pw.CloneMagickWand(img) - if thumb < 0: - self.opts.log.error('generateThumbnail(): Cannot clone cover') - raise RuntimeError + img = Image() + img.open(title['cover']) # img, width, height - pw.MagickThumbnailImage(thumb, self.thumbWidth, self.thumbHeight) - pw.MagickWriteImage(thumb, os.path.join(image_dir, thumb_file)) - pw.DestroyMagickWand(thumb) - pw.DestroyMagickWand(img) - except IOError: - self.opts.log.error("generateThumbnail(): IOError with %s" % title['title']) - except RuntimeError: - self.opts.log.error("generateThumbnail(): RuntimeError with %s" % title['title']) + img.thumbnail(self.thumbWidth, self.thumbHeight) + img.save(os.path.join(image_dir, thumb_file)) + except: + self.opts.log.error("generateThumbnail(): Error with %s" % title['title']) def getMarkerTags(self): ''' Return a list of special marker tags to be excluded from genre list ''' diff --git a/src/calibre/library/comments.py b/src/calibre/library/comments.py index d4ed1908f5..32ae65b31e 100644 --- a/src/calibre/library/comments.py +++ b/src/calibre/library/comments.py @@ -15,6 +15,7 @@ from calibre import prepare_string_for_xml # Hackish - ignoring sentences ending or beginning in numbers to avoid # confusion with decimal points. lost_cr_pat = re.compile('([a-z])([\.\?!])([A-Z])') +lost_cr_exception_pat = re.compile(r'(Ph\.D)|(D\.Phil)|((Dr|Mr|Mrs|Ms)\.[A-Z])') def comments_to_html(comments): ''' @@ -51,6 +52,8 @@ def comments_to_html(comments): return '\n'.join(parts) # Explode lost CRs to \n\n + comments = lost_cr_exception_pat.sub(lambda m: m.group().replace('.', + '.\r'), comments) for lost_cr in lost_cr_pat.finditer(comments): comments = comments.replace(lost_cr.group(), '%s%s\n\n%s' % (lost_cr.group(1), diff --git a/src/calibre/library/custom_columns.py b/src/calibre/library/custom_columns.py index 5b459c6d2a..4ba664dadc 100644 --- a/src/calibre/library/custom_columns.py +++ b/src/calibre/library/custom_columns.py @@ -6,7 +6,7 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import json +import json, re from functools import partial from math import floor @@ -313,7 +313,112 @@ class CustomColumns(object): self.conn.commit() return changed - def set_custom(self, id_, val, label=None, num=None, + def set_custom_bulk_multiple(self, ids, add=[], remove=[], + label=None, num=None, notify=False): + ''' + Fast algorithm for updating custom column is_multiple datatypes. + Do not use with other custom column datatypes. + ''' + if label is not None: + data = self.custom_column_label_map[label] + if num is not None: + data = self.custom_column_num_map[num] + if not data['editable']: + raise ValueError('Column %r is not editable'%data['label']) + if data['datatype'] != 'text' or not data['is_multiple']: + raise ValueError('Column %r is not text/multiple'%data['label']) + + add = self.cleanup_tags(add) + remove = self.cleanup_tags(remove) + remove = set(remove) - set(add) + if not ids or (not add and not remove): + return + # get custom table names + cust_table, link_table = self.custom_table_names(data['num']) + + # Add tags that do not already exist into the custom cust_table + all_tags = self.all_custom(num=data['num']) + lt = [t.lower() for t in all_tags] + new_tags = [t for t in add if t.lower() not in lt] + if new_tags: + self.conn.executemany('INSERT INTO %s(value) VALUES (?)'%cust_table, + [(x,) for x in new_tags]) + + # Create the temporary temp_tables to store the ids for books and tags + # to be operated on + temp_tables = ('temp_bulk_tag_edit_books', 'temp_bulk_tag_edit_add', + 'temp_bulk_tag_edit_remove') + drops = '\n'.join(['DROP TABLE IF EXISTS %s;'%t for t in temp_tables]) + creates = '\n'.join(['CREATE TEMP TABLE %s(id INTEGER PRIMARY KEY);'%t + for t in temp_tables]) + self.conn.executescript(drops + creates) + + # Populate the books temp cust_table + self.conn.executemany( + 'INSERT INTO temp_bulk_tag_edit_books VALUES (?)', + [(x,) for x in ids]) + + # Populate the add/remove tags temp temp_tables + for table, tags in enumerate([add, remove]): + if not tags: + continue + table = temp_tables[table+1] + insert = ('INSERT INTO {tt}(id) SELECT {ct}.id FROM {ct} WHERE value=?' + ' COLLATE PYNOCASE LIMIT 1').format(tt=table, ct=cust_table) + self.conn.executemany(insert, [(x,) for x in tags]) + + # now do the real work -- removing and adding the tags + if remove: + self.conn.execute( + '''DELETE FROM %s WHERE + book IN (SELECT id FROM %s) AND + value IN (SELECT id FROM %s)''' + % (link_table, temp_tables[0], temp_tables[2])) + if add: + self.conn.execute( + ''' + INSERT OR REPLACE INTO {0}(book, value) SELECT {1}.id, {2}.id FROM {1}, {2} + '''.format(link_table, temp_tables[0], temp_tables[1]) + ) + # get rid of the temp tables + self.conn.executescript(drops) + self.conn.commit() + + # set the in-memory copies of the tags + for x in ids: + tags = self.conn.get( + 'SELECT custom_%s FROM meta2 WHERE id=?'%data['num'], + (x,), all=False) + self.data.set(x, self.FIELD_MAP[data['num']], tags, row_is_id=True) + + if notify: + self.notify('metadata', ids) + + def set_custom_bulk(self, ids, val, label=None, num=None, + append=False, notify=True, extras=None): + ''' + Change the value of a column for a set of books. The ids parameter is a + list of book ids to change. The extra field must be None or a list the + same length as ids. + ''' + if extras is not None and len(extras) != len(ids): + raise ValueError('Lentgh of ids and extras is not the same') + ev = None + for idx,id in enumerate(ids): + if extras is not None: + ev = extras[idx] + self._set_custom(id, val, label=label, num=num, append=append, + notify=notify, extra=ev) + self.conn.commit() + + def set_custom(self, id, val, label=None, num=None, + append=False, notify=True, extra=None, commit=True): + self._set_custom(id, val, label=label, num=num, append=append, + notify=notify, extra=extra) + if commit: + self.conn.commit() + + def _set_custom(self, id_, val, label=None, num=None, append=False, notify=True, extra=None): if label is not None: data = self.custom_column_label_map[label] @@ -369,7 +474,6 @@ class CustomColumns(object): self.conn.execute( '''INSERT INTO %s(book, value) VALUES (?,?)'''%lt, (id_, xid)) - self.conn.commit() nval = self.conn.get( 'SELECT custom_%s FROM meta2 WHERE id=?'%data['num'], (id_,), all=False) @@ -381,7 +485,6 @@ class CustomColumns(object): self.conn.execute( 'INSERT INTO %s(book,value) VALUES (?,?)'%table, (id_, val)) - self.conn.commit() nval = self.conn.get( 'SELECT custom_%s FROM meta2 WHERE id=?'%data['num'], (id_,), all=False) @@ -430,6 +533,10 @@ class CustomColumns(object): def create_custom_column(self, label, name, datatype, is_multiple, editable=True, display={}): + if not label: + raise ValueError(_('No label was provided')) + if re.match('^\w*$', label) is None or not label[0].isalpha() or label.lower() != label: + raise ValueError(_('The label must contain only lower case letters, digits and underscores, and start with a letter')) if datatype not in self.CUSTOM_DATA_TYPES: raise ValueError('%r is not a supported data type'%datatype) normalized = datatype not in ('datetime', 'comments', 'int', 'bool', diff --git a/src/calibre/library/database.py b/src/calibre/library/database.py index 6147101567..28a0de2153 100644 --- a/src/calibre/library/database.py +++ b/src/calibre/library/database.py @@ -1080,9 +1080,11 @@ ALTER TABLE books ADD COLUMN isbn TEXT DEFAULT "" COLLATE NOCASE; return cPickle.loads(str(data)) return None - def delete_conversion_options(self, id, format): + def delete_conversion_options(self, id, format, commit=True): self.conn.execute('DELETE FROM conversion_options WHERE book=? AND format=?', (id, format.upper())) + if commit: + self.conn.commit() def add_format(self, index, ext, stream, index_is_id=False): diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 02bbac1eb8..4e8611c0ef 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -26,13 +26,13 @@ from calibre.ebooks.metadata.meta import get_metadata, metadata_from_formats from calibre.constants import preferred_encoding, iswindows, isosx, filesystem_encoding from calibre.ptempfile import PersistentTemporaryFile from calibre.customize.ui import run_plugins_on_import - +from calibre import isbytestring from calibre.utils.filenames import ascii_filename from calibre.utils.date import utcnow, now as nowf, utcfromtimestamp from calibre.utils.config import prefs, tweaks from calibre.utils.search_query_parser import saved_searches, set_saved_searches from calibre.ebooks import BOOK_EXTENSIONS, check_ebook_format -from calibre.utils.magick_draw import save_cover_data_to +from calibre.utils.magick.draw import save_cover_data_to if iswindows: import calibre.utils.winshell as winshell @@ -116,6 +116,9 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): # so that various code taht connects directly will not complain about # missing functions self.books_list_filter = self.conn.create_dynamic_filter('books_list_filter') + # Store temporary tables in memory + self.conn.execute('pragma temp_store=2') + self.conn.commit() @classmethod def exists_at(cls, path): @@ -293,6 +296,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): self.book_on_device_func = None self.data = ResultCache(self.FIELD_MAP, self.field_metadata) self.search = self.data.search + self.search_getting_ids = self.data.search_getting_ids self.refresh = functools.partial(self.data.refresh, self) self.sort = self.data.sort self.index = self.data.index @@ -317,6 +321,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): 'title', 'timestamp', 'uuid', 'pubdate'): setattr(self, prop, functools.partial(get_property, loc=self.FIELD_MAP['comments' if prop == 'comment' else prop])) + setattr(self, 'title_sort', functools.partial(get_property, + loc=self.FIELD_MAP['sort'])) def initialize_database(self): metadata_sqlite = open(P('metadata_sqlite.sql'), 'rb').read() @@ -383,7 +389,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): path = path.lower() return path - def set_path(self, index, index_is_id=False): + def set_path(self, index, index_is_id=False, commit=True): ''' Set the path to the directory containing this books files based on its current title and author. If there was a previous directory, its contents @@ -417,20 +423,43 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): for format in formats: # Get data as string (can't use file as source and target files may be the same) f = self.format(id, format, index_is_id=True, as_file=False) - if not f: + if not f: continue stream = cStringIO.StringIO(f) self.add_format(id, format, stream, index_is_id=True, path=tpath) self.conn.execute('UPDATE books SET path=? WHERE id=?', (path, id)) - self.conn.commit() + if commit: + self.conn.commit() self.data.set(id, self.FIELD_MAP['path'], path, row_is_id=True) # Delete not needed directories if current_path and os.path.exists(spath): if self.normpath(spath) != self.normpath(tpath): self.rmtree(spath, permanent=True) - parent = os.path.dirname(spath) + parent = os.path.dirname(spath) if len(os.listdir(parent)) == 0: self.rmtree(parent, permanent=True) + curpath = self.library_path + c1, c2 = current_path.split('/'), path.split('/') + if not self.is_case_sensitive and len(c1) == len(c2): + # On case-insensitive systems, title and author renames that only + # change case don't cause any changes to the directories in the file + # system. This can lead to having the directory names not match the + # title/author, which leads to trouble when libraries are copied to + # a case-sensitive system. The following code fixes this by checking + # each segment. If they are different because of case, then rename + # the segment to some temp file name, then rename it back to the + # correct name. Note that the code above correctly handles files in + # the directories, so no need to do them here. + for oldseg, newseg in zip(c1, c2): + if oldseg.lower() == newseg.lower() and oldseg != newseg: + while True: + # need a temp name in the current segment for renames + tempname = os.path.join(curpath, 'TEMP.%f'%time.time()) + if not os.path.exists(tempname): + break + os.rename(os.path.join(curpath, oldseg), tempname) + os.rename(tempname, os.path.join(curpath, newseg)) + curpath = os.path.join(curpath, newseg) def add_listener(self, listener): ''' @@ -494,6 +523,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): mi.timestamp = self.timestamp(idx, index_is_id=index_is_id) mi.pubdate = self.pubdate(idx, index_is_id=index_is_id) mi.uuid = self.uuid(idx, index_is_id=index_is_id) + mi.title_sort = self.title_sort(idx, index_is_id=index_is_id) tags = self.tags(idx, index_is_id=index_is_id) if tags: mi.tags = [i.strip() for i in tags.split(',')] @@ -700,7 +730,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): if notify: self.notify('delete', [id]) - def remove_format(self, index, format, index_is_id=False, notify=True): + def remove_format(self, index, format, index_is_id=False, notify=True, commit=True): id = index if index_is_id else self.id(index) name = self.conn.get('SELECT name FROM data WHERE book=? AND format=?', (id, format), all=False) if name: @@ -710,7 +740,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): except: traceback.print_exc() self.conn.execute('DELETE FROM data WHERE book=? AND format=?', (id, format.upper())) - self.conn.commit() + if commit: + self.conn.commit() self.refresh_ids([id]) if notify: self.notify('metadata', [id]) @@ -987,7 +1018,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): if mi.series: doit(self.set_series, id, mi.series, notify=False) if mi.cover_data[1] is not None: - doit(self.set_cover, id, mi.cover_data[1]) + doit(self.set_cover, id, mi.cover_data[1]) # doesn't use commit elif mi.cover is not None and os.access(mi.cover, os.R_OK): doit(self.set_cover, id, open(mi.cover, 'rb')) if mi.tags: @@ -1063,7 +1094,6 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): (id, aid)) except IntegrityError: # Sometimes books specify the same author twice in their metadata pass - self.conn.commit() ss = self.author_sort_from_book(id, index_is_id=True) self.conn.execute('UPDATE books SET author_sort=? WHERE id=?', (ss, id)) @@ -1092,24 +1122,26 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): if notify: self.notify('metadata', [id]) - def set_timestamp(self, id, dt, notify=True): + def set_timestamp(self, id, dt, notify=True, commit=True): if dt: self.conn.execute('UPDATE books SET timestamp=? WHERE id=?', (dt, id)) self.data.set(id, self.FIELD_MAP['timestamp'], dt, row_is_id=True) - self.conn.commit() + if commit: + self.conn.commit() if notify: self.notify('metadata', [id]) - def set_pubdate(self, id, dt, notify=True): + def set_pubdate(self, id, dt, notify=True, commit=True): if dt: self.conn.execute('UPDATE books SET pubdate=? WHERE id=?', (dt, id)) self.data.set(id, self.FIELD_MAP['pubdate'], dt, row_is_id=True) - self.conn.commit() + if commit: + self.conn.commit() if notify: self.notify('metadata', [id]) - def set_publisher(self, id, publisher, notify=True): + def set_publisher(self, id, publisher, notify=True, commit=True): self.conn.execute('DELETE FROM books_publishers_link WHERE book=?',(id,)) self.conn.execute('DELETE FROM publishers WHERE (SELECT COUNT(id) FROM books_publishers_link WHERE publisher=publishers.id) < 1') if publisher: @@ -1121,7 +1153,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): else: aid = self.conn.execute('INSERT INTO publishers(name) VALUES (?)', (publisher,)).lastrowid self.conn.execute('INSERT INTO books_publishers_link(book, publisher) VALUES (?,?)', (id, aid)) - self.conn.commit() + if commit: + self.conn.commit() self.data.set(id, self.FIELD_MAP['publisher'], publisher, row_is_id=True) if notify: self.notify('metadata', [id]) @@ -1344,7 +1377,84 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): return set([]) return set([r[0] for r in result]) - def set_tags(self, id, tags, append=False, notify=True): + @classmethod + def cleanup_tags(cls, tags): + tags = [x.strip() for x in tags if x.strip()] + tags = [x.decode(preferred_encoding, 'replace') \ + if isbytestring(x) else x for x in tags] + tags = [u' '.join(x.split()) for x in tags] + ans, seen = [], set([]) + for tag in tags: + if tag.lower() not in seen: + seen.add(tag.lower()) + ans.append(tag) + return ans + + def bulk_modify_tags(self, ids, add=[], remove=[], notify=False): + add = self.cleanup_tags(add) + remove = self.cleanup_tags(remove) + remove = set(remove) - set(add) + if not ids or (not add and not remove): + return + + # Add tags that do not already exist into the tag table + all_tags = self.all_tags() + lt = [t.lower() for t in all_tags] + new_tags = [t for t in add if t.lower() not in lt] + if new_tags: + self.conn.executemany('INSERT INTO tags(name) VALUES (?)', [(x,) for x in + new_tags]) + + # Create the temporary tables to store the ids for books and tags + # to be operated on + tables = ('temp_bulk_tag_edit_books', 'temp_bulk_tag_edit_add', + 'temp_bulk_tag_edit_remove') + drops = '\n'.join(['DROP TABLE IF EXISTS %s;'%t for t in tables]) + creates = '\n'.join(['CREATE TEMP TABLE %s(id INTEGER PRIMARY KEY);'%t + for t in tables]) + self.conn.executescript(drops + creates) + + # Populate the books temp table + self.conn.executemany( + 'INSERT INTO temp_bulk_tag_edit_books VALUES (?)', + [(x,) for x in ids]) + + # Populate the add/remove tags temp tables + for table, tags in enumerate([add, remove]): + if not tags: + continue + table = tables[table+1] + insert = ('INSERT INTO %s(id) SELECT tags.id FROM tags WHERE name=?' + ' COLLATE PYNOCASE LIMIT 1') + self.conn.executemany(insert%table, [(x,) for x in tags]) + + if remove: + self.conn.execute( + '''DELETE FROM books_tags_link WHERE + book IN (SELECT id FROM %s) AND + tag IN (SELECT id FROM %s)''' + % (tables[0], tables[2])) + + if add: + self.conn.execute( + ''' + INSERT OR REPLACE INTO books_tags_link(book, tag) SELECT {0}.id, {1}.id FROM + {0}, {1} + '''.format(tables[0], tables[1]) + ) + self.conn.executescript(drops) + self.conn.commit() + + for x in ids: + tags = u','.join(self.get_tags(x)) + self.data.set(x, self.FIELD_MAP['tags'], tags, row_is_id=True) + if notify: + self.notify('metadata', ids) + + def commit(self): + self.conn.commit() + + def set_tags(self, id, tags, append=False, notify=True, commit=True): ''' @param tags: list of strings @param append: If True existing tags are not removed @@ -1353,10 +1463,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): 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] + tags = self.cleanup_tags(tags) for tag in (set(tags)-otags): tag = tag.strip() if not tag: @@ -1381,8 +1488,9 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): (id, tid), all=False): self.conn.execute('INSERT INTO books_tags_link(book, tag) VALUES (?,?)', (id, tid)) - self.conn.commit() - tags = ','.join(self.get_tags(id)) + if commit: + self.conn.commit() + tags = u','.join(self.get_tags(id)) self.data.set(id, self.FIELD_MAP['tags'], tags, row_is_id=True) if notify: self.notify('metadata', [id]) @@ -1420,7 +1528,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): self.conn.execute('DELETE FROM tags WHERE id=?', (id,)) self.conn.commit() - def set_series(self, id, series, notify=True): + def set_series(self, id, series, notify=True, commit=True): self.conn.execute('DELETE FROM books_series_link WHERE book=?',(id,)) self.conn.execute('DELETE FROM series WHERE (SELECT COUNT(id) FROM books_series_link WHERE series=series.id) < 1') if series: @@ -1434,12 +1542,13 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): else: aid = self.conn.execute('INSERT INTO series(name) VALUES (?)', (series,)).lastrowid self.conn.execute('INSERT INTO books_series_link(book, series) VALUES (?,?)', (id, aid)) - self.conn.commit() + if commit: + self.conn.commit() self.data.set(id, self.FIELD_MAP['series'], series, row_is_id=True) if notify: self.notify('metadata', [id]) - def set_series_index(self, id, idx, notify=True): + def set_series_index(self, id, idx, notify=True, commit=True): if idx is None: idx = 1.0 try: @@ -1447,40 +1556,45 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): except: idx = 1.0 self.conn.execute('UPDATE books SET series_index=? WHERE id=?', (idx, id)) - self.conn.commit() + if commit: + self.conn.commit() self.data.set(id, self.FIELD_MAP['series_index'], idx, row_is_id=True) if notify: self.notify('metadata', [id]) - def set_rating(self, id, rating, notify=True): + def set_rating(self, id, rating, notify=True, commit=True): rating = int(rating) self.conn.execute('DELETE FROM books_ratings_link WHERE book=?',(id,)) rat = self.conn.get('SELECT id FROM ratings WHERE rating=?', (rating,), all=False) rat = rat if rat else self.conn.execute('INSERT INTO ratings(rating) VALUES (?)', (rating,)).lastrowid self.conn.execute('INSERT INTO books_ratings_link(book, rating) VALUES (?,?)', (id, rat)) - self.conn.commit() + if commit: + self.conn.commit() self.data.set(id, self.FIELD_MAP['rating'], rating, row_is_id=True) if notify: self.notify('metadata', [id]) - def set_comment(self, id, text, notify=True): + def set_comment(self, id, text, notify=True, commit=True): self.conn.execute('DELETE FROM comments WHERE book=?', (id,)) self.conn.execute('INSERT INTO comments(book,text) VALUES (?,?)', (id, text)) - self.conn.commit() + if commit: + self.conn.commit() self.data.set(id, self.FIELD_MAP['comments'], text, row_is_id=True) if notify: self.notify('metadata', [id]) - def set_author_sort(self, id, sort, notify=True): + def set_author_sort(self, id, sort, notify=True, commit=True): self.conn.execute('UPDATE books SET author_sort=? WHERE id=?', (sort, id)) - self.conn.commit() + if commit: + self.conn.commit() self.data.set(id, self.FIELD_MAP['author_sort'], sort, row_is_id=True) if notify: self.notify('metadata', [id]) - def set_isbn(self, id, isbn, notify=True): + def set_isbn(self, id, isbn, notify=True, commit=True): self.conn.execute('UPDATE books SET isbn=? WHERE id=?', (isbn, id)) - self.conn.commit() + if commit: + self.conn.commit() self.data.set(id, self.FIELD_MAP['isbn'], isbn, row_is_id=True) if notify: self.notify('metadata', [id]) @@ -1670,6 +1784,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): self.data.refresh_ids(self, [id]) # Needed to update format list and size if notify: self.notify('add', [id]) + return id def get_top_level_move_items(self): items = set(os.listdir(self.library_path)) diff --git a/src/calibre/library/save_to_disk.py b/src/calibre/library/save_to_disk.py index 845ec0590d..15020855f7 100644 --- a/src/calibre/library/save_to_disk.py +++ b/src/calibre/library/save_to_disk.py @@ -8,13 +8,13 @@ __docformat__ = 'restructuredtext en' import os, traceback, cStringIO, re -from calibre.utils.config import Config, StringConfig +from calibre.utils.config import Config, StringConfig, tweaks from calibre.utils.filenames import shorten_components_to, supports_long_names, \ ascii_filename, sanitize_file_name from calibre.ebooks.metadata.opf2 import metadata_to_opf from calibre.ebooks.metadata.meta import set_metadata from calibre.constants import preferred_encoding, filesystem_encoding - +from calibre.ebooks.metadata import title_sort from calibre import strftime DEFAULT_TEMPLATE = '{author_sort}/{title}/{title} - {authors}' @@ -99,7 +99,8 @@ def preprocess_template(template): def safe_format(x, format_args): try: - return x.format(**format_args).strip() + ans = x.format(**format_args).strip() + return re.sub(r'\s+', ' ', ans) except IndexError: # Thrown if user used [] and index is out of bounds pass except AttributeError: # Thrown if user used a non existing attribute @@ -109,9 +110,11 @@ def safe_format(x, format_args): def get_components(template, mi, id, timefmt='%b %Y', length=250, sanitize_func=ascii_filename, replace_whitespace=False, to_lowercase=False): + library_order = tweaks['save_template_title_series_sorting'] == 'library_order' + tsfmt = title_sort if library_order else lambda x: x format_args = dict(**FORMAT_ARGS) if mi.title: - format_args['title'] = mi.title + format_args['title'] = tsfmt(mi.title) if mi.authors: format_args['authors'] = mi.format_authors() format_args['author'] = format_args['authors'] @@ -122,9 +125,11 @@ def get_components(template, mi, id, timefmt='%b %Y', length=250, if format_args['tags'].startswith('/'): format_args['tags'] = format_args['tags'][1:] if mi.series: - format_args['series'] = mi.series + format_args['series'] = tsfmt(mi.series) if mi.series_index is not None: format_args['series_index'] = mi.format_series_index() + else: + template = re.sub(r'\{series_index[^}]*?\}', '', template) if mi.rating is not None: format_args['rating'] = mi.format_rating() if mi.isbn: diff --git a/src/calibre/library/server/base.py b/src/calibre/library/server/base.py index 68d3a40bab..e949c712d4 100644 --- a/src/calibre/library/server/base.py +++ b/src/calibre/library/server/base.py @@ -64,6 +64,7 @@ class LibraryServer(ContentServer, MobileServer, XMLServer, OPDSServer, Cache): break self.opts = opts self.embedded = embedded + self.state_callback = None self.max_cover_width, self.max_cover_height = \ map(int, self.opts.max_cover.split('x')) path = P('content_server') @@ -94,9 +95,19 @@ class LibraryServer(ContentServer, MobileServer, XMLServer, OPDSServer, Cache): 'tools.digest_auth.users' : {opts.username.strip():opts.password.strip()}, } + sr = getattr(opts, 'restriction', None) + sr = db.prefs.get('cs_restriction', '') if sr is None else sr + self.set_search_restriction(sr) + self.is_running = False self.exception = None + def set_search_restriction(self, restriction): + if restriction: + self.search_restriction = 'search:"%s"'%restriction + else: + self.search_restriction = '' + def setup_loggers(self): access_file = log_access_file error_file = log_error_file @@ -159,11 +170,22 @@ class LibraryServer(ContentServer, MobileServer, XMLServer, OPDSServer, Cache): import traceback cherrypy.log.error('Failed to stop BonJour:') cherrypy.log.error(traceback.format_exc()) + try: + if callable(self.state_callback): + self.state_callback(self.is_running) + except: + pass def exit(self): try: cherrypy.engine.exit() finally: cherrypy.server.httpserver = None + self.is_running = False + try: + if callable(self.state_callback): + self.state_callback(self.is_running) + except: + pass diff --git a/src/calibre/library/server/cache.py b/src/calibre/library/server/cache.py index 9fec2c2737..94e4a1c041 100644 --- a/src/calibre/library/server/cache.py +++ b/src/calibre/library/server/cache.py @@ -17,8 +17,7 @@ class Cache(object): def search_cache(self, search): old = self._search_cache.pop(search, None) if old is None or old[0] <= self.db.last_modified(): - matches = self.db.data.search(search, return_matches=True, - ignore_search_restriction=True) + matches = self.db.data.search_getting_ids(search, self.search_restriction) if not matches: matches = [] self._search_cache[search] = (utcnow(), frozenset(matches)) diff --git a/src/calibre/library/server/content.py b/src/calibre/library/server/content.py index 0e04fdfdb5..6784abd8f4 100644 --- a/src/calibre/library/server/content.py +++ b/src/calibre/library/server/content.py @@ -183,7 +183,8 @@ class ContentServer(object): fmt = TemporaryFile() fmt.write(raw) fmt.seek(0) - set_metadata(fmt, self.db.get_metadata(id, index_is_id=True), + set_metadata(fmt, self.db.get_metadata(id, index_is_id=True, + get_cover=True), 'epub') fmt.seek(0) mt = guess_type('dummy.'+format.lower())[0] diff --git a/src/calibre/library/server/main.py b/src/calibre/library/server/main.py index 5ca82c6b98..54dd205b35 100644 --- a/src/calibre/library/server/main.py +++ b/src/calibre/library/server/main.py @@ -32,6 +32,10 @@ def option_parser(): help=_('Write process PID to the specified file')) parser.add_option('--daemonize', default=False, action='store_true', help='Run process in background as a daemon. No effect on windows.') + parser.add_option('--restriction', default=None, + help=_('Specifies a restriction to be used for this invocation. ' + 'This option overrides any per-library settings specified' + ' in the GUI')) return parser def daemonize(stdin='/dev/null', stdout='/dev/null', stderr='/dev/null'): diff --git a/src/calibre/library/server/mobile.py b/src/calibre/library/server/mobile.py index 6a227a6366..aa7a740972 100644 --- a/src/calibre/library/server/mobile.py +++ b/src/calibre/library/server/mobile.py @@ -5,18 +5,19 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import re +import re, os import __builtin__ import cherrypy from lxml import html -from lxml.html.builder import HTML, HEAD, TITLE, STYLE, LINK, DIV, IMG, BODY, \ +from lxml.html.builder import HTML, HEAD, TITLE, LINK, DIV, IMG, BODY, \ OPTION, SELECT, INPUT, FORM, SPAN, TABLE, TR, TD, A, HR from calibre.library.server.utils import strftime from calibre.ebooks.metadata import fmt_sidx from calibre.constants import __appname__ from calibre import human_readable +from calibre.utils.date import utcfromtimestamp def CLASS(*args, **kwargs): # class is a reserved word in Python kwargs['class'] = ' '.join(args) @@ -140,85 +141,7 @@ def build_index(books, num, search, sort, order, start, total, url_base): TITLE(__appname__ + ' Library'), LINK(rel='icon', href='http://calibre-ebook.com/favicon.ico', type='image/x-icon'), - STYLE( # {{{ - ''' -.navigation table.buttons { - width: 100%; -} -.navigation .button { - width: 50%; -} -.button a, .button:visited a { - padding: 0.5em; - font-size: 1.25em; - border: 1px solid black; - text-color: black; - background-color: #ddd; - border-top: 1px solid ThreeDLightShadow; - border-right: 1px solid ButtonShadow; - border-bottom: 1px solid ButtonShadow; - border-left: 1 px solid ThreeDLightShadow; - -moz-border-radius: 0.25em; - -webkit-border-radius: 0.25em; -} - -.button:hover a { - border-top: 1px solid #666; - border-right: 1px solid #CCC; - border-bottom: 1 px solid #CCC; - border-left: 1 px solid #666; - - -} -div.navigation { - padding-bottom: 1em; - clear: both; -} - -#search_box { - border: 1px solid #393; - -moz-border-radius: 0.5em; - -webkit-border-radius: 0.5em; - padding: 1em; - margin-bottom: 0.5em; - float: right; -} - -#listing { - width: 100%; - border-collapse: collapse; -} -#listing td { - padding: 0.25em; -} - -#listing td.thumbnail { - height: 60px; - width: 60px; -} - -#listing tr:nth-child(even) { - - background: #eee; -} - -#listing .button a{ - display: inline-block; - width: 2.5em; - padding-left: 0em; - padding-right: 0em; - overflow: hidden; - text-align: center; -} - -#logo { - float: left; -} -#spacer { - clear: both; -} - - ''', type='text/css') # }}} + LINK(rel='stylesheet', type='text/css', href='/mobile/style.css') ), # End head body ) # End html @@ -231,6 +154,14 @@ class MobileServer(object): def add_routes(self, connect): connect('mobile', '/mobile', self.mobile) + connect('mobile_css', '/mobile/style.css', self.mobile_css) + + def mobile_css(self, *args, **kwargs): + path = P('content_server/mobile.css') + cherrypy.response.headers['Content-Type'] = 'text/css; charset=utf-8' + updated = utcfromtimestamp(os.stat(path).st_mtime) + cherrypy.response.headers['Last-Modified'] = self.last_modified(updated) + return open(path, 'rb').read() def mobile(self, start='1', num='25', sort='date', search='', _=None, order='descending'): @@ -250,7 +181,9 @@ class MobileServer(object): num = int(num) except ValueError: raise cherrypy.HTTPError(400, 'num: %s is not an integer'%num) - ids = self.db.data.parse(search) if search and search.strip() else self.db.data.universal_set() + if not search: + search = '' + ids = self.db.search_getting_ids(search.strip(), self.search_restriction) FM = self.db.FIELD_MAP items = [r for r in iter(self.db) if r[FM['id']] in ids] if sort is not None: diff --git a/src/calibre/library/server/opds.py b/src/calibre/library/server/opds.py index 7b8d609dda..fce4e32c51 100644 --- a/src/calibre/library/server/opds.py +++ b/src/calibre/library/server/opds.py @@ -341,7 +341,7 @@ class OPDSServer(object): items = items[offsets.offset:offsets.offset+max_items] updated = self.db.last_modified() cherrypy.response.headers['Last-Modified'] = self.last_modified(updated) - cherrypy.response.headers['Content-Type'] = 'text/xml' + cherrypy.response.headers['Content-Type'] = 'application/atom+xml;profile=opds-catalog' return str(AcquisitionFeed(updated, id_, items, offsets, page_url, up_url, version, self.db.FIELD_MAP)) @@ -400,7 +400,9 @@ class OPDSServer(object): owhich = hexlify('N'+which) up_url = url_for('opdsnavcatalog', version, which=owhich) items = categories[category] - items = [x for x in items if getattr(x, 'sort', x.name).startswith(which)] + def belongs(x, which): + return getattr(x, 'sort', x.name).lower().startswith(which.lower()) + items = [x for x in items if belongs(x, which)] if not items: raise cherrypy.HTTPError(404, 'No items in group %r:%r'%(category, which)) @@ -413,7 +415,7 @@ class OPDSServer(object): items = list(items)[offsets.offset:offsets.offset+max_items] cherrypy.response.headers['Last-Modified'] = self.last_modified(updated) - cherrypy.response.headers['Content-Type'] = 'text/xml' + cherrypy.response.headers['Content-Type'] = 'application/atom+xml' return str(CategoryFeed(items, category, id_, updated, version, offsets, page_url, up_url)) @@ -465,7 +467,12 @@ class OPDSServer(object): def __init__(self, text, count): self.text, self.count = text, count - starts = set([getattr(x, 'sort', x.name)[0] for x in items]) + starts = set([]) + for x in items: + val = getattr(x, 'sort', x.name) + if not val: + val = 'A' + starts.add(val[0].upper()) category_groups = OrderedDict() for x in sorted(starts, cmp=lambda x,y:cmp(x.lower(), y.lower())): category_groups[x] = len([y for y in items if @@ -478,7 +485,7 @@ class OPDSServer(object): page_url, up_url) cherrypy.response.headers['Last-Modified'] = self.last_modified(updated) - cherrypy.response.headers['Content-Type'] = 'text/xml' + cherrypy.response.headers['Content-Type'] = 'application/atom+xml' return str(ans) @@ -511,7 +518,7 @@ class OPDSServer(object): if category == 'search': try: - ids = self.search_cache(which) + ids = self.search_cache('search:"%s"'%which) except: raise cherrypy.HTTPError(404, 'Search: %r not understood'%which) return self.get_opds_acquisition_feed(ids, offset, page_url, @@ -543,6 +550,8 @@ class OPDSServer(object): (_('Title'), _('Title'), 'Otitle'), ] for category in categories: + if len(categories[category]) == 0: + continue if category == 'formats': continue meta = category_meta.get(category, None) @@ -552,7 +561,7 @@ class OPDSServer(object): updated = self.db.last_modified() cherrypy.response.headers['Last-Modified'] = self.last_modified(updated) - cherrypy.response.headers['Content-Type'] = 'text/xml' + cherrypy.response.headers['Content-Type'] = 'application/atom+xml' feed = TopLevel(updated, cats, version) diff --git a/src/calibre/library/server/xml.py b/src/calibre/library/server/xml.py index 036a2051bf..9db786953e 100644 --- a/src/calibre/library/server/xml.py +++ b/src/calibre/library/server/xml.py @@ -45,7 +45,10 @@ class XMLServer(object): order = order.lower().strip() == 'ascending' - ids = self.db.data.parse(search) if search and search.strip() else self.db.data.universal_set() + if not search: + search = '' + + ids = self.db.search_getting_ids(search.strip(), self.search_restriction) FM = self.db.FIELD_MAP @@ -53,7 +56,6 @@ class XMLServer(object): if sort is not None: self.sort(items, sort, order) - books = [] def serialize(x): diff --git a/src/calibre/library/sqlite.py b/src/calibre/library/sqlite.py index 85954f6e0f..1242d0bf7b 100644 --- a/src/calibre/library/sqlite.py +++ b/src/calibre/library/sqlite.py @@ -13,10 +13,12 @@ from threading import Thread from Queue import Queue from threading import RLock from datetime import datetime +from functools import partial from calibre.ebooks.metadata import title_sort, author_to_author_sort from calibre.utils.config import tweaks from calibre.utils.date import parse_date, isoformat +from calibre import isbytestring global_lock = RLock() @@ -98,6 +100,19 @@ def _author_to_author_sort(x): if not x: return '' return author_to_author_sort(x.replace('|', ',')) +def pynocase(one, two, encoding='utf-8'): + if isbytestring(one): + try: + one = one.decode(encoding, 'replace') + except: + pass + if isbytestring(two): + try: + two = two.decode(encoding, 'replace') + except: + pass + return cmp(one.lower(), two.lower()) + class DBThread(Thread): CLOSE = '-------close---------' @@ -115,10 +130,13 @@ class DBThread(Thread): def connect(self): self.conn = sqlite.connect(self.path, factory=Connection, detect_types=sqlite.PARSE_DECLTYPES|sqlite.PARSE_COLNAMES) + encoding = self.conn.execute('pragma encoding').fetchone()[0] self.conn.row_factory = sqlite.Row if self.row_factory else lambda cursor, row : list(row) self.conn.create_aggregate('concat', 1, Concatenate) self.conn.create_aggregate('sortconcat', 2, SortedConcatenate) self.conn.create_aggregate('sort_concat', 2, SafeSortedConcatenate) + self.conn.create_collation('PYNOCASE', partial(pynocase, + encoding=encoding)) if tweaks['title_series_sorting'] == 'strictly_alphabetic': self.conn.create_function('title_sort', 1, lambda x:x) else: diff --git a/src/calibre/libunrar.py b/src/calibre/libunrar.py index bf38a47d64..5dc66eaa36 100644 --- a/src/calibre/libunrar.py +++ b/src/calibre/libunrar.py @@ -12,7 +12,7 @@ from ctypes import Structure as _Structure, c_char_p, c_uint, c_void_p, POINTER, from tempfile import NamedTemporaryFile from StringIO import StringIO -from calibre import iswindows, load_library, CurrentDir, prints +from calibre import iswindows, load_library, CurrentDir from calibre.ptempfile import TemporaryDirectory _librar_name = 'libunrar' @@ -177,7 +177,7 @@ def extract(path, dir): try: if open_archive_data.OpenResult != 0: raise UnRARException(_interpret_open_error(open_archive_data.OpenResult, path)) - prints('Archive:', path) + #prints('Archive:', path) #print get_archive_info(open_archive_data.Flags) header_data = RARHeaderDataEx(CmtBuf=None) #_libunrar.RARSetCallback(arc_data, callback_func, mode) @@ -239,7 +239,7 @@ def _extract_member(path, match, name): PFCode = _libunrar.RARProcessFileW(arc_data, RAR_EXTRACT, None, None) if PFCode != 0: raise UnRARException(_interpret_process_file_error(PFCode)) - abspath = os.path.abspath(*file_name.split('/')) + abspath = os.path.abspath(os.path.join(*file_name.split('/'))) return abspath else: PFCode = _libunrar.RARProcessFileW(arc_data, RAR_SKIP, None, None) diff --git a/src/calibre/linux.py b/src/calibre/linux.py index 33e7c004f0..9323581c53 100644 --- a/src/calibre/linux.py +++ b/src/calibre/linux.py @@ -3,12 +3,14 @@ __copyright__ = '2008, Kovid Goyal ' ''' Post installation script for linux ''' -import sys, os, shutil, cPickle, textwrap, stat +import sys, os, cPickle, textwrap, stat from subprocess import check_call from calibre import __appname__, prints, guess_type from calibre.constants import islinux, isfreebsd from calibre.customize.ui import all_input_formats +from calibre.ptempfile import TemporaryDirectory +from calibre import CurrentDir entry_points = { @@ -39,6 +41,7 @@ entry_points = { ], } +# Uninstall script {{{ UNINSTALL = '''\ #!{python} euid = {euid} @@ -79,6 +82,8 @@ for f in mr: os.remove(os.path.abspath(__file__)) ''' +# }}} + class PostInstall: def task_failed(self, msg): @@ -171,7 +176,7 @@ class PostInstall: self.task_failed('Creating uninstaller failed') - def setup_completion(self): + def setup_completion(self): # {{{ try: self.info('Setting up bash completion...') from calibre.ebooks.metadata.cli import option_parser as metaop, filetypes as meta_filetypes @@ -287,8 +292,9 @@ class PostInstall: if self.opts.fatal_errors: raise self.task_failed('Setting up completion failed') + # }}} - def install_man_pages(self): + def install_man_pages(self): # {{{ try: from calibre.utils.help2man import create_man_page if isfreebsd: @@ -318,73 +324,69 @@ class PostInstall: if self.opts.fatal_errors: raise self.task_failed('Installing MAN pages failed') + # }}} - def setup_desktop_integration(self): + def setup_desktop_integration(self): # {{{ try: - from PyQt4.QtCore import QFile - from tempfile import mkdtemp self.info('Setting up desktop integration...') - tdir = mkdtemp() - cwd = os.getcwdu() - try: - os.chdir(tdir) - render_svg(QFile(I('mimetypes/lrf.svg')), os.path.join(tdir, 'calibre-lrf.png')) - check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True) - self.icon_resources.append(('mimetypes', 'application-lrf', '128')) - check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True) - self.icon_resources.append(('mimetypes', 'application-lrs', - '128')) - QFile(I('library.png')).copy(os.path.join(tdir, 'calibre-gui.png')) - check_call('xdg-icon-resource install --noupdate --size 128 calibre-gui.png calibre-gui', shell=True) - self.icon_resources.append(('apps', 'calibre-gui', '128')) - render_svg(QFile(I('viewer.svg')), os.path.join(tdir, 'calibre-viewer.png')) - check_call('xdg-icon-resource install --size 128 calibre-viewer.png calibre-viewer', shell=True) - self.icon_resources.append(('apps', 'calibre-viewer', '128')) + with TemporaryDirectory() as tdir: + with CurrentDir(tdir): + render_img('mimetypes/lrf.svg', 'calibre-lrf.png') + check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True) + self.icon_resources.append(('mimetypes', 'application-lrf', '128')) + check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True) + self.icon_resources.append(('mimetypes', 'application-lrs', + '128')) + render_img('lt.png', 'calibre-gui.png') + check_call('xdg-icon-resource install --noupdate --size 128 calibre-gui.png calibre-gui', shell=True) + self.icon_resources.append(('apps', 'calibre-gui', '128')) + render_img('viewer.svg', 'calibre-viewer.png') + check_call('xdg-icon-resource install --size 128 calibre-viewer.png calibre-viewer', shell=True) + self.icon_resources.append(('apps', 'calibre-viewer', '128')) - mimetypes = set([]) - for x in all_input_formats(): - mt = guess_type('dummy.'+x)[0] - if mt and 'chemical' not in mt: - mimetypes.add(mt) + mimetypes = set([]) + for x in all_input_formats(): + mt = guess_type('dummy.'+x)[0] + if mt and 'chemical' not in mt: + mimetypes.add(mt) - def write_mimetypes(f): - f.write('MimeType=%s;\n'%';'.join(mimetypes)) + def write_mimetypes(f): + f.write('MimeType=%s;\n'%';'.join(mimetypes)) - f = open('calibre-lrfviewer.desktop', 'wb') - f.write(VIEWER) - f.close() - f = open('calibre-ebook-viewer.desktop', 'wb') - f.write(EVIEWER) - write_mimetypes(f) - f.close() - f = open('calibre-gui.desktop', 'wb') - f.write(GUI) - write_mimetypes(f) - f.close() - des = ('calibre-gui.desktop', 'calibre-lrfviewer.desktop', - 'calibre-ebook-viewer.desktop') - for x in des: - cmd = ['xdg-desktop-menu', 'install', './'+x] - if x != des[-1]: - cmd.insert(2, '--noupdate') - check_call(' '.join(cmd), shell=True) - self.menu_resources.append(x) - f = open('calibre-mimetypes', 'wb') - f.write(MIME) - f.close() - self.mime_resources.append('calibre-mimetypes') - check_call('xdg-mime install ./calibre-mimetypes', shell=True) - finally: - os.chdir(cwd) - shutil.rmtree(tdir) + f = open('calibre-lrfviewer.desktop', 'wb') + f.write(VIEWER) + f.close() + f = open('calibre-ebook-viewer.desktop', 'wb') + f.write(EVIEWER) + write_mimetypes(f) + f.close() + f = open('calibre-gui.desktop', 'wb') + f.write(GUI) + write_mimetypes(f) + f.close() + des = ('calibre-gui.desktop', 'calibre-lrfviewer.desktop', + 'calibre-ebook-viewer.desktop') + for x in des: + cmd = ['xdg-desktop-menu', 'install', './'+x] + if x != des[-1]: + cmd.insert(2, '--noupdate') + check_call(' '.join(cmd), shell=True) + self.menu_resources.append(x) + f = open('calibre-mimetypes', 'wb') + f.write(MIME) + f.close() + self.mime_resources.append('calibre-mimetypes') + check_call('xdg-mime install ./calibre-mimetypes', shell=True) except Exception: if self.opts.fatal_errors: raise self.task_failed('Setting up desktop integration failed') + # }}} + def option_parser(): from calibre.utils.config import OptionParser parser = OptionParser() @@ -542,21 +544,10 @@ MIME = '''\ ''' -def render_svg(image, dest, width=128, height=128): - from PyQt4.QtGui import QPainter, QImage - from PyQt4.QtSvg import QSvgRenderer - image = image.readAll() if hasattr(image, 'readAll') else image - svg = QSvgRenderer(image) - painter = QPainter() - image = QImage(width, height, QImage.Format_ARGB32) - painter.begin(image) - painter.setRenderHints(QPainter.Antialiasing|QPainter.TextAntialiasing|QPainter.SmoothPixmapTransform|QPainter.HighQualityAntialiasing) - painter.setCompositionMode(QPainter.CompositionMode_SourceOver) - svg.render(painter) - painter.end() - if dest is None: - return image - image.save(dest) +def render_img(image, dest, width=128, height=128): + from PyQt4.Qt import QImage, Qt + img = QImage(I(image)).scaled(width, height, Qt.IgnoreAspectRatio, Qt.SmoothTransformation) + img.save(dest) def main(): p = option_parser() diff --git a/src/calibre/manual/Makefile b/src/calibre/manual/Makefile index c856e105fd..dc72b40f3f 100644 --- a/src/calibre/manual/Makefile +++ b/src/calibre/manual/Makefile @@ -25,7 +25,7 @@ clean: html: mkdir -p .build/html .build/doctrees - $(SPHINXBUILD) -b custom $(ALLSPHINXOPTS) .build/html + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) .build/html @echo @echo "Build finished. The HTML pages are in .build/html." @@ -37,7 +37,7 @@ qthelp: epub: mkdir -p .build/qthelp .build/doctrees - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) .build/epub + $(SPHINXBUILD) -b myepub $(ALLSPHINXOPTS) .build/epub @echo @echo "Build finished." diff --git a/src/calibre/manual/conf.py b/src/calibre/manual/conf.py index 3866008f1f..fc8962bcfd 100644 --- a/src/calibre/manual/conf.py +++ b/src/calibre/manual/conf.py @@ -23,9 +23,11 @@ custom # General configuration # --------------------- +needs_sphinx = '1.0' + # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.addons.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', 'custom'] +extensions = ['sphinx.ext.autodoc', 'custom', 'sphinx.ext.viewcode'] # Add any paths that contain templates here, relative to this directory. templates_path = ['templates'] @@ -36,6 +38,9 @@ source_suffix = '.rst' # The master toctree document. master_doc = 'index' +# The language +language = 'en' + # General substitutions. project = __appname__ copyright = '2008, Kovid Goyal' @@ -81,7 +86,6 @@ pygments_style = 'sphinx' # given in html_static_path. html_theme = 'default' html_theme_options = {'stickysidebar':'true', 'relbarbgcolor':'black'} -html_style = 'calibre.css' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -100,8 +104,16 @@ html_use_smartypants = True html_title = 'calibre User Manual' html_short_title = 'Start' html_logo = 'resources/logo.png' + epub_author = 'Kovid Goyal' -epub_cover = 'resources/epub_cover.jpg' +epub_cover = 'epub_cover.jpg' +epub_publisher = 'Kovid Goyal' +epub_identifier = 'http://calibre-ebook.com/user_manual' +epub_scheme = 'url' +epub_uid = 'S54a88f8e9d42455e9c6db000e989225f' +epub_tocdepth = 4 +epub_tocdup = True +epub_pre_files = [('epub_titlepage.html', 'Cover')] # Custom sidebar templates, maps document names to template names. #html_sidebars = {} diff --git a/src/calibre/manual/custom.py b/src/calibre/manual/custom.py index 917b927086..eb0a65ac33 100644 --- a/src/calibre/manual/custom.py +++ b/src/calibre/manual/custom.py @@ -3,29 +3,17 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' -import sys, os, inspect, re, textwrap +import sys, os, re, textwrap sys.path.insert(0, os.path.abspath('../../')) sys.extensions_location = '../plugins' sys.resources_location = '../../../resources' -from sphinx.builders.html import StandaloneHTMLBuilder -from qthelp import QtHelpBuilder -from epub import EPUBHelpBuilder -from sphinx.util import rpartition from sphinx.util.console import bold -from sphinx.ext.autodoc import prepare_docstring -from docutils.statemachine import ViewList -from docutils import nodes sys.path.append(os.path.abspath('../../../')) from calibre.linux import entry_points - -class CustomBuilder(StandaloneHTMLBuilder): - name = 'custom' - -class CustomQtBuild(QtHelpBuilder): - name = 'customqt' +from epub import EPUBHelpBuilder def substitute(app, doctree): pass @@ -252,64 +240,9 @@ def cli_docs(app): raw += '\n'+'\n'.join(lines) update_cli_doc(os.path.join('cli', cmd+'.rst'), raw, info) -def auto_member(dirname, arguments, options, content, lineno, - content_offset, block_text, state, state_machine): - name = arguments[0] - env = state.document.settings.env - - mod_cls, obj = rpartition(name, '.') - if not mod_cls and hasattr(env, 'autodoc_current_class'): - mod_cls = env.autodoc_current_class - if not mod_cls: - mod_cls = env.currclass - mod, cls = rpartition(mod_cls, '.') - if not mod and hasattr(env, 'autodoc_current_module'): - mod = env.autodoc_current_module - if not mod: - mod = env.currmodule - - module = __import__(mod, None, None, ['foo']) - cls = getattr(module, cls) - lines = inspect.getsourcelines(cls)[0] - - comment_lines = [] - for i, line in enumerate(lines): - if re.search(r'%s\s*=\s*\S+'%obj, line) and not line.strip().startswith('#:'): - for j in range(i-1, 0, -1): - raw = lines[j].strip() - if not raw.startswith('#:'): - break - comment_lines.append(raw[2:]) - break - comment_lines.reverse() - docstring = '\n'.join(comment_lines) - - if module is not None and docstring is not None: - docstring = docstring.decode('utf-8') - - result = ViewList() - result.append('.. attribute:: %s.%s'%(cls.__name__, obj), '') - result.append('', '') - - docstring = prepare_docstring(docstring) - for i, line in enumerate(docstring): - result.append(' ' + line, '' % name, i) - - result.append('', '') - result.append(' **Default**: ``%s``'%repr(getattr(cls, obj, None)), '') - result.append('', '') - node = nodes.paragraph() - state.nested_parse(result, content_offset, node) - - return list(node) - def setup(app): app.add_config_value('epub_cover', None, False) - app.add_config_value('epub_author', '', False) - app.add_builder(CustomBuilder) - app.add_builder(CustomQtBuild) app.add_builder(EPUBHelpBuilder) - app.add_directive('automember', auto_member, 1, (1, 0, 1)) app.connect('doctree-read', substitute) app.connect('builder-inited', cli_docs) app.connect('build-finished', finished) diff --git a/src/calibre/manual/customize.rst b/src/calibre/manual/customize.rst index 9f4d15cfd4..0dd2e349f3 100644 --- a/src/calibre/manual/customize.rst +++ b/src/calibre/manual/customize.rst @@ -30,8 +30,8 @@ Environment variables Tweaks ------------ -Tweaks are small changes that you can specify to control various aspects of |app|'s behavior. You specify them by editing the 2tweaks.py file in the config directory. -The default tweaks.py file is reproduced below +Tweaks are small changes that you can specify to control various aspects of |app|'s behavior. You can change them by going to Preferences->Advanced->Tweaks. +The default values for the tweaks are reproduced below .. literalinclude:: ../../../resources/default_tweaks.py diff --git a/src/calibre/manual/epub.py b/src/calibre/manual/epub.py index d54eb99a8d..a162303b09 100644 --- a/src/calibre/manual/epub.py +++ b/src/calibre/manual/epub.py @@ -6,298 +6,53 @@ __license__ = 'GPL v3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import os, mimetypes, uuid, shutil -from datetime import datetime -from docutils import nodes -from xml.sax.saxutils import escape, quoteattr -from urlparse import urldefrag -from zipfile import ZipFile, ZIP_STORED, ZipInfo +import os, time -from sphinx import addnodes -from sphinx.builders.html import StandaloneHTMLBuilder +from sphinx.builders.epub import EpubBuilder -NCX = '''\ - - - - - - - - - - Table of Contents - - {navpoints} - - -''' +class EPUBHelpBuilder(EpubBuilder): + name = 'myepub' -OPF = '''\ - - - - {title} - {author} - Sphinx - {uid} - {date} - - - - - {manifest} - - - {spine} - - - {guide} - - -''' + def add_cover(self, outdir, cover_fname): + href = '_static/'+cover_fname + opf = os.path.join(self.outdir, 'content.opf') -CONTAINER='''\ - - - - - - -''' - -SVG_TEMPLATE = '''\ - - - - - Cover - - - - - - - - -''' - -class TOC(list): - - def __init__(self, title=None, href=None): - list.__init__(self) - self.title, self.href = title, href - - def create_child(self, title, href): - self.append(TOC(title, href)) - return self[-1] - - def depth(self): - try: - return max(node.depth() for node in self)+1 - except ValueError: - return 1 + cover = '''\ + + + + + Cover + + + + + + + + + '''%href + self.files.append('epub_titlepage.html') + open(os.path.join(outdir, self.files[-1]), 'wb').write(cover) -class EPUBHelpBuilder(StandaloneHTMLBuilder): - """ - Builder that also outputs Qt help project, contents and index files. - """ - name = 'epub' - - # don't copy the reST source - copysource = False - - supported_image_types = ['image/svg+xml', 'image/png', 'image/gif', - 'image/jpeg'] - - # don't add links - add_permalinks = False - # don't add sidebar etc. - embedded = True - - def init(self): - StandaloneHTMLBuilder.init(self) - self.out_suffix = '.html' - self.link_suffix = '.html' - self.html_outdir = self.outdir = os.path.join(self.outdir, 'src') - self.conf = self.config - - def finish(self): - StandaloneHTMLBuilder.finish(self) - self.create_titlepage() - self.outdir = os.path.dirname(self.outdir) - cwd = os.getcwd() - os.chdir(self.html_outdir) - try: - self.generate_manifest() - self.generate_toc() - self.render_opf() - self.render_epub() - finally: - os.chdir(cwd) - - def render_epub(self): - container = CONTAINER.format('content.opf') - path = os.path.abspath('..'+os.sep+self.conf.project+'.epub') - zf = ZipFile(path, 'w') - zi = ZipInfo('mimetype') - zi.compress_type = ZIP_STORED - zf.writestr(zi, 'application/epub+zip') - zf.writestr('META-INF/container.xml', container) - for url in self.manifest: - fp = os.path.join(self.html_outdir, *url.split('/')) - zf.write(fp, url) - zf.close() - self.info('EPUB created at: '+path) - - - def render_opf(self): - manifest = [] - for href in self.manifest: - mt, id = self.manifest[href] - manifest.append(' '*8 + ''%\ - tuple(map(quoteattr, (id, href, mt)))) - manifest = '\n'.join(manifest) - spine = [' '*8+''%quoteattr(x) for x in self.spine] - spine = '\n'.join(spine) - guide = '' - - opf = OPF.format(title=escape(self.conf.html_title), - author=escape(self.conf.epub_author), uid=str(uuid.uuid4()), - date=datetime.now().isoformat(), manifest=manifest, spine=spine, - guide=guide) - open('content.opf', 'wb').write(opf) - self.manifest['content.opf'] = ('application/oebps-package+xml', 'opf') - - def create_titlepage(self): - self.cover_image_url = None - if self.conf.epub_cover: - img = '_static/'+os.path.basename(self.conf.epub_cover) - shutil.copyfile(self.conf.epub_cover, os.path.join(self.html_outdir, - *img.split('/'))) - self.cover_image_url = img - tp = SVG_TEMPLATE%img.split('/')[-1] - open(os.path.join(self.html_outdir, '_static', 'titlepage.html'), - 'wb').write(tp) - - def generate_manifest(self): - self.manifest = {} - id = 1 - for dirpath, dirnames, filenames in os.walk('.'): - for fname in filenames: - if fname == '.buildinfo': - continue - fpath = os.path.abspath(os.path.join(dirpath, fname)) - url = os.path.relpath(fpath).replace(os.sep, '/') - self.manifest[url] = mimetypes.guess_type(url, False)[0] - if self.manifest[url] is None: - self.warn('Unknown mimetype for: ' + url) - self.manifest[url] = 'application/octet-stream' - if self.manifest[url] == 'text/html': - self.manifest[url] = 'application/xhtml+xml' - if self.cover_image_url and url.endswith(self.cover_image_url): - id_ = 'cover' - else: - id_ = 'id'+str(id) - id += 1 - self.manifest[url] = (self.manifest[url], id_) - - def isdocnode(self, node): - if not isinstance(node, nodes.list_item): - return False - if len(node.children) != 2: - return False - if not isinstance(node.children[0], addnodes.compact_paragraph): - return False - if not isinstance(node.children[0][0], nodes.reference): - return False - if not isinstance(node.children[1], nodes.bullet_list): - return False - return True - - def generate_toc(self): - tocdoc = self.env.get_and_resolve_doctree(self.config.master_doc, self, - prune_toctrees=False) - istoctree = lambda node: ( - isinstance(node, addnodes.compact_paragraph) - and node.has_key('toctree')) - toc = TOC() - for node in tocdoc.traverse(istoctree): - self.extend_toc(toc, node) - self._parts = [] - self._po = 0 - self._po_map = {} - self.spine_map = {} - self.spine = [] - self.render_toc(toc) - navpoints = '\n'.join(self._parts).strip() - ncx = NCX.format(uid=str(uuid.uuid4()), depth=toc.depth(), - navpoints=navpoints) - open('toc.ncx', 'wb').write(ncx) - self.manifest['toc.ncx'] = ('application/x-dtbncx+xml', 'ncx') - self.spine.insert(0, self.manifest[self.conf.master_doc+'.html'][1]) - if self.conf.epub_cover: - self.spine.insert(0, self.manifest['_static/titlepage.html'][1]) - - def add_to_spine(self, href): - href = urldefrag(href)[0] - if href not in self.spine_map: - for url in self.manifest: - if url == href: - self.spine_map[href]= self.manifest[url][1] - self.spine.append(self.spine_map[href]) - - def render_toc(self, toc, level=2): - for child in toc: - if child.title and child.href: - href = child.href - self.add_to_spine(href) - title = escape(child.title) - if isinstance(title, unicode): - title = title.encode('utf-8') - if child.href in self._po_map: - po = self._po_map[child.href] - else: - self._po += 1 - po = self._po - self._parts.append(' '*(level*4)+ - ''%(uuid.uuid4(), - po)) - self._parts.append(' '*((level+1)*4)+ - '%s'%title) - self._parts.append(' '*((level+1)*4)+ - ''%quoteattr(href)) - self.render_toc(child, level+1) - self._parts.append(' '*(level*4)+'') - - - - - def extend_toc(self, toc, node): - if self.isdocnode(node): - refnode = node.children[0][0] - parent = toc.create_child(refnode.astext(), refnode['refuri']) - for subnode in node.children[1]: - self.extend_toc(parent, subnode) - elif isinstance(node, (nodes.list_item, nodes.bullet_list, - addnodes.compact_paragraph)): - for subnode in node: - self.extend_toc(toc, subnode) - elif isinstance(node, nodes.reference): - parent = toc.create_child(node.astext(), node['refuri']) - + raw = open(opf, 'rb').read() + raw = raw.replace('', + ('\n' + '%s\n') % + (href.replace('/', '_'), time.strftime('%Y-%m-%d'))) + raw = raw.replace('', + ('\n').\ + format('epub_titlepage.html')) + open(opf, 'wb').write(raw) + def build_epub(self, outdir, *args, **kwargs): + if self.config.epub_cover: + self.add_cover(outdir, self.config.epub_cover) + EpubBuilder.build_epub(self, outdir, *args, **kwargs) diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst index 6359e76abc..deb693c199 100644 --- a/src/calibre/manual/faq.rst +++ b/src/calibre/manual/faq.rst @@ -277,7 +277,8 @@ In |app|, you would instead use tags to mark genre and read status and then just Why doesn't |app| have a column for foo? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -|app| is designed to have columns for the most frequently and widely used fields. If it does not have a coulmn for your favorite field, you can always add a tag to the book for that piece of information. |app| also supports a general purpose "comments" fields for longer items. +|app| is designed to have columns for the most frequently and widely used fields. In addition, you can add any columns you like. Columns can be added via Preferences->Interface. +Watch the tutorial `UI Power tips `_ to learn how to create your own columns. How do I move my |app| library from one computer to another? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -376,6 +377,12 @@ How do I use purchased EPUB books with |app|? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Most purchased EPUB books have `DRM `_. This prevents |app| from opening them. You can still use |app| to store and transfer them to your e-book reader. First, you must authorize your reader on a windows machine with Adobe Digital Editions. Once this is done, EPUB books transferred with |app| will work fine on your reader. When you purchase an epub book from a website, you will get an ".acsm" file. This file should be opened with Adobe Digital Editions, which will then download the actual ".epub" e-book. The e-book file will be stored in the folder "My Digital Editions", from where you can add it to |app|. +Can I have the comment metadata show up on my reader? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Most readers do not support this. You should complain to the manufacturer about it and hopefully if enough people complain, things will change. In the meantime, you can insert the metadata, including comments into a "Jacket page" at the start of the ebook, by using the option to "Insert metadata as page at start of book" during conversion. The option is found in the :guilabel:`Structure Detection` section of the conversion settings. Note that for this to have effect you have to *convert* the book. If your book is already in a format that does not need conversion, you can convert from that format to the same format. + +Another alternative is to create a catalog in ebook form containing a listing of all the books in your calibre library, with their metadata. Click the arrow next to the convert button to access the catalog creation tool. And before you ask, no you cannot have the catalog "link directly to" books on your reader. I want some feature added to |app|. What can I do? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/calibre/manual/gui.rst b/src/calibre/manual/gui.rst index 613eb82559..7ffc77575e 100644 --- a/src/calibre/manual/gui.rst +++ b/src/calibre/manual/gui.rst @@ -247,6 +247,7 @@ You can search for the absence or presence of a field using the special "true" a cover:false will give you all books without a cover series:true will give you all books that belong to a series comments:false will give you all books with an empty comment + format:false will give you all books with no actual files (empty records) Yes/no custom columns are searchable. Searching for ``false``, ``empty``, or ``blank`` will find all books with undefined values in the column. Searching for ``true`` will find all books that do not have undefined diff --git a/src/calibre/manual/news_recipe.rst b/src/calibre/manual/news_recipe.rst index 7e5045ea47..767c47b41b 100644 --- a/src/calibre/manual/news_recipe.rst +++ b/src/calibre/manual/news_recipe.rst @@ -6,145 +6,12 @@ API Documentation for recipes =============================== .. module:: calibre.web.feeds.news - :synopsis: Defines various abstract base classes that can be subclassed to create powerful news fetching recipes. + :synopsis: The API for writing recipes is defined by the :class:`BasicNewsRecipe` -Defines various abstract base classes that can be subclassed to create powerful news fetching recipes. The useful -subclasses are: +The API for writing recipes is defined by the :class:`BasicNewsRecipe` -.. contents:: - :depth: 1 - :local: - -BasicNewsRecipe ------------------ - -.. class:: BasicNewsRecipe - - Abstract base class that contains a number of members and methods to customize the fetching of contents in your recipes. All - recipes must inherit from this class or a subclass of it. - - The members and methods are organized as follows: - -.. contents:: - :depth: 1 - :local: - - - -Customizing e-book download -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automember:: BasicNewsRecipe.title - -.. automember:: BasicNewsRecipe.description - -.. automember:: BasicNewsRecipe.__author__ - -.. automember:: BasicNewsRecipe.max_articles_per_feed - -.. automember:: BasicNewsRecipe.oldest_article - -.. automember:: BasicNewsRecipe.recursions - -.. automember:: BasicNewsRecipe.delay - -.. automember:: BasicNewsRecipe.simultaneous_downloads - -.. automember:: BasicNewsRecipe.timeout - -.. automember:: BasicNewsRecipe.timefmt - -.. automember:: BasicNewsRecipe.conversion_options - -.. automember:: BasicNewsRecipe.feeds - -.. automember:: BasicNewsRecipe.no_stylesheets - -.. automember:: BasicNewsRecipe.encoding - -.. automethod:: BasicNewsRecipe.get_browser - -.. automethod:: BasicNewsRecipe.get_cover_url - -.. automethod:: BasicNewsRecipe.get_feeds - -.. automethod:: BasicNewsRecipe.parse_index - - - -Customizing feed parsing -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automember:: BasicNewsRecipe.summary_length - -.. automember:: BasicNewsRecipe.use_embedded_content - -.. automethod:: BasicNewsRecipe.get_article_url - -.. automethod:: BasicNewsRecipe.print_version - -.. automethod:: BasicNewsRecipe.parse_feeds - - -Pre/post processing of downloaded HTML -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automember:: BasicNewsRecipe.extra_css - -.. automember:: BasicNewsRecipe.match_regexps - -.. automember:: BasicNewsRecipe.filter_regexps - -.. automember:: BasicNewsRecipe.remove_tags - -.. automember:: BasicNewsRecipe.remove_tags_after - -.. automember:: BasicNewsRecipe.remove_tags_before - -.. automember:: BasicNewsRecipe.remove_attributes - -.. automember:: BasicNewsRecipe.keep_only_tags - -.. automember:: BasicNewsRecipe.preprocess_regexps - -.. automember:: BasicNewsRecipe.template_css - -.. automember:: BasicNewsRecipe.remove_javascript - -.. automethod:: BasicNewsRecipe.skip_ad_pages - -.. automethod:: BasicNewsRecipe.preprocess_html - -.. automethod:: BasicNewsRecipe.postprocess_html - -.. automethod:: BasicNewsRecipe.populate_article_metadata - - -Convenience methods -~~~~~~~~~~~~~~~~~~~~~~~ - -.. automethod:: BasicNewsRecipe.cleanup - -.. automethod:: BasicNewsRecipe.index_to_soup - -.. automethod:: BasicNewsRecipe.sort_index_by - -.. automethod:: BasicNewsRecipe.tag_to_string - - -Miscellaneous -~~~~~~~~~~~~~~~~~~ - -.. automember:: BasicNewsRecipe.requires_version - - -CustomIndexRecipe ---------------------- - -.. class:: CustomIndexRecipe - - This class is useful for getting content from websites that don't follow the "multiple articles in several feeds" content model. - -.. automethod:: CustomIndexRecipe.custom_index +.. autoclass:: BasicNewsRecipe + :members: + :member-order: groupwise diff --git a/src/calibre/manual/plugins.rst b/src/calibre/manual/plugins.rst index ffc038beef..8b6919db90 100644 --- a/src/calibre/manual/plugins.rst +++ b/src/calibre/manual/plugins.rst @@ -5,7 +5,7 @@ API Documentation for plugins =============================== -.. module:: calibre.customize.__init__ +.. module:: calibre.customize :synopsis: Defines various abstract base classes that can be subclassed to create plugins. Defines various abstract base classes that can be subclassed to create powerful plugins. The useful @@ -20,113 +20,148 @@ classes are: Plugin ----------------- -.. class:: Plugin - - Abstract base class that contains a number of members and methods to create your plugin. All - plugins must inherit from this class or a subclass of it. - - The members and methods are: - -.. automember:: Plugin.name - -.. automember:: Plugin.author - -.. automember:: Plugin.description - -.. automember:: Plugin.version - -.. automember:: Plugin.supported_platforms - -.. automember:: Plugin.priority - -.. automember:: Plugin.minimum_calibre_version - -.. automember:: Plugin.can_be_disabled - -.. automethod:: Plugin.initialize - -.. automethod:: Plugin.customization_help - -.. automethod:: Plugin.temporary_file +.. autoclass:: Plugin + :members: + :member-order: bysource .. _pluginsFTPlugin: FileTypePlugin ----------------- -.. class:: Plugin - - Abstract base class that contains a number of members and methods to create your file type plugin. All file type - plugins must inherit from this class or a subclass of it. - - The members and methods are: - -.. automember:: FileTypePlugin.file_types - -.. automember:: FileTypePlugin.on_import - -.. automember:: FileTypePlugin.on_preprocess - -.. automember:: FileTypePlugin.on_postprocess - -.. automethod:: FileTypePlugin.run +.. autoclass:: FileTypePlugin + :show-inheritance: + :members: + :member-order: bysource .. _pluginsMetadataPlugin: Metadata plugins ------------------- -.. class:: MetadataReaderPlugin - - Abstract base class that contains a number of members and methods to create your metadata reader plugin. All metadata - reader plugins must inherit from this class or a subclass of it. - - The members and methods are: - -.. automember:: MetadataReaderPlugin.file_types - -.. automethod:: MetadataReaderPlugin.get_metadata +.. autoclass:: MetadataReaderPlugin + :show-inheritance: + :members: + :member-order: bysource -.. class:: MetadataWriterPlugin - - Abstract base class that contains a number of members and methods to create your metadata writer plugin. All metadata - writer plugins must inherit from this class or a subclass of it. - - The members and methods are: - -.. automember:: MetadataWriterPlugin.file_types - -.. automethod:: MetadataWriterPlugin.set_metadata - +.. autoclass:: MetadataWriterPlugin + :show-inheritance: + :members: + :member-order: bysource .. _pluginsMetadataSource: +Catalog plugins +---------------- + +.. autoclass:: CatalogPlugin + :show-inheritance: + :members: + :member-order: bysource + + Metadata download plugins -------------------------- -.. class:: calibre.ebooks.metadata.fetch.MetadataSource +.. module:: calibre.ebooks.metadata.fetch - Represents a source to query for metadata. Subclasses must implement - at least the fetch method. +.. autoclass:: MetadataSource + :show-inheritance: + :members: + :member-order: bysource - When :meth:`fetch` is called, the `self` object will have the following - useful attributes (each of which may be None):: +.. autoclass:: calibre.ebooks.metadata.covers.CoverDownload + :show-inheritance: + :members: + :member-order: bysource - title, book_author, publisher, isbn, log, verbose and extra +Conversion plugins +-------------------- - Use these attributes to construct the search query. extra is reserved for - future use. +.. module:: calibre.customize.conversion - The fetch method must store the results in `self.results` as a list of - :class:`MetaInformation` objects. If there is an error, it should be stored - in `self.exception` and `self.tb` (for the traceback). +.. autoclass:: InputFormatPlugin + :show-inheritance: + :members: + :member-order: bysource -.. automember:: calibre.ebooks.metadata.fetch.MetadataSource.metadata_type +.. autoclass:: OutputFormatPlugin + :show-inheritance: + :members: + :member-order: bysource -.. automember:: calibre.ebooks.metadata.fetch.MetadataSource.string_customization_help +Device Drivers +----------------- -.. automethod:: calibre.ebooks.metadata.fetch.MetadataSource.fetch +.. module:: calibre.devices.interface + +The base class for all device drivers is :class:`DevicePlugin`. However, if your device exposes itself as a USBMS drive to the operating system, you should use the USBMS class instead as it implements all the logic needed to support these kinds of devices. + +.. autoclass:: DevicePlugin + :show-inheritance: + :members: + :member-order: bysource + +.. autoclass:: BookList + :show-inheritance: + :members: + :member-order: bysource +USB Mass Storage based devices +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The base class for such devices is :class:`calibre.devices.usbms.driver.USBMS`. This class in turn inherits some of its functionality from its bases, documented below. A typical basic USBMS based driver looks like this: + +.. code-block:: python + + from calibre.devices.usbms.driver import USBMS + + class PDNOVEL(USBMS): + name = 'Pandigital Novel device interface' + gui_name = 'PD Novel' + description = _('Communicate with the Pandigital Novel') + author = 'Kovid Goyal' + supported_platforms = ['windows', 'linux', 'osx'] + FORMATS = ['epub', 'pdf'] + + VENDOR_ID = [0x18d1] + PRODUCT_ID = [0xb004] + BCD = [0x224] + + VENDOR_NAME = 'ANDROID' + WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = '__UMS_COMPOSITE' + THUMBNAIL_HEIGHT = 144 + + EBOOK_DIR_MAIN = 'eBooks' + SUPPORTS_SUB_DIRS = False + + def upload_cover(self, path, filename, metadata): + coverdata = getattr(metadata, 'thumbnail', None) + if coverdata and coverdata[2]: + with open('%s.jpg' % os.path.join(path, filename), 'wb') as coverfile: + coverfile.write(coverdata[2]) + +.. autoclass:: calibre.devices.usbms.device.Device + :show-inheritance: + :members: + :member-order: bysource + +.. autoclass:: calibre.devices.usbms.cli.CLI + :members: + :member-order: bysource + +.. autoclass:: calibre.devices.usbms.driver.USBMS + :show-inheritance: + :members: + :member-order: bysource + +User Interface Actions +-------------------------- + +.. autoclass:: calibre.gui2.actions.InterfaceAction + :show-inheritance: + :members: + :member-order: bysource diff --git a/src/calibre/manual/resources/calibre.css b/src/calibre/manual/resources/calibre.css deleted file mode 100644 index f815378df4..0000000000 --- a/src/calibre/manual/resources/calibre.css +++ /dev/null @@ -1,5 +0,0 @@ - -@import url("default.css"); - -table.docutils td, table.docutils th { padding: 1em; border-bottom: 0; } - diff --git a/src/calibre/manual/resources/logo.png b/src/calibre/manual/resources/logo.png index 42b9568956..158bc9d1b5 100644 Binary files a/src/calibre/manual/resources/logo.png and b/src/calibre/manual/resources/logo.png differ diff --git a/src/calibre/trac/bzr_commit_plugin.py b/src/calibre/trac/bzr_commit_plugin.py index 5ec6e8f7e8..c39131cccb 100644 --- a/src/calibre/trac/bzr_commit_plugin.py +++ b/src/calibre/trac/bzr_commit_plugin.py @@ -26,18 +26,18 @@ import bzrlib class cmd_commit(_cmd_commit): - + @classmethod def trac_url(self, username, password, url): - return url.replace('//', '//%s:%s@'%(username, password))+'/login/xmlrpc' - + return url.replace('//', '//%s:%s@'%(username, password))+'/login/xmlrpc' + def get_trac_summary(self, bug, url): print 'Getting bug summary for bug #%s'%bug, server = xmlrpclib.ServerProxy(url) attributes = server.ticket.get(int(bug))[-1] print attributes['summary'] return attributes['summary'] - + def expand_bug(self, msg, nick, config, bug_tracker, type='trac'): prefix = '%s_%s_'%(type, nick) username = config.get_user_option(prefix+'username') @@ -55,10 +55,10 @@ class cmd_commit(_cmd_commit): url = self.trac_url(username, password, bug_tracker) summary = self.get_trac_summary(bug, url) if summary: - msg = msg.replace('#%s'%bug, '#%s (%s)'%(bug, summary)) + msg = msg.replace('#%s'%bug, '#%s (%s)'%(bug, summary)) return msg, bug, url, action - - + + def get_bugtracker(self, basedir, type='trac'): config = os.path.join(basedir, '.bzr', 'branch', 'branch.conf') bugtracker, nick = None, None @@ -69,16 +69,16 @@ class cmd_commit(_cmd_commit): nick, bugtracker = match.group(1), match.group(2) break return nick, bugtracker - + def expand_message(self, msg, tree): nick, bugtracker = self.get_bugtracker(tree.basedir, type='trac') if not bugtracker: return msg config = branch.Branch.open(tree.basedir).get_config() msg, bug, url, action = self.expand_bug(msg, nick, config, bugtracker) - + return msg, bug, url, action, nick, config - + def run(self, message=None, file=None, verbose=False, selected_list=None, unchanged=False, strict=False, local=False, fixes=None, author=None, show_diff=False, exclude=None): @@ -89,18 +89,18 @@ class cmd_commit(_cmd_commit): self.expand_message(message, tree_files(selected_list)[0]) except ValueError: pass - + if nick and bug and not fixes: fixes = [nick+':'+bug] - - ret = _cmd_commit.run(self, message=message, file=file, verbose=verbose, + + ret = _cmd_commit.run(self, message=message, file=file, verbose=verbose, selected_list=selected_list, unchanged=unchanged, - strict=strict, local=local, fixes=fixes, + strict=strict, local=local, fixes=fixes, author=author, show_diff=show_diff, exclude=exclude) if message and bug and action and nick and config: self.close_bug(bug, action, url, config) return ret - + def close_bug(self, bug, action, url, config): print 'Closing bug #%s'% bug nick = config.get_nickname() @@ -110,8 +110,8 @@ class cmd_commit(_cmd_commit): action = action+'ed' msg = '%s in branch %s. %s'%(action, nick, suffix) server = xmlrpclib.ServerProxy(url) - server.ticket.update(int(bug), msg, - {'status':'closed', 'resolution':'fixed'}, + server.ticket.update(int(bug), msg, + {'status':'closed', 'resolution':'fixed'}, False) - -bzrlib.commands.register_command(cmd_commit) \ No newline at end of file + +bzrlib.commands.register_command(cmd_commit) diff --git a/src/calibre/translations/ar.po b/src/calibre/translations/ar.po index c42c6f7564..3df48f782f 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-07-20 22:48+0000\n" -"PO-Revision-Date: 2010-07-22 20:48+0000\n" +"POT-Creation-Date: 2010-08-07 01:39+0000\n" +"PO-Revision-Date: 2010-08-06 22:33+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-07-23 04:03+0000\n" +"X-Launchpad-Export-Date: 2010-08-08 03:40+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,12 +27,12 @@ msgstr "لا ÙŠÙØ¹Ù„ شيءً" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:499 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:398 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:506 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:405 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:428 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:402 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:335 @@ -40,16 +40,16 @@ 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:235 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:278 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:281 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:236 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:282 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:317 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:332 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -100,44 +100,44 @@ msgstr "لا ÙŠÙØ¹Ù„ شيءً" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:240 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:234 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:236 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:814 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:829 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:855 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1149 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:355 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:367 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1039 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1640 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1642 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:356 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:368 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:976 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1045 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1646 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1648 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1770 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:199 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 @@ -258,11 +258,11 @@ msgstr "" "متجاوزاً خيارات المستند, هذا الخيار للمستندان التي لا تعلن عن ترميزها أو " "التي ليس لها ترميز خاطىء." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:237 msgid "Conversion Output" msgstr "خرج التحويل" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:251 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." @@ -283,7 +283,7 @@ msgstr "" "وثيقة الإدخال." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:412 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:414 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -295,62 +295,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "مل٠التعري٠هذا هو المقصود لجهاز سوني PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:447 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:449 msgid "This profile is intended for the SONY PRS-900." msgstr "مل٠التعري٠هذا هو المقصود لجهاز سوني PRS 900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:477 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 msgid "This profile is intended for the Microsoft Reader." msgstr "هذا الطور يستخدم مع Microsoft Reader" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:490 msgid "This profile is intended for the Mobipocket books." msgstr "مل٠التعري٠هذا يستخدم مع كتب Mobipocket ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "مل٠التعري٠هذا يستخدم مع Hanlin V3 وأمثاله." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "مل٠التعري٠هذا يستخدم مع Hanlin V5 وأمثاله." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:521 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:523 msgid "This profile is intended for the Cybook G3." msgstr "مل٠التعري٠هذا يستخدم مع Cybook G3" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:534 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 msgid "This profile is intended for the Cybook Opus." msgstr "مل٠التعري٠هذا يستخدم مع Cybook Opus ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:545 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:547 msgid "This profile is intended for the Amazon Kindle." msgstr "مل٠التعري٠هذا يستخدم مع Amazon Kindle ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:580 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:584 msgid "This profile is intended for the Irex Illiad." msgstr "مل٠التعري٠هذا يستخدم مع Irex Illiad ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:593 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 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:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:607 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:611 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:621 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:625 msgid "This profile is intended for the B&N Nook." msgstr "مل٠التعري٠هذا يستخدم مع B&N Nook ." @@ -367,24 +367,24 @@ msgstr "" "مل٠التعري٠هذا يحاول تقديم Ø§ÙØªØ±Ø§Ø¶Ø§Øª عاقلة Ùˆ Ù…Ùيدة إذا كنت ترغب ÙÙŠ إصدار " "وثيقة للقراءة ÙÙŠ جهاز الكمبيوتر أو على مجموعة من الأجهزة." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:259 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 msgid "This profile is intended for the Kobo Reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:438 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440 msgid "This profile is intended for the SONY PRS-300." msgstr "مل٠التعري٠هذا يستخدم مع سوني PRS-300 ." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:456 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:458 msgid "This profile is intended for the 5-inch JetBook." msgstr "مل٠التعري٠هذا يستخدم مع الخمسة بوصة JetBook ." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:465 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -392,39 +392,39 @@ msgstr "" "مل٠التعري٠هذا يستخدم مع سوني خط إنتاج PRS . الـ500/505/700 الخ ØŒ ÙÙŠ وضع " "Ø£Ùقي.غالباً Ù…Ùيد للكاريكاتيرات." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:566 msgid "This profile is intended for the Amazon Kindle DX." msgstr "مل٠التعري٠هذا يستخدم مع Amazon Kindle DX" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Installed plugins" msgstr "ملحقات مثبتة" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Mapping for filetype plugins" msgstr "تعيين لملحقات أنواع Ø§Ù„Ù…Ù„ÙØ§Øª" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 msgid "Local plugin customization" msgstr "تخصيص الملحقات المحلية" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 msgid "Disabled plugins" msgstr "ملحقات معطلة" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:37 msgid "Enabled plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:84 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:85 msgid "No valid plugin found in " msgstr "لا يجد ملحق صالح " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:478 msgid "Initialization of plugin %s failed with traceback:" msgstr "ÙØ´Ù„ استهلال الملحق %s مع Ø§Ù‚ØªÙØ§Ø¡ الأثر:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 msgid "" " %prog options\n" "\n" @@ -436,29 +436,29 @@ msgstr "" " المقدرة على التخصيص بتحميل الملحقات الخارجية .\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:507 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 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:509 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:519 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "حذ٠الملحق المخصص عن طريق اسمه. لا يؤثر على الملحقات المضمنة" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:521 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." msgstr "تخصيص الملحق . حدد اسم الملحق وسلسلة التخصيص ÙˆÙØ±Ù‚هما Ø¨ÙØ§ØµÙ„Ø©." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:523 msgid "List all installed plugins" msgstr "قائمة كل الملحقات المثبتة" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:515 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:525 msgid "Enable the named plugin" msgstr "تمكين الملحق المسمى" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:527 msgid "Disable the named plugin" msgstr "تعطيل الملحق المسمى" @@ -466,13 +466,13 @@ msgstr "تعطيل الملحق المسمى" msgid "Communicate with Android phones." msgstr "التواصل مع هوات٠أندرويد ." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:48 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/android/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:90 msgid "Communicate with S60 phones." msgstr "" @@ -526,13 +526,13 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2471 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:807 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:813 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:851 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 #: /home/kovid/work/calibre/src/calibre/library/database2.py:187 #: /home/kovid/work/calibre/src/calibre/library/database2.py:200 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1524 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1530 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 msgid "News" msgstr "الأخبار" @@ -593,7 +593,7 @@ msgid "Use an arbitrary folder as a device." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:14 msgid "Device Interface" msgstr "واجهة الجهاز" @@ -623,15 +623,15 @@ msgstr "التواصل مع القارئ الكتاب الاليكترونى Han msgid "Communicate with The Book reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:52 msgid "Communicate with the SpringDesign Alex eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:67 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:68 msgid "Communicate with the Azbooka" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:80 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:81 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "اﻹتصال مع الـElonex EB 511 القارئ اﻹلكتروني" @@ -641,7 +641,7 @@ msgstr "التواصل مع القارئ الكتاب الاليكترونى IRe #: /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:38 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:42 msgid "John Schember" msgstr "John Schember" @@ -681,53 +681,64 @@ msgstr "التواصل مع القارئ الكتاب الاليكترونى Kin msgid "Communicate with the Kobo Reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:51 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:54 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:57 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:159 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:64 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:139 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:56 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:59 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:161 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:136 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 msgid "Getting list of books on device..." msgstr "يجري إحصاء قائمة كتب من الجهاز..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:219 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:263 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:264 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:221 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:265 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:253 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 msgid "Removing books from device..." msgstr "يجري حذ٠الكتب من الجهاز..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:269 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:278 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:283 msgid "Removing books from device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:279 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:313 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:210 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:240 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:281 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:247 msgid "Adding books to device metadata listing..." msgstr "Ø¥Ø¶Ø§ÙØ© كتب لقائمة البيانات الوصÙية للجهاز ..." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:15 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:441 +msgid "Not Implemented" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:367 +msgid "" +"\".kobo\" files do not exist on the device as books instead, they are rows " +"in the sqlite database. Currently they cannot be exported or viewed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" msgstr "الإتصال مع جهاز البالم بري" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:35 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:37 msgid "Communicate with the Booq Avant" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:55 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:58 msgid "Communicate with the Sweex MM300" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:75 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:78 msgid "Communicate with the Pandigital Novel" msgstr "" @@ -771,7 +782,7 @@ msgstr "" "ضع علامة Ø§Ù„ÙØ§ØµÙ„Ø© Ù„Ù„ÙØµÙ„ بين مجموعة من البيانات الوصÙية لكي تكون مجموعة ÙÙŠ " "الجهاز . Ùˆ تشمل الاحتمالات التالية: " -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:140 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:144 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "" @@ -792,47 +803,47 @@ msgstr "" msgid "Communicate with the iPapyrus reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:245 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "لم يتمكن من كش٠القرص %s. حاول إعادة التشغيل." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "غير قادر على الكش٠عن %s نقطة التحميل. حاول إعادة التشغيل." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:490 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500 msgid "Unable to detect the %s disk drive." msgstr "%s غير قادر على اكتشا٠عن الذاكرة" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:583 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593 msgid "Could not find mount helper: %s." msgstr "غير قادر على جلب المساعد : %s ." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:595 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605 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:603 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613 msgid "Unable to mount main memory (Error code: %d)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:740 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752 msgid "The reader has no storage card in this slot." msgstr "لا يوجد بطاقات تخزين ÙÙŠ القارئ ." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754 msgid "Selected slot: %s is not supported." msgstr "Ø§Ù„ÙØªØ­Ø© المختارة : %s ليست مدعومة ." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783 msgid "There is insufficient free space in main memory" msgstr "لا توجد مساحة كاÙية ÙÙŠ الذاكرة الرئيسية" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:777 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787 msgid "There is insufficient free space on the storage card" msgstr "لا توجد مساحة كاÙية ÙÙŠ بطاقة التخزين" @@ -870,20 +881,20 @@ msgstr "" msgid "Extra customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 msgid "Communicate with an eBook reader." msgstr "الاتصال مع جهاز قارئ إلكتروني ." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:57 msgid "Get device information..." msgstr "يجري إحصاء معلومات الجهاز..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:190 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:192 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:194 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:196 msgid "Transferring books to device..." msgstr "يجري تحويل الكتب إلى الجهاز..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:314 msgid "Sending metadata to device..." msgstr "يجري إرسال دليل المعلومات. إلى الجهاز..." @@ -972,15 +983,15 @@ msgstr "تحديد هوية الكتاب" msgid "Set font delta" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:178 msgid "Rendered %s" msgstr "تم تصوير %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:204 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:181 msgid "Failed %s" msgstr "ÙØ´Ù„ %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:261 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:235 msgid "" "Failed to process comic: \n" "\n" @@ -990,44 +1001,44 @@ msgstr "" "\n" "%s ." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:253 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:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:257 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Ø­Ø§ÙØ¸ على نسبة وضوح الصورة . Ø§ÙØªØ±Ø§Ø¶ÙŠØ§Ù‹ يجب تملأ الشاشة ." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:262 msgid "Disable sharpening." msgstr "تعطيل التشحيذ." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:264 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:293 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:267 msgid "Don't split landscape images into two portrait images" msgstr "لا تقسم صور عرضية إلى صورتين طوليتين." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:269 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:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:272 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -1035,13 +1046,13 @@ msgstr "" "تستخدم لمنشورات يمين إلى يسار مثل المانغا اليابانية، إلخ. يتسبب بتقسيم صور " "عرضية إلى صور طولية من اليمين إلى اليسار." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:305 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -1049,23 +1060,23 @@ msgstr "" "لا ترتّب Ù…Ù„ÙØ§Øª موجودة ÙÙŠ الرسومات أبجدياً، بل استخدم الترتيب المستخدم ÙÙŠ " "الرسومات." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:309 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 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:313 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "Do not convert the image to grayscale (black and white)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:463 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:437 msgid "Page" msgstr "ØµÙØ­Ø©" @@ -1867,7 +1878,7 @@ msgstr "ضم أسرة الخطوط أحادية القياس" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 @@ -1876,11 +1887,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:543 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:550 msgid "Title" msgstr "العنوان" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 @@ -1888,18 +1899,18 @@ msgstr "العنوان" msgid "Author(s)" msgstr "المؤل٠أو المؤلÙون" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "الناشر" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 #: /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:400 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 @@ -1911,9 +1922,9 @@ msgstr "المنتج" msgid "Comments" msgstr "التعليقات" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:408 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:409 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 @@ -1921,9 +1932,9 @@ msgstr "التعليقات" msgid "Tags" msgstr "الوسوم" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:410 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 @@ -1931,22 +1942,22 @@ msgstr "الوسوم" msgid "Series" msgstr "السلسلة" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:412 msgid "Language" msgstr "اللغة" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:414 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 msgid "Timestamp" msgstr "ختم التوقيت" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:416 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 msgid "Published" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:418 msgid "Rights" msgstr "" @@ -2053,53 +2064,83 @@ msgstr "تم Ø­ÙØ¸ الغلا٠ÙÙŠ" msgid "No cover found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:15 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:27 msgid "Cover download" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:79 +msgid "Download covers from openlibrary.org" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:136 +msgid "ISBN: %s not found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:117 +msgid "Download covers from librarything.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 +msgid "LibraryThing.com timed out. Try again later." +msgstr "LibraryThing.com لم يرد. حاول لاحقاً." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:135 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 +msgid "LibraryThing.com server error. Try again later." +msgstr "خطأ ÙÙŠ خادم LibraryThing.com. حاول لاحقاً." + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:50 msgid "Metadata download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 msgid "description/reviews" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 msgid "Download %s from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:155 msgid "Downloads metadata from Google Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:172 msgid "Downloads metadata from isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:184 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:200 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:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:210 msgid "Downloads social metadata from amazon.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:213 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:229 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" @@ -2133,24 +2174,10 @@ msgstr "العنوان الذي تريد البحث عنه." msgid "The publisher of the book to search for." msgstr "الناشر الذي تريد البحث عنه." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 -msgid "LibraryThing.com timed out. Try again later." -msgstr "LibraryThing.com لم يرد. حاول لاحقاً." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 -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:76 msgid " not found." msgstr " لم يوجد." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 -msgid "LibraryThing.com server error. Try again later." -msgstr "خطأ ÙÙŠ خادم LibraryThing.com. حاول لاحقاً." - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 msgid "" "\n" @@ -2445,7 +2472,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author" msgstr "" @@ -2560,7 +2587,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:200 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:194 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -2733,7 +2760,7 @@ msgid "Disable UI animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "" @@ -2745,7 +2772,7 @@ msgstr "" msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:397 msgid "Choose Files" msgstr "" @@ -2760,13 +2787,13 @@ msgid "User annotations generated from main library only" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:611 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:707 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:941 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1059 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:623 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:682 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:719 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1116 msgid "No books selected" msgstr "" @@ -2812,7 +2839,7 @@ msgid "Uploading books to device." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 msgid "Books" msgstr "كتب" @@ -2878,137 +2905,142 @@ msgid "Failed to read metadata from the following" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 msgid "Add to library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:459 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1228 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1285 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:442 +msgid "" +"The following books are virtual and cannot be added to the calibre library:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 msgid "No book files found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:470 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:483 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:501 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:521 msgid "Cannot delete books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:522 msgid "No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:532 msgid "Main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:439 msgid "Storage Card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 msgid "Storage Card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:539 msgid "No books to delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:540 msgid "None of the selected books are on the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:612 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:578 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/actions.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:597 msgid "" "The selected books will be permanently deleted from your device. Are " "you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:610 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:622 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:638 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:642 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:654 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:666 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:655 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:667 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:659 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:595 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:962 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "خطأ" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:681 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:718 msgid "Cannot edit metadata" msgstr "لا يمكن تحرير الميتاداتا" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:730 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:742 msgid "Cannot merge books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:731 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:743 msgid "At least two books must be selected for merging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:747 msgid "" "All book formats and metadata from the selected books will be added to the " "first selected book.

The second and subsequently selected " @@ -3016,7 +3048,7 @@ msgid "" "proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:746 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 msgid "" "All book formats and metadata from the selected books will be merged into " "the first selected book.

After merger the second and " @@ -3026,99 +3058,111 @@ msgid "" "from your computer.

Are you sure you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:770 msgid "" "You are about to merge more than 5 books. Are you sure you want to " "proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:924 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:927 msgid "Choose destination directory" msgstr "إختيار دليل الوجهة" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:566 +msgid "Not allowed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:934 +msgid "" +"You are tying to save files into the calibre library. This can cause " +"corruption of your library. Save to disk is meant to export files from your " +"calibre library elsewhere." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:968 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:912 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:969 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:920 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:976 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:977 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:921 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:999 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1016 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:964 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1021 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:965 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1022 msgid "" "No books to catalog\n" "Check exclude tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:975 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1032 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1035 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:979 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1036 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:995 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1052 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1066 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1058 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1115 msgid "Cannot convert" msgstr "لا يمكن تحويله" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1087 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1144 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1321 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1209 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1266 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1274 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1218 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1275 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 " @@ -3126,11 +3170,11 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1227 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1284 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1322 msgid "%s has no available formats." msgstr "" @@ -3155,7 +3199,7 @@ msgid "The specified directory could not be processed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:804 msgid "No books" msgstr "" @@ -3226,7 +3270,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 @@ -3280,22 +3324,22 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 -#: /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:548 -#: /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:562 +#: /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:552 #: /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:566 -#: /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:610 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /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:570 +#: /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:614 #: /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:379 -#: /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:392 -#: /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:370 +#: /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:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 @@ -3534,8 +3578,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1487 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1505 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1493 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1511 msgid "Catalog" msgstr "" @@ -3971,38 +4015,38 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:111 msgid "Choose cover for " msgstr "إختار الغلا٠لـ " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118 msgid "Cannot read" msgstr "لا يمكن القراءة" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:119 msgid "You do not have permission to read the file: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:127 msgid "Error reading file" msgstr "خطأ ÙÙŠ قراءة الملÙ" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 msgid "

There was an error reading from file:
" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 msgid " is not a valid picture" msgstr " ليست صورة صالحة" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /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:401 msgid "Book Cover" msgstr "غلا٠الكتاب" @@ -4011,28 +4055,28 @@ msgid "Use cover from &source file" 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:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 msgid "Change &cover image:" msgstr "تغيير صورة الغلاÙ&:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 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:172 -#: /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 msgid "&Title: " msgstr ":ال&عنوان " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /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:363 msgid "Change the title of this book" msgstr "تغيير عنوان هذا الكتاب" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 -#: /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:366 msgid "&Author(s): " msgstr "ال&مؤلÙ: " @@ -4048,18 +4092,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 -#: /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:375 msgid "&Publisher: " msgstr "&الناشر: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /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:376 msgid "Ta&gs: " 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:169 -#: /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:377 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

They can be any words or phrases, separated by commas." @@ -4069,7 +4113,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /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:380 msgid "&Series:" msgstr "&سلسلات:" @@ -4077,13 +4121,13 @@ msgstr "&سلسلات:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 -#: /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 +#: /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 "List of known series. You can add new series." msgstr "قائمة السلسلات Ø§Ù„Ù…Ø¹Ø±ÙˆÙØ©. بإمكانك Ø¥Ø¶Ø§ÙØ© سلسلات جديدة." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /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:387 msgid "Book " msgstr "الكتاب " @@ -4582,231 +4626,231 @@ msgstr "" msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:162 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:278 msgid "Get device information" msgstr "احصل على معلومات الجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:289 msgid "Get list of books on device" msgstr "احصل على قائمة الكتب على الجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:299 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:308 msgid "Send metadata to device" msgstr "ارسل الميتاداتا إلى الجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:313 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 msgid "Upload %d books to device" msgstr "Ø±ÙØ¹ %d كتاب إلى الجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Delete books from device" msgstr "حذ٠كتب من الجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:369 msgid "Download books from device" msgstr "تنزيل الكتب من الجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:379 msgid "View book on device" msgstr "عرض كتاب على الجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:413 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:419 msgid "Send to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:437 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:448 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:449 msgid "Send specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:485 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 msgid "Fetch annotations (experimental)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:603 msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:618 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:625 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:668 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:675 msgid "Error talking to device" msgstr "خطأ ÙÙŠ الاتصال بالجهاز" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 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/device.py:711 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:718 msgid "Device: " msgstr "الجهاز: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:713 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 msgid " detected." msgstr " تم كشÙÙ‡." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:798 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:803 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:816 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:887 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:910 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1193 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:917 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1019 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1081 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:944 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:949 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1167 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1209 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:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1271 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1272 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" @@ -4901,6 +4945,14 @@ msgstr "" msgid "The folder %s is not empty. Please choose an empty folder" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location selected" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 msgid "Choose your calibre library" msgstr "" @@ -5055,135 +5107,143 @@ msgstr "" msgid "Never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524 +msgid "Done" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525 +msgid "Confirmation dialogs have all been reset" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:530 msgid "System port selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:531 msgid "" "The value %d you have chosen for the content server port is a system " "port. Your operating system may not allow the server to run on this " "port. To be safe choose a port number larger than 1024." 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 "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:554 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:555 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:556 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:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 msgid "No valid plugin path" 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 "%s is not a valid plugin path" msgstr "%s ليس مسار لملحق صالح" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:611 msgid "Choose plugin" msgstr "إختيار الملحق" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:614 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:623 msgid "Plugin cannot be disabled" msgstr "لا يمكن تعطيل الملحق" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 msgid "The plugin: %s cannot be disabled" msgstr "الملحق: %s لا يمكن تعطيله" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 msgid "Plugin not customizable" msgstr "لا يمكن تخصيص الملحق" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:634 msgid "Plugin: %s does not need customization" msgstr "الملحق: %s لا يحتاج التخصيص" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:680 msgid "Cannot remove builtin plugin" msgstr "لم يمكن حذ٠الملحق المضمن" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:681 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:703 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:712 msgid "You must select a column to delete it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:717 msgid "The selected column is not a custom column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:718 #: /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/config/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:719 msgid "Do you really want to delete column %s and all its data?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:777 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:786 msgid "Error log:" msgstr "سجل الأخطاء:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:784 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:793 msgid "Access log:" msgstr "سجل Ø§Ù„Ù†ÙØ§Ø°:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:318 msgid "Failed to start content server" msgstr "ÙØ´Ù„ ÙÙŠ تشغيل خادم المحتوى" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:846 msgid "Invalid size" msgstr "حجم غير صالح" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:838 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:847 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:899 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:908 msgid "Must restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:900 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:909 msgid "" "The changes you made require that Calibre be restarted. Please restart as " "soon as practical." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:943 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:954 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:963 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:968 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:960 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:969 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 " @@ -5321,278 +5381,282 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:616 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 msgid "Preferences" 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:537 msgid "Show notification when &new version is available" 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:538 msgid "Download &social metadata (tags/ratings/etc.) by default" 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:539 msgid "&Overwrite author and title by default when fetching metadata" 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:540 msgid "Default network &timeout:" 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:541 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:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid " seconds" 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:543 msgid "Choose &language (requires restart):" 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:544 msgid "Normal" 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:545 msgid "High" 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:546 msgid "Low" 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:547 msgid "Job &priority:" 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:548 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 -msgid "Preferred &input format order:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 -msgid "Use &Roman numerals for series number" +msgid "Reset all disabled &confirmation dialogs" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 -msgid "Enable system &tray icon (needs restart)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 -msgid "Show ¬ifications in system tray" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 -msgid "Show &splash screen at startup" +msgid "Preferred &input format order:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 -msgid "Show cover &browser in a separate window (needs restart)" +msgid "Use &Roman numerals for series number" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 -msgid "Show &average ratings in the tags browser" +msgid "Enable system &tray icon (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 -msgid "Search as you type" +msgid "Show ¬ifications in system tray" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 -msgid "Automatically send downloaded &news to ebook reader" -msgstr "إرسال الأخبار& التي تم تنزيلها آلياً إلى قارئ الكتب الإلكترونية" +msgid "Show &splash screen at startup" +msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 -msgid "&Delete news from library when it is automatically sent to reader" +msgid "Show cover &browser in a separate window (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 -msgid "&Number of covers to show in browse mode (needs restart):" +msgid "Show &average ratings in the tags browser" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 -msgid "Select visible &columns in library view" +msgid "Search as you type" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +msgid "Automatically send downloaded &news to ebook reader" +msgstr "إرسال الأخبار& التي تم تنزيلها آلياً إلى قارئ الكتب الإلكترونية" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 -msgid "Remove a user-defined column" +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:562 +msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 -msgid "Add a user-defined column" +msgid "Select visible &columns in library view" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +msgid "Remove a user-defined column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +msgid "Add a user-defined column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Edit settings of a user-defined column" 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 "Use internal &viewer for:" 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 "User Interface &layout (needs restart):" msgstr "" -#: /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:574 msgid "Disable all animations. Useful if you have a slow/old computer." 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 "Disable &animations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 msgid "Show &donate button (restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 msgid "&Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 msgid "&Icon size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 msgid "Show &text under icons:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 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:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 #: /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:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 #: /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:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 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:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 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:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "إظهار& كلمة السرّ" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 msgid "Max. OPDS &ungrouped items:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 #: /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 " @@ -5603,33 +5667,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:604 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 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:605 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:610 msgid "&Customize plugin" msgstr "ت&خصيص الملحق" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 msgid "&Remove plugin" msgstr "&حذ٠الملحق" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612 msgid "Add new plugin" msgstr "Ø¥Ø¶Ø§ÙØ© ملحق جديد" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Plugin &file:" msgstr "&مل٠الملحق:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "&Add" msgstr "&Ø¥Ø¶Ø§ÙØ©" @@ -5670,7 +5734,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Date" msgstr "تاريخ" @@ -5718,41 +5782,41 @@ msgstr "" msgid "Yes/No" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 msgid "No column selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:70 msgid "No column has been selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:74 msgid "Selected column is not a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:105 msgid "No lookup name was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:107 msgid "" "The label must contain only letters, digits and underscores, and start with " "a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:116 msgid "No column heading was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:122 msgid "The lookup name %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:132 msgid "The heading %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:134 msgid "" "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" @@ -5880,7 +5944,7 @@ msgstr "التهيئة" msgid "Delete from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author sort" msgstr "" @@ -5999,21 +6063,21 @@ msgid "Author s&ort: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 -#: /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:368 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:162 -#: /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:371 msgid "&Rating:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 -#: /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 +#: /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 msgid "Rating of this book. 0-5 stars" msgstr "" @@ -6022,7 +6086,7 @@ msgid "No change" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 -#: /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:374 msgid " stars" msgstr " نجمة" @@ -6032,8 +6096,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 -#: /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 +#: /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 "Open Tag Editor" msgstr "ÙØªØ­ محرر الوسوم" @@ -6073,210 +6137,237 @@ msgid "Remove &stored conversion settings for the selected books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 msgid "&Basic metadata" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:94 +msgid "Last modified: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:135 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:150 +msgid "Specify title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 +msgid "You must specify a title and author before generating a cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:223 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:234 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:235 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:284 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:327 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:434 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:470 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:473 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:552 msgid "Cannot use tag editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "The tags editor cannot be used if you have modified the tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:601 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:555 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:602 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:587 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:591 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:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:603 +msgid "" +"For the error message from each cover source, click Show details below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:610 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:644 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:674 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:637 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 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:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:750 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:751 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:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Edit Meta Information" msgstr "تحرير معلومات الميتا" -#: /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 msgid "Meta information" msgstr "معلومات الميتا" -#: /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:364 msgid "Swap the author and title" msgstr "" -#: /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:367 msgid "Author S&ort: " msgstr "" -#: /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:369 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:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "Remove unused series (Series that have no books)" 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:385 msgid "IS&BN:" msgstr "IS&BN:" -#: /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:386 msgid "Publishe&d:" 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:389 msgid "dd MMM yyyy" 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:390 msgid "&Date:" msgstr "" -#: /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:391 msgid "&Comments" 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:392 msgid "&Fetch metadata from server" msgstr "" -#: /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:393 msgid "Available Formats" 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:394 msgid "Add a new format for this book to the database" 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:396 msgid "Remove the selected formats for this book from the database." msgstr "حذ٠التهيئات المختارة لهذا الكتاب من قاعدة البيانات." -#: /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:398 msgid "Set the cover for the book from the selected format" msgstr "" -#: /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:400 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Download &cover" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +msgid "Generate a default cover based on the title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "&Generate cover" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 msgid "Password needed" msgstr "" @@ -6553,21 +6644,21 @@ msgstr "" msgid "Choose formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 msgid "Authors" msgstr "المؤلÙون" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 msgid "Publishers" msgstr "الناشرون" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:114 msgid " (not on any book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:166 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" @@ -6621,7 +6712,7 @@ msgid "Select the content kind of the new category" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" msgstr "" @@ -6679,33 +6770,33 @@ msgstr "Ø¥Ø¶Ø§ÙØ© وسم إلى قائمة الوسوم Ø§Ù„Ù…ØªÙˆÙØ±Ø© وعل msgid "%s (was %s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 msgid "Item is blank" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:91 msgid "No item selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:92 msgid "You must select one item from the list of Available items." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 msgid "No items selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 msgid "You must select at least one items from the list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:106 msgid "Are you certain you want to delete the following items?" msgstr "" @@ -7137,7 +7228,7 @@ msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:89 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:567 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:568 msgid "Card A" msgstr "" @@ -7146,7 +7237,7 @@ msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:91 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:569 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:570 msgid "Card B" msgstr "" @@ -7190,254 +7281,264 @@ msgid "Delete current saved search" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:302 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:108 msgid "%d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:334 -msgid "Connect to folder" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:340 -msgid "Connect to iTunes" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:360 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid "Email to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid " and delete from library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:373 -msgid "Setup email based sharing of books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "A" -msgstr "A" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "Add books" -msgstr "Ø¥Ø¶Ø§ÙØ© كتب" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "E" -msgstr "E" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "Edit metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "C" -msgstr "C" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "Convert books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -msgid "V" -msgstr "V" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 -msgid "View" -msgstr "عرض" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:450 -msgid "Send to device" -msgstr "إرسال لجهاز" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:305 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:468 msgid "Choose calibre library to work with" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 -msgid "F" -msgstr "F" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 -msgid "Fetch news" -msgstr "احصل على الأخبار" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -msgid "S" -msgstr "S" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 -msgid "Save to disk" -msgstr "Ø­ÙØ¸ إلى القرص" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:455 -msgid "Connect/share" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:336 +msgid "Connect to folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 -msgid "Del" -msgstr "Del" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 -msgid "Remove books" -msgstr "حذ٠كتب" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "Browse the calibre User Manual" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:341 +msgid "Connect to iTunes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "F1" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:356 +msgid "Start Content Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "Help" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:358 +msgid "Stop Content Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -msgid "Ctrl+P" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid "Email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 -msgid "M" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid " and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 -msgid "Merge book records" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:389 +msgid "Setup email based sharing of books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:461 -msgid "Open containing folder" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "A" +msgstr "A" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "Add books" +msgstr "Ø¥Ø¶Ø§ÙØ© كتب" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 -msgid "Show book details" +msgid "E" +msgstr "E" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +msgid "Edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "C" +msgstr "C" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "Convert books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +msgid "V" +msgstr "V" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:568 +msgid "View" +msgstr "عرض" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:466 +msgid "Send to device" +msgstr "إرسال لجهاز" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +msgid "F" +msgstr "F" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +msgid "Fetch news" +msgstr "احصل على الأخبار" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 +msgid "S" +msgstr "S" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 +msgid "Save to disk" +msgstr "Ø­ÙØ¸ إلى القرص" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 +msgid "Connect/share" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 +msgid "Del" +msgstr "Del" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 +msgid "Remove books" +msgstr "حذ٠كتب" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "Browse the calibre User Manual" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "F1" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "Help" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 +msgid "Ctrl+P" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 +msgid "M" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 +msgid "Merge book records" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:477 +msgid "Open containing folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:479 +msgid "Show book details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:481 msgid "Books by same author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:483 msgid "Books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:485 msgid "Books by this publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 msgid "Books with the same tags" msgstr "كتب Ø¨Ù†ÙØ³ الوسوم" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:501 msgid "Edit metadata individually" msgstr "تحرير الميتاداتا ÙØ±Ø¯ÙŠØ§Ù‹" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 msgid "Edit metadata in bulk" msgstr "تحرير الميتاداتا جملةً" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:490 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 msgid "Download metadata and covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:510 msgid "Download only metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:512 msgid "Download only covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 msgid "Download only social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:521 msgid "Merge into first selected book - delete others" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:524 msgid "Merge into first selected book - keep others" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:532 msgid "Add books from a single directory" msgstr "Ø¥Ø¶Ø§ÙØ© كتب من دليل واحد" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 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/layout.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 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/layout.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:541 msgid "Add Empty book. (Book entry with no formats)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:553 msgid "Save to disk in a single directory" msgstr "Ø­ÙØ¸ إلى القرص ÙÙŠ دليل واحد" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:385 msgid "Save only %s format to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:542 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:388 msgid "Save only %s format to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 msgid "View specific format" msgstr "عرض تهيئة معينة" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:575 msgid "Remove selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:577 msgid "Remove files of a specific format from selected books.." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:580 msgid "Remove all formats from selected books, except..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:583 msgid "Remove covers from selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 msgid "Remove matching books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:603 msgid "Convert individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:605 msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:609 msgid "Create catalog of books in your calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:617 msgid "Run welcome wizard" msgstr "" @@ -7528,11 +7629,7 @@ msgstr "" msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:560 -msgid "Not allowed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:567 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -7629,7 +7726,7 @@ msgid "Do not check for updates" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:598 msgid "Calibre Library" msgstr "" @@ -7747,11 +7844,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:93 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:119 msgid "No matches found for this book" msgstr "" @@ -7997,69 +8094,69 @@ msgstr "إعادة تشغيل&" msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:367 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:363 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:368 msgid "Cannot configure before calibre is restarted." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:415 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:416 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:457 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:496 msgid "Conversion Error" msgstr "خطأ ÙÙŠ التحويل" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:469 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:471 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:482 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:497 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:537 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. " "Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:563 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:566 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:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:570 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:625 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -8576,60 +8673,60 @@ msgstr "" msgid "Hide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:370 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:371 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:374 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:373 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:376 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:450 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:453 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:470 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:524 msgid "Invalid database" msgstr "قاعدة البيانات غير صالحة" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525 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:533 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:536 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:590 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:665 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/finish_ui.py:42 #: /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 @@ -8637,7 +8734,7 @@ 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/finish_ui.py:43 #: /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 @@ -8658,19 +8755,19 @@ msgstr "" msgid "&Devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:44 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 msgid "" "

User Manual

A User Manual is also available online." @@ -9405,31 +9502,31 @@ msgstr "" msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:565 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:566 msgid "Main" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1790 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1796 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1819 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1825 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1836 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1929 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1935 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1970 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1976 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1992 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1998 msgid "Checked id" msgstr "" @@ -9555,7 +9652,7 @@ msgstr "" msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:258 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:263 msgid "Requested formats not available" msgstr "" @@ -9600,7 +9697,7 @@ msgid "" "disable grouping." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:93 +#: /home/kovid/work/calibre/src/calibre/library/server/base.py:94 msgid "Password to access your calibre library. Username is " msgstr "" @@ -9647,81 +9744,81 @@ msgstr "" msgid "Books sorted by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Newest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:49 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:34 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:78 msgid "Created by " msgstr "أنشأه " -#: /home/kovid/work/calibre/src/calibre/utils/config.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:79 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:678 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:663 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:680 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:665 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:682 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:667 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:684 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:669 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:686 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:671 msgid "Path to directory in which your library of books is stored" msgstr "المسار إلى الدليل الذي ØªØ­ÙØ¸ Ùيها مكتبة كتبك" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:688 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:673 msgid "The language in which to display the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:690 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:675 msgid "The default output format for ebook conversions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:694 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:679 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:696 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:681 msgid "Read metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:698 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:683 msgid "The priority of worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:700 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:685 msgid "Swap author first and last names when reading metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:702 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:687 msgid "Add new formats to existing book records" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:707 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:692 msgid "List of named saved searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:708 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:693 msgid "User-created tag browser categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:710 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:695 msgid "How and when calibre updates metadata on the device." msgstr "" @@ -9850,6 +9947,9 @@ msgid "Control email delivery" msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:118 +msgid "Unknown section" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:140 msgid "Unknown feed" msgstr "تلقيم مجهول" @@ -9882,11 +9982,11 @@ msgid "" "Do not download latest version of builtin recipes from the calibre server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:44 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:46 msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 msgid "The \"%s\" recipe needs a username and password." msgstr "" @@ -9946,33 +10046,33 @@ msgstr "لم يتمكّن من تنزيل الغلاÙ: %s" msgid "Downloading cover from %s" msgstr "يتم تنزيل الغلا٠من %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1002 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1003 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1192 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1172 msgid "Untitled Article" msgstr "مقالة بدون عنوان" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1263 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1243 msgid "Article downloaded: %s" msgstr "المقالة منزّلة: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1274 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1254 msgid "Article download failed: %s" msgstr "ÙØ´Ù„ تنزيل المقالة: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1291 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Fetching feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1438 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1418 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1454 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1434 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." diff --git a/src/calibre/translations/ca.po b/src/calibre/translations/ca.po index 49b548d89c..548dfc0254 100644 --- a/src/calibre/translations/ca.po +++ b/src/calibre/translations/ca.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: ca\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-07-20 22:48+0000\n" -"PO-Revision-Date: 2010-07-22 21:14+0000\n" +"POT-Creation-Date: 2010-08-07 01:39+0000\n" +"PO-Revision-Date: 2010-08-06 23:15+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-07-23 04:03+0000\n" +"X-Launchpad-Export-Date: 2010-08-08 03:40+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,12 +30,12 @@ msgstr "No en fa absolutament res" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:499 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:398 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:506 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:405 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:428 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:402 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:335 @@ -43,16 +43,16 @@ msgstr "No en fa absolutament res" #: /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:235 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:278 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:281 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:236 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:282 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:317 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:332 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -103,44 +103,44 @@ msgstr "No en fa absolutament res" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:240 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:234 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:236 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:814 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:829 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:855 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1149 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:355 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:367 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1039 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1640 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1642 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:356 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:368 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:976 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1045 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1646 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1648 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1770 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:199 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 @@ -263,11 +263,11 @@ msgstr "" "document. És particularment útil per a documents que no indiquen cap joc de " "caràcters o ho fan incorrectament." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:237 msgid "Conversion Output" msgstr "Sortida de la conversió" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:251 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." @@ -289,7 +289,7 @@ msgstr "" "sabeu res del document d'entrada." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:412 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:414 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -301,62 +301,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Aquest perfil és adient per al SONY PRS-300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:447 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:449 msgid "This profile is intended for the SONY PRS-900." msgstr "Aquest perfil és adient per al SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:477 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 msgid "This profile is intended for the Microsoft Reader." msgstr "Aquest perfil és adient per al Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:490 msgid "This profile is intended for the Mobipocket books." msgstr "Aquest perfil és adient per a llibres Mobipocket." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Aquest perfil és adient per al Hanlin V3 i els seus clons." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Aquest perfil és adient per al Hanlin V5 i els seus clons." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:521 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:523 msgid "This profile is intended for the Cybook G3." msgstr "Aquest perfil és adient per al Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:534 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 msgid "This profile is intended for the Cybook Opus." msgstr "Aquest perfil és adient per al Cybook Opus" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:545 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:547 msgid "This profile is intended for the Amazon Kindle." msgstr "Aquest perfil és adient per a l'Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:580 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:584 msgid "This profile is intended for the Irex Illiad." msgstr "Aquest perfil és adient per a l'Irex Illiad" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:593 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Aquest perfil és adient per al IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:607 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:611 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Aquest perfil és adient per al IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:621 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:625 msgid "This profile is intended for the B&N Nook." msgstr "Aquest perfil és adient per al B&N Nook." @@ -374,25 +374,25 @@ msgstr "" "si voleu generar un document que es pugui llegir en un PC o en un conjunt " "ampli de dispositius diferents." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:259 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Destinats als dispositius d'IPAD i similars amb una resolució de 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 msgid "This profile is intended for the Kobo Reader." msgstr "Aquest perfil és adient per al lector Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:438 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440 msgid "This profile is intended for the SONY PRS-300." msgstr "Aquest perfil és adient per al SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:456 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:458 msgid "This profile is intended for the 5-inch JetBook." msgstr "Aquest perfil és adient per al 5-inch JetBook" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:465 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -400,39 +400,39 @@ msgstr "" "Aquest perfil és adient per al la línia PRS de SONY. Els models 500/505/700, " "etc., en mode apaïsat. Sobretot és útil per als còmics." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:566 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Aquest perfil és adient per a l'Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Installed plugins" msgstr "Connectors instal·lats" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Mapping for filetype plugins" msgstr "Associació per a connectors de tipus de fitxers" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 msgid "Local plugin customization" msgstr "Personalització del connector local" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 msgid "Disabled plugins" msgstr "Connectors inhabilitats" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:37 msgid "Enabled plugins" msgstr "Connectors permesos" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:84 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:85 msgid "No valid plugin found in " msgstr "No s'ha trobat cap connector vàlid a " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:478 msgid "Initialization of plugin %s failed with traceback:" msgstr "No s'ha pogut inicialitzar el connector %s i s'ha generat la traça:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 msgid "" " %prog options\n" "\n" @@ -444,18 +444,18 @@ msgstr "" " Personalitzeu el calibre carregant connectors externs.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:507 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "" "Afegeix un connector especificiant el camí al fitxer ZIP que el conté" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:509 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:519 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" "Suprimeix un connector personalitzat per nom. No té cap efecte als " "complements integrats" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:521 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." @@ -463,15 +463,15 @@ msgstr "" "Personalitza el connector. Especifiqueu el nom del connector i el text que " "desitgeu, separats per una coma." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:523 msgid "List all installed plugins" msgstr "Fes una llista amb tots els connectors instal·lats" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:515 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:525 msgid "Enable the named plugin" msgstr "Habilita el connector anomenat" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:527 msgid "Disable the named plugin" msgstr "Inhabilita el connector anomenat" @@ -479,7 +479,7 @@ msgstr "Inhabilita el connector anomenat" msgid "Communicate with Android phones." msgstr "Estableix comunicació amb telèfons Android" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:48 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -488,7 +488,7 @@ msgstr "" "dispositiu. S'usarà el primer directori del llistat que ja existeixi al " "dispositiu" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:90 msgid "Communicate with S60 phones." msgstr "Estableix comunicació amb els telèfons S60." @@ -547,13 +547,13 @@ msgstr "" "Clic a 'Veure Detalls' per a més informació." #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2471 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:807 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:813 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:851 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 #: /home/kovid/work/calibre/src/calibre/library/database2.py:187 #: /home/kovid/work/calibre/src/calibre/library/database2.py:200 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1524 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1530 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 msgid "News" msgstr "Notícies" @@ -618,7 +618,7 @@ msgid "Use an arbitrary folder as a device." msgstr "Utilitzar un directori arbitrari per al dispositiu." #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:14 msgid "Device Interface" msgstr "Interfície del dispostiu" @@ -653,16 +653,16 @@ msgstr "" msgid "Communicate with The Book reader." msgstr "Comunicar-se amb el lector de llibres electrònics." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:52 msgid "Communicate with the SpringDesign Alex eBook reader." msgstr "" "Estableix comunicació amb el lector de llibres electrònics SpringDesign Alex." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:67 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:68 msgid "Communicate with the Azbooka" msgstr "Comunicar-se amb Azbooka" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:80 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:81 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "" "Estableix comunicació amb el lector de llibres electrònics Elonex EB 511." @@ -674,7 +674,7 @@ 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:38 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:42 msgid "John Schember" msgstr "John Schember" @@ -719,53 +719,64 @@ msgstr "Estableix comunicació amb el lector de llibres electrònics Kindle DX" msgid "Communicate with the Kobo Reader" msgstr "Comunica amb el lector Kobo Reader" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:51 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:54 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:57 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:159 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:64 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:139 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:56 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:59 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:161 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:136 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 msgid "Getting list of books on device..." msgstr "S'està obtenint el llistat de llibres disponibles al dispositiu..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:219 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:263 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:264 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:221 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:265 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:253 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 msgid "Removing books from device..." msgstr "S'estan suprimint els llibres del dispositiu..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:269 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:278 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:283 msgid "Removing books from device metadata listing..." msgstr "S'estan suprimint llibres del llistat de metadades del dispositiu..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:279 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:313 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:210 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:240 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:281 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:247 msgid "Adding books to device metadata listing..." msgstr "S'estan afegint llibres al llistat de metadades del dispositiu..." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:15 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:441 +msgid "Not Implemented" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:367 +msgid "" +"\".kobo\" files do not exist on the device as books instead, they are rows " +"in the sqlite database. Currently they cannot be exported or viewed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" msgstr "Comunica amb el Palm Pre" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:35 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:37 msgid "Communicate with the Booq Avant" msgstr "Comunicar-se amb Booq Avant" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:55 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:58 msgid "Communicate with the Sweex MM300" msgstr "Comunicar-se amb el Sweex MM300" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:75 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:78 msgid "Communicate with the Pandigital Novel" msgstr "Comunicar-se amb el Pandigital Novel" @@ -810,7 +821,7 @@ msgstr "" "Llistat on apareixen, separats per coma, els camps de metadades per " "traslladar a les col·leccions del dispositiu. Les possibilitats inclouen: " -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:140 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:144 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "Sense nom" @@ -833,23 +844,23 @@ msgstr "Comunicar-se amb el lector Newsmy." msgid "Communicate with the iPapyrus reader." msgstr "Comunicar-se amb el lector iPapyrus." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:245 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "No s'ha pogut detectar la unitat de disc %s. Proveu a reiniciar." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "No s'ha pogut detectar el punt de muntatge %s. Proveu a reiniciar." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:490 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500 msgid "Unable to detect the %s disk drive." msgstr "No s'ha pogut detectar la unitat de disc %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:583 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593 msgid "Could not find mount helper: %s." msgstr "No s'ha pogut trobar l'assistent de muntatge: %s" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:595 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." @@ -857,25 +868,25 @@ msgstr "" "No s'ha pogut detectar la unitat de disc %s. El kernel probablement utilitza " "una versió obsoleta de SYSFS." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:603 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613 msgid "Unable to mount main memory (Error code: %d)" msgstr "No s'ha pogut muntar la memòria principal (Codi d'error: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:740 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752 msgid "The reader has no storage card in this slot." msgstr "El lector no té cap targeta de memòria en aquesta ranura." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754 msgid "Selected slot: %s is not supported." msgstr "Ranura seleccionada: %s no és compatible." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783 msgid "There is insufficient free space in main memory" msgstr "No hi ha espai lliure suficient a la memòria principal" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:777 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787 msgid "There is insufficient free space on the storage card" msgstr "No hi ha espai lliure suficient a la targeta de memòria" @@ -913,20 +924,20 @@ msgstr "Planilla per a controlar quants llibres s'han desat" msgid "Extra customization" msgstr "Personalització addicional" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 msgid "Communicate with an eBook reader." msgstr "Estableix comunicació amb el lector de llibres electrònics." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:57 msgid "Get device information..." msgstr "Obté informació del dispositiu..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:190 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:192 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:194 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:196 msgid "Transferring books to device..." msgstr "S'estan transferint llibres al dispositiu..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:314 msgid "Sending metadata to device..." msgstr "S'estan enviant metadades al dispositiu..." @@ -1015,15 +1026,15 @@ msgstr "Indiqueu l'ID (identificador) del llibre" msgid "Set font delta" msgstr "Indiqueu la font delta" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:178 msgid "Rendered %s" msgstr "%s renderitzat" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:204 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:181 msgid "Failed %s" msgstr "%s ha fallat" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:261 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:235 msgid "" "Failed to process comic: \n" "\n" @@ -1033,7 +1044,7 @@ msgstr "" "\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:253 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 " @@ -1043,24 +1054,24 @@ msgstr "" "defecte: %default. Valors inferiors a 256 podrien causar textos difuminats " "en el vostre dispositiu si esteu creant còmics en format EPUB." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:257 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Inhabilita la normalització (millora del contrast) del balanç de colors per " "a les imatges . Per defecte: Desactivat" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Conserva la proporció d'aspecte de la imatge. El valor predeterminat és " "emplenar la pantalla." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:262 msgid "Disable sharpening." msgstr "Inhabilita l'afinament." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:264 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -1068,11 +1079,11 @@ msgstr "" "Inhabilita el retallament de pàgines de còmic. Per alguns còmics, el " "retallament podria eliminar el contingut a més de les vores." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:267 msgid "Don't split landscape images into two portrait images" msgstr "No divideixis les imatges apaïsades en dues imatges verticals" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:269 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -1080,7 +1091,7 @@ msgstr "" "Conserva la relació d'aspecte i escala la imatge fent servir l'alçada de la " "pantalla com ample de la imatge, per a veure-la en mode apaïsat" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:272 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -1089,7 +1100,7 @@ msgstr "" "pàgines apaïsades siguin separades en pàgines verticals orientades de dreta " "a esquerra." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -1097,7 +1108,7 @@ msgstr "" "Habilita l'eliminació dels pics. Redueix el soroll, en forma de pics. Pot " "incrementar molt el temps de processament." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:305 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -1105,7 +1116,7 @@ msgstr "" "No ordenis alfabèticament els arxius trobats al còmic. Empra l'ordre en el " "qual hi foren afegits al còmic." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:309 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 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 " @@ -1115,16 +1126,16 @@ msgstr "" "Podeu experimentar quin format us proporciona la millor relació mida-aspecte " "al vostre dispositiu." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:313 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Apply no processing to the image" msgstr "No processis les imatges." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "Do not convert the image to grayscale (black and white)" msgstr "No converteixis a escala de grisos (blanc i negre)." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:463 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:437 msgid "Page" msgstr "Pàgina" @@ -2134,7 +2145,7 @@ msgstr "Famí­lia de lletres monoespaiades per a incrustar." msgid "Comic" msgstr "Còmic" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 @@ -2143,11 +2154,11 @@ msgstr "Còmic" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:543 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:550 msgid "Title" msgstr "Tí­tol" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 @@ -2155,18 +2166,18 @@ msgstr "Tí­tol" msgid "Author(s)" msgstr "Autor(s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "Editorial" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Productor" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 @@ -2178,9 +2189,9 @@ msgstr "Productor" msgid "Comments" msgstr "Comentaris" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:408 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:409 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 @@ -2188,9 +2199,9 @@ msgstr "Comentaris" msgid "Tags" msgstr "Etiquetes" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:410 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 @@ -2198,22 +2209,22 @@ msgstr "Etiquetes" msgid "Series" msgstr "Sèries" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:412 msgid "Language" msgstr "Llengua" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:414 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 msgid "Timestamp" msgstr "Marca de temps" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:416 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 msgid "Published" msgstr "Publicat" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:418 msgid "Rights" msgstr "Drets" @@ -2344,43 +2355,75 @@ msgstr "Portada desada a" msgid "No cover found" msgstr "No s'ha trobat cap caràtula" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:15 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:27 msgid "Cover download" msgstr "Caràtula descarregada." +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:79 +msgid "Download covers from openlibrary.org" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:136 +msgid "ISBN: %s not found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:117 +msgid "Download covers from librarything.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 +msgid "LibraryThing.com timed out. Try again later." +msgstr "LibraryThing.com ha esgotat el temps. Provi-ho de nou més tard." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:135 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" +"No s'ha pogut aconseguir la caràtula, el servidor està experimentant una " +"càrrega molt alta. Si us plau, provi-ho de nou més tard." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 +msgid "LibraryThing.com server error. Try again later." +msgstr "Error al servidor LibraryThing.com. Provi-ho de nou més tard." + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" msgstr "Descarrega metainformació des de Douban.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:50 msgid "Metadata download" msgstr "Metadades baixades" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "ratings" msgstr "classificació" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "tags" msgstr "etiquetes" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 msgid "description/reviews" msgstr "Descripció/sinopsis" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 msgid "Download %s from %s" msgstr "Descarrega %s des de %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:155 msgid "Downloads metadata from Google Books" msgstr "Descarrega metainformació des de Google Books." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:172 msgid "Downloads metadata from isbndb.com" msgstr "Descarrega metainformació des de isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:184 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:200 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2388,11 +2431,11 @@ msgstr "" "Per a fes servir isbndb.com hauria de identificar-se a %sfree compte%s i " "desprès introduir-hi la seva clau d'accés a sota." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:210 msgid "Downloads social metadata from amazon.com" msgstr "Descarrega metainformació social des d'amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:213 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:229 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" "Descarrega informació de series, etiquetes i qualificacions des de " @@ -2439,26 +2482,10 @@ msgstr "El títol del llibre el qual vostè ha cercat." msgid "The publisher of the book to search for." msgstr "L'editor del llibre el qual vostè ha cercat." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 -msgid "LibraryThing.com timed out. Try again later." -msgstr "LibraryThing.com ha esgotat el temps. Provi-ho de nou més tard." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 -msgid "" -"Could not fetch cover as server is experiencing high load. Please try again " -"later." -msgstr "" -"No s'ha pogut aconseguir la caràtula, el servidor està experimentant una " -"càrrega molt alta. Si us plau, provi-ho de nou més tard." - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:76 msgid " not found." msgstr " no trobat." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 -msgid "LibraryThing.com server error. Try again later." -msgstr "Error al servidor LibraryThing.com. Provi-ho de nou més tard." - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 msgid "" "\n" @@ -2515,7 +2542,7 @@ msgstr "Tots els articles" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 msgid "This is an Amazon Topaz book. It cannot be processed." -msgstr "" +msgstr "Aquest és un llibre Amazon Topaz. No es pot processar" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 msgid "Title Page" @@ -2774,7 +2801,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author" msgstr "Autor" @@ -2891,7 +2918,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:200 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:194 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3066,7 +3093,7 @@ msgid "Disable UI animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "Copiat" @@ -3078,7 +3105,7 @@ msgstr "Copia" msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:397 msgid "Choose Files" msgstr "Escull fitxers" @@ -3093,13 +3120,13 @@ msgid "User annotations generated from main library only" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:611 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:707 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:941 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1059 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:623 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:682 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:719 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1116 msgid "No books selected" msgstr "Cap llibre seleccionat" @@ -3145,7 +3172,7 @@ msgid "Uploading books to device." msgstr "Pujant llibres a l'aparell." #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 msgid "Books" msgstr "Llibres" @@ -3211,137 +3238,142 @@ msgid "Failed to read metadata from the following" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 msgid "Add to library" -msgstr "" +msgstr "Afegeix a la biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:459 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1228 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1285 msgid "No book selected" msgstr "Cap llibre seleccionat" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:442 +msgid "" +"The following books are virtual and cannot be added to the calibre library:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 msgid "No book files found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:470 msgid "Cannot delete" -msgstr "" +msgstr "No puc esborrar" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:483 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:501 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:521 msgid "Cannot delete books" msgstr "No puc esborrar llibres" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:522 msgid "No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:532 msgid "Main memory" msgstr "Memòria principal" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:439 msgid "Storage Card A" msgstr "Tarja de memòria A" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 msgid "Storage Card B" msgstr "Tarja de memòria B" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:539 msgid "No books to delete" msgstr "Cap llibre per esborrar" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:540 msgid "None of the selected books are on the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:612 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:578 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/actions.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:597 msgid "" "The selected books will be permanently deleted from your device. Are " "you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:610 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:622 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:638 msgid "social metadata" -msgstr "" +msgstr "Metadades socials" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 msgid "covers" msgstr "portades" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:642 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:654 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:666 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:655 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:667 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:659 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:595 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:962 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Error" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:681 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:718 msgid "Cannot edit metadata" msgstr "No puc editar les meta-dades" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:730 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:742 msgid "Cannot merge books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:731 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:743 msgid "At least two books must be selected for merging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:747 msgid "" "All book formats and metadata from the selected books will be added to the " "first selected book.

The second and subsequently selected " @@ -3349,7 +3381,7 @@ msgid "" "proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:746 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 msgid "" "All book formats and metadata from the selected books will be merged into " "the first selected book.

After merger the second and " @@ -3359,99 +3391,111 @@ msgid "" "from your computer.

Are you sure you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:770 msgid "" "You are about to merge more than 5 books. Are you sure you want to " "proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:924 msgid "Cannot save to disk" msgstr "No puc desar al disc" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:927 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:566 +msgid "Not allowed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:934 +msgid "" +"You are tying to save files into the calibre library. This can cause " +"corruption of your library. Save to disk is meant to export files from your " +"calibre library elsewhere." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:968 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:912 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:969 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:920 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:976 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:977 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:921 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:999 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1016 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:964 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1021 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "No trobo llibres" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:965 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1022 msgid "" "No books to catalog\n" "Check exclude tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:975 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1032 msgid "Catalog generated." msgstr "Catàleg generat" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1035 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:979 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1036 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:995 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1052 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1066 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1058 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1115 msgid "Cannot convert" msgstr "No puc convertir-lo" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1087 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1144 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1321 msgid "Cannot view" msgstr "No puc mostrar-lo" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1209 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1266 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1274 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1218 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1275 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 " @@ -3459,11 +3503,11 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1227 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1284 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1322 msgid "%s has no available formats." msgstr "" @@ -3488,7 +3532,7 @@ msgid "The specified directory could not be processed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:804 msgid "No books" msgstr "Cap llibre" @@ -3559,7 +3603,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 @@ -3613,22 +3657,22 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 -#: /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:548 -#: /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:562 +#: /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:552 #: /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:566 -#: /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:610 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /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:570 +#: /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:614 #: /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:379 -#: /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:392 -#: /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:370 +#: /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:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 @@ -3816,7 +3860,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 msgid "ignore" -msgstr "" +msgstr "ignora" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 msgid "backslashreplace" @@ -3832,7 +3876,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 msgid "misc" -msgstr "" +msgstr "misc" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 msgid "book" @@ -3867,10 +3911,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1487 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1505 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1493 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1511 msgid "Catalog" -msgstr "" +msgstr "Catàleg" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Don't include this book' tag:" @@ -3939,7 +3983,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 "entrada" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 @@ -4154,7 +4198,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 msgid "0.0 pt" -msgstr "" +msgstr "0.0 pt" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16 msgid "Look & Feel" @@ -4166,7 +4210,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:30 msgid "Original" -msgstr "" +msgstr "Original" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:31 msgid "Left align" @@ -4304,38 +4348,38 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:111 msgid "Choose cover for " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118 msgid "Cannot read" msgstr "No pot llegir-se" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:119 msgid "You do not have permission to read the file: " msgstr "No tens permissos per a llegir l'arxiu: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:127 msgid "Error reading file" msgstr "Error llegint l'arxiu" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 msgid "

There was an error reading from file:
" msgstr "

Error llegint de l'arxiu:
" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 msgid " is not a valid picture" msgstr " no és una imatge vàlida" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /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:401 msgid "Book Cover" msgstr "Coberta" @@ -4344,28 +4388,28 @@ msgid "Use cover from &source file" 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:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 msgid "Change &cover image:" msgstr "Canvia la imatge de la &coberta:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /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:403 msgid "Browse for an image to use as the cover of this book." msgstr "Cerca una imatge per a utilitzar com a coberta d'aquest llibre." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /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 msgid "&Title: " msgstr "&Tí­tol: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /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:363 msgid "Change the title of this book" msgstr "Canvia el tí­tol del llibre" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 #: /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:361 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid "&Author(s): " msgstr "&Autor(s): " @@ -4382,18 +4426,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 -#: /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:375 msgid "&Publisher: " msgstr "&Editorial: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /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:376 msgid "Ta&gs: " msgstr "Etique&tes: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 -#: /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:377 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

They can be any words or phrases, separated by commas." @@ -4403,7 +4447,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /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:380 msgid "&Series:" msgstr "&Sèries:" @@ -4411,13 +4455,13 @@ msgstr "&Sèries:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 -#: /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 +#: /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 "List of known series. You can add new series." msgstr "Llistat de sèries conegudes. Podeu afegir-hi de noves." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /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:387 msgid "Book " msgstr "Llibre " @@ -4582,7 +4626,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 msgid "Convert" -msgstr "" +msgstr "Converteix" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 msgid "Options specific to the input format." @@ -4776,7 +4820,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" @@ -4916,100 +4960,100 @@ msgstr "" msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:162 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:278 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:289 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:299 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:308 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:313 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:369 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:379 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:413 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:419 msgid "Send to main memory" msgstr "Envia a la memòria interna" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:437 msgid "Main Memory" -msgstr "" +msgstr "Memòria principal" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:448 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:449 msgid "Send specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:485 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 msgid "Fetch annotations (experimental)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:603 msgid "Error communicating with device" msgstr "Error en la comunicació amb el dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:618 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:625 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:668 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:675 msgid "Error talking to device" msgstr "Error comunicant amb el dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -5017,132 +5061,132 @@ msgstr "" "Hi ha hagut un error de comunicació amb el dispositiu. Lleve, torne a " "connectar el dispositiu i torne a iniciar el programa" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:711 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:718 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:713 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:798 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:803 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:816 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 msgid "by" -msgstr "" +msgstr "per" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:887 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:910 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1193 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:917 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1019 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1081 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:944 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:949 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 msgid "News:" -msgstr "" +msgstr "Notícies:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1167 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1209 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:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1271 msgid "No space on device" msgstr "Sense espai al dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1272 msgid "" "

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

No puc desar llibres al dispositiu perquè no hi ha espai restant " @@ -5237,6 +5281,14 @@ msgstr "" msgid "The folder %s is not empty. Please choose an empty folder" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location selected" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 msgid "Choose your calibre library" msgstr "" @@ -5389,135 +5441,143 @@ msgstr "" msgid "Never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524 +msgid "Done" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525 +msgid "Confirmation dialogs have all been reset" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:530 msgid "System port selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:531 msgid "" "The value %d you have chosen for the content server port is a system " "port. Your operating system may not allow the server to run on this " "port. To be safe choose a port number larger than 1024." 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 "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:554 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:555 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:556 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:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 msgid "No valid plugin path" 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 "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:611 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:614 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:623 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:634 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:680 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:681 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:703 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:712 msgid "You must select a column to delete it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:717 msgid "The selected column is not a custom column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:718 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" msgstr "N'estàs segur?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:719 msgid "Do you really want to delete column %s and all its data?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:777 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:786 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:784 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:793 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:318 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:846 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:838 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:847 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:899 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:908 msgid "Must restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:900 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:909 msgid "" "The changes you made require that Calibre be restarted. Please restart as " "soon as practical." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:943 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:954 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:963 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:968 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:960 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:969 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 " @@ -5655,278 +5715,282 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:616 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 msgid "Preferences" msgstr "Preferències" -#: /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:537 msgid "Show notification when &new version is available" 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:538 msgid "Download &social metadata (tags/ratings/etc.) by default" 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:539 msgid "&Overwrite author and title by default when fetching metadata" 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:540 msgid "Default network &timeout:" 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:541 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:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid " seconds" msgstr " segons" -#: /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:543 msgid "Choose &language (requires restart):" 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:544 msgid "Normal" 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:545 msgid "High" 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:546 msgid "Low" 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:547 msgid "Job &priority:" 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:548 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 -msgid "Preferred &input format order:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 -msgid "Use &Roman numerals for series number" +msgid "Reset all disabled &confirmation dialogs" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 -msgid "Enable system &tray icon (needs restart)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 -msgid "Show ¬ifications in system tray" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 -msgid "Show &splash screen at startup" +msgid "Preferred &input format order:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 -msgid "Show cover &browser in a separate window (needs restart)" +msgid "Use &Roman numerals for series number" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 -msgid "Show &average ratings in the tags browser" +msgid "Enable system &tray icon (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 -msgid "Search as you type" +msgid "Show ¬ifications in system tray" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 -msgid "Automatically send downloaded &news to ebook reader" +msgid "Show &splash screen at startup" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 -msgid "&Delete news from library when it is automatically sent to reader" +msgid "Show cover &browser in a separate window (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 -msgid "&Number of covers to show in browse mode (needs restart):" +msgid "Show &average ratings in the tags browser" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 -msgid "Select visible &columns in library view" +msgid "Search as you type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +msgid "Automatically send downloaded &news to ebook reader" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 -msgid "Remove a user-defined column" +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:562 +msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 -msgid "Add a user-defined column" +msgid "Select visible &columns in library view" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 -msgid "Edit settings of a user-defined column" +msgid "Remove a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 -msgid "Use internal &viewer for:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +msgid "Add a user-defined column" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 -msgid "User Interface &layout (needs restart):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 -msgid "Disable all animations. Useful if you have a slow/old computer." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 -msgid "Disable &animations" +msgid "Edit settings of a user-defined column" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 -msgid "Show &donate button (restart)" +msgid "Use internal &viewer for:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 -msgid "&Toolbar" +msgid "User Interface &layout (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 -msgid "&Icon size:" +msgid "Disable all animations. Useful if you have a slow/old computer." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 -msgid "Show &text under icons:" +msgid "Disable &animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 -msgid "Add an email address to which to send books" +msgid "Show &donate button (restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 -msgid "&Add email" +msgid "&Toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 -msgid "Make &default" +msgid "&Icon size:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 -msgid "&Remove email" +msgid "Show &text under icons:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 +msgid "Add an email address to which to send books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +msgid "&Add email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 +msgid "Make &default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 +msgid "&Remove email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 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:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "Nom d'&usuari:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Contrasenya:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 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:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 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:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 msgid "Max. OPDS &ungrouped items:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 #: /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 " @@ -5937,33 +6001,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:604 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 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:605 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:610 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "&Add" msgstr "" @@ -6004,7 +6068,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Date" msgstr "Data" @@ -6052,41 +6116,41 @@ msgstr "" msgid "Yes/No" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 msgid "No column selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:70 msgid "No column has been selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:74 msgid "Selected column is not a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:105 msgid "No lookup name was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:107 msgid "" "The label must contain only letters, digits and underscores, and start with " "a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:116 msgid "No column heading was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:122 msgid "The lookup name %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:132 msgid "The heading %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:134 msgid "" "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" @@ -6214,7 +6278,7 @@ msgstr "Format" msgid "Delete from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author sort" msgstr "" @@ -6333,7 +6397,7 @@ msgid "Author s&ort: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 -#: /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:368 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -6342,14 +6406,14 @@ msgstr "" "exemple,ordena Vicent A. Estellés com a Estellés, Vicent A." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:162 -#: /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:371 msgid "&Rating:" msgstr "&Valoració:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 -#: /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 +#: /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 msgid "Rating of this book. 0-5 stars" msgstr "Valora aquest llibre: 0-5 estreles" @@ -6358,7 +6422,7 @@ msgid "No change" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 -#: /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:374 msgid " stars" msgstr " estreles" @@ -6368,8 +6432,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 -#: /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 +#: /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 "Open Tag Editor" msgstr "" @@ -6409,211 +6473,238 @@ msgid "Remove &stored conversion settings for the selected books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 msgid "&Basic metadata" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:94 +msgid "Last modified: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:135 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:150 +msgid "Specify title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 +msgid "You must specify a title and author before generating a cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:223 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:234 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:235 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:284 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:327 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:434 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:470 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:473 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:552 msgid "Cannot use tag editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "The tags editor cannot be used if you have modified the tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:601 msgid "Cannot fetch cover" msgstr "No puc aconseguir la coberta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:555 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:602 msgid "Could not fetch cover.
" msgstr "No puc aconseguir la coberta.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:587 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:591 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:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:603 +msgid "" +"For the error message from each cover source, click Show details below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:610 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:644 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:674 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:637 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 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:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:750 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:751 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:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Edit Meta Information" msgstr "Edita la meta-informació" -#: /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 msgid "Meta information" msgstr "Meta-informació" -#: /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:364 msgid "Swap the author and title" msgstr "" -#: /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:367 msgid "Author S&ort: " msgstr "&Ordena autors: " -#: /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:369 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:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "Remove unused series (Series that have no books)" 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:385 msgid "IS&BN:" msgstr "IS&BN:" -#: /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:386 msgid "Publishe&d:" 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:389 msgid "dd MMM yyyy" 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:390 msgid "&Date:" msgstr "" -#: /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:391 msgid "&Comments" 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:392 msgid "&Fetch metadata from server" msgstr "" -#: /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:393 msgid "Available Formats" msgstr "Formats disponibles" -#: /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:394 msgid "Add a new format for this book to the database" msgstr "Afegir un nou format per a aquest llibre a la base de dades" -#: /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 msgid "Remove the selected formats for this book from the database." msgstr "" "Elimina els formats seleccionats per a aquest llibre de la base de dades." -#: /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:398 msgid "Set the cover for the book from the selected format" msgstr "" -#: /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:400 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Download &cover" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +msgid "Generate a default cover based on the title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "&Generate cover" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 msgid "Password needed" msgstr "Es necessita una contrasenya." @@ -6889,21 +6980,21 @@ msgstr "" msgid "Choose formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 msgid "Authors" msgstr "Autors" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 msgid "Publishers" msgstr "Editors" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:114 msgid " (not on any book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:166 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" @@ -6957,7 +7048,7 @@ msgid "Select the content kind of the new category" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" msgstr "" @@ -7011,33 +7102,33 @@ msgstr "" msgid "%s (was %s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 msgid "Item is blank" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:91 msgid "No item selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:92 msgid "You must select one item from the list of Available items." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 msgid "No items selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 msgid "You must select at least one items from the list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:106 msgid "Are you certain you want to delete the following items?" msgstr "" @@ -7469,7 +7560,7 @@ msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:89 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:567 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:568 msgid "Card A" msgstr "" @@ -7478,7 +7569,7 @@ msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:91 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:569 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:570 msgid "Card B" msgstr "" @@ -7522,254 +7613,264 @@ msgid "Delete current saved search" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:302 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:108 msgid "%d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:334 -msgid "Connect to folder" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:340 -msgid "Connect to iTunes" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:360 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid "Email to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid " and delete from library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:373 -msgid "Setup email based sharing of books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "A" -msgstr "A" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "Add books" -msgstr "Afegeix llibres" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "E" -msgstr "E" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "Edit metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "C" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "Convert books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -msgid "V" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 -msgid "View" -msgstr "Mostra" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:450 -msgid "Send to device" -msgstr "Envia al dispositiu" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:305 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:468 msgid "Choose calibre library to work with" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 -msgid "F" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:336 +msgid "Connect to folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 -msgid "Fetch news" -msgstr "Recull notí­cies (RSS)" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -msgid "S" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:341 +msgid "Connect to iTunes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 -msgid "Save to disk" -msgstr "Desa al disc" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:455 -msgid "Connect/share" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:356 +msgid "Start Content Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 -msgid "Del" -msgstr "Esborra" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 -msgid "Remove books" -msgstr "Suprimeix llibres" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "Browse the calibre User Manual" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:358 +msgid "Stop Content Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "F1" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid "Email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "Help" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid " and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -msgid "Ctrl+P" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:389 +msgid "Setup email based sharing of books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 -msgid "M" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "A" +msgstr "A" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 -msgid "Merge book records" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:461 -msgid "Open containing folder" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "Add books" +msgstr "Afegeix llibres" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 -msgid "Show book details" +msgid "E" +msgstr "E" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +msgid "Edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "C" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "Convert books" +msgstr "Converteix llibres" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +msgid "V" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 -msgid "Books by same author" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:568 +msgid "View" +msgstr "Mostra" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 -msgid "Books in this series" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:466 +msgid "Send to device" +msgstr "Envia al dispositiu" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +msgid "F" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +msgid "Fetch news" +msgstr "Recull notí­cies (RSS)" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 +msgid "S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 +msgid "Save to disk" +msgstr "Desa al disc" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 +msgid "Connect/share" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 +msgid "Del" +msgstr "Esborra" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 +msgid "Remove books" +msgstr "Suprimeix llibres" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "Browse the calibre User Manual" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "F1" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "Help" +msgstr "Ajuda" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 +msgid "Ctrl+P" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 +msgid "M" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 +msgid "Merge book records" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:477 +msgid "Open containing folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:479 +msgid "Show book details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:481 +msgid "Books by same author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:483 +msgid "Books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:485 msgid "Books by this publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 msgid "Books with the same tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:501 msgid "Edit metadata individually" msgstr "Edita metadades individualment" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 msgid "Edit metadata in bulk" msgstr "Edita metadades en massa" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:490 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 msgid "Download metadata and covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:510 msgid "Download only metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:512 msgid "Download only covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 msgid "Download only social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:521 msgid "Merge into first selected book - delete others" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:524 msgid "Merge into first selected book - keep others" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:532 msgid "Add books from a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 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/layout.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 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/layout.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:541 msgid "Add Empty book. (Book entry with no formats)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:553 msgid "Save to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:385 msgid "Save only %s format to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:542 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:388 msgid "Save only %s format to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 msgid "View specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:575 msgid "Remove selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:577 msgid "Remove files of a specific format from selected books.." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:580 msgid "Remove all formats from selected books, except..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:583 msgid "Remove covers from selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 msgid "Remove matching books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:603 msgid "Convert individually" msgstr "Converteix individualment" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:605 msgid "Bulk convert" msgstr "Converteix tots" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:609 msgid "Create catalog of books in your calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:617 msgid "Run welcome wizard" msgstr "" @@ -7860,11 +7961,7 @@ msgstr "" msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:560 -msgid "Not allowed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:567 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -7961,7 +8058,7 @@ msgid "Do not check for updates" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:598 msgid "Calibre Library" msgstr "" @@ -8079,11 +8176,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:93 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:119 msgid "No matches found for this book" msgstr "" @@ -8091,7 +8188,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:254 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:554 msgid "Search" -msgstr "" +msgstr "Cerca" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:306 msgid "The selected search will be permanently deleted. Are you sure?" @@ -8111,7 +8208,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:10 msgid "Restrict to" -msgstr "" +msgstr "Restringit a" #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:55 @@ -8141,7 +8238,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid " or " -msgstr "" +msgstr " o " #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 @@ -8188,7 +8285,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:190 msgid "Rename '%s'" -msgstr "" +msgstr "Reanomena '%s'" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:194 msgid "Edit sort for '%s'" @@ -8223,7 +8320,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:432 #: /home/kovid/work/calibre/src/calibre/library/database2.py:291 msgid "Searches" -msgstr "" +msgstr "Cerques" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:510 msgid "Duplicate search name" @@ -8329,69 +8426,69 @@ msgstr "" msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:367 msgid "Cannot configure" msgstr "No puc configurar-lo" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:363 msgid "Cannot configure while there are running jobs." msgstr "No puc configurar-lo amb treballs processant-se" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:368 msgid "Cannot configure before calibre is restarted." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:415 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:416 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:457 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:496 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:469 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:471 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:482 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:497 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:537 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. " "Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:563 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:566 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:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:570 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:625 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -8626,7 +8723,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:455 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." -msgstr "" +msgstr "Vés a..." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:467 msgid "Next Section" @@ -8686,19 +8783,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:36 msgid "Scroll down" -msgstr "" +msgstr "Desplaça avall" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:39 msgid "Scroll up" -msgstr "" +msgstr "Desplaça amunt" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:42 msgid "Scroll left" -msgstr "" +msgstr "Desplaça a l'esquerra" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:45 msgid "Scroll right" -msgstr "" +msgstr "Desplaça a la dreta" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 msgid "Book format" @@ -8718,7 +8815,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:268 msgid "Print Preview" -msgstr "" +msgstr "Vista prèvia d'impressió" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:299 msgid "Connecting to dict.org to lookup: %s…" @@ -8734,7 +8831,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:418 msgid "Add bookmark" -msgstr "" +msgstr "Afegeix un nou marcador" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:418 msgid "Enter title for bookmark:" @@ -8770,7 +8867,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:591 msgid "Could not open ebook" -msgstr "" +msgstr "No s'ha pogut obrir l'ebook" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:665 msgid "Options to control the ebook viewer" @@ -8806,15 +8903,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 msgid "Next page" -msgstr "" +msgstr "Pàgina següent" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 msgid "Previous page" -msgstr "" +msgstr "Pàgina anterior" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 msgid "Font size larger" -msgstr "" +msgstr "Grandària de lletra base més gran:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Font size smaller" @@ -8850,11 +8947,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205 msgid "Print" -msgstr "" +msgstr "Imprimeix" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Find previous" -msgstr "" +msgstr "Troba l' anterior" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:207 msgid "Find previous occurrence" @@ -8906,62 +9003,62 @@ msgstr "Mostra" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:877 msgid "Hide" -msgstr "" +msgstr "Amaga" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:370 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:371 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:374 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:373 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:376 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:450 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:453 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:470 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:524 msgid "Invalid database" -msgstr "" +msgstr "Base de dades no vàlida" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525 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:533 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:536 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:590 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:665 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/finish_ui.py:42 #: /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 @@ -8969,7 +9066,7 @@ 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/finish_ui.py:43 #: /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 @@ -8990,19 +9087,19 @@ msgstr "" msgid "&Devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:44 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 msgid "" "

User Manual

A User Manual is also available online." @@ -9033,7 +9130,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 msgid "&Change" -msgstr "" +msgstr "&Canvia" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 msgid "" @@ -9154,7 +9251,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Use Gmail" -msgstr "" +msgstr "Fes servir Gmail" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "&Test email" @@ -9734,31 +9831,31 @@ msgstr "" msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:565 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:566 msgid "Main" -msgstr "" +msgstr "Inici" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1790 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1796 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1819 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1825 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1836 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1929 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1935 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1970 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1976 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1992 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1998 msgid "Checked id" msgstr "" @@ -9768,11 +9865,11 @@ msgstr "Classificació" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 msgid "The title" -msgstr "" +msgstr "El títol" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 msgid "The authors" -msgstr "" +msgstr "Els autors" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 msgid "" @@ -9782,7 +9879,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 msgid "The tags" -msgstr "" +msgstr "Les etiquetes" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 msgid "The series" @@ -9804,11 +9901,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 msgid "The publisher" -msgstr "" +msgstr "L'editorial" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The date" -msgstr "" +msgstr "La data" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:37 msgid "The published date" @@ -9884,7 +9981,7 @@ msgstr "" msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:258 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:263 msgid "Requested formats not available" msgstr "" @@ -9929,7 +10026,7 @@ msgid "" "disable grouping." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:93 +#: /home/kovid/work/calibre/src/calibre/library/server/base.py:94 msgid "Password to access your calibre library. Username is " msgstr "" @@ -9966,7 +10063,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:231 msgid "Books in your library" -msgstr "" +msgstr "LLibres a la teva biblioteca" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:237 msgid "By " @@ -9974,109 +10071,109 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:238 msgid "Books sorted by " -msgstr "" +msgstr "Llibres ordenats per " -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Newest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:49 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:34 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:78 msgid "Created by " msgstr "Creat per " -#: /home/kovid/work/calibre/src/calibre/utils/config.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:79 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:678 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:663 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:680 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:665 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:682 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:667 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:684 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:669 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:686 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:671 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:688 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:673 msgid "The language in which to display the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:690 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:675 msgid "The default output format for ebook conversions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:694 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:679 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:696 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:681 msgid "Read metadata from files" -msgstr "" +msgstr "Llegeix metadades dels fitxers" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:698 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:683 msgid "The priority of worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:700 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:685 msgid "Swap author first and last names when reading metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:702 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:687 msgid "Add new formats to existing book records" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:707 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:692 msgid "List of named saved searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:708 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:693 msgid "User-created tag browser categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:710 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:695 msgid "How and when calibre updates metadata on the device." msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." -msgstr "" +msgstr "Esperant..." #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:51 msgid "Stopped" -msgstr "" +msgstr "Aturat" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Finished" -msgstr "" +msgstr "Finalitzat" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." -msgstr "" +msgstr "Treballant..." #: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 msgid "Brazilian Portuguese" -msgstr "" +msgstr "Portuguès de Canadà" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 msgid "English (UK)" -msgstr "" +msgstr "Anglès (UK)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 msgid "Simplified Chinese" @@ -10096,59 +10193,59 @@ msgstr "Anglès" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 msgid "English (Australia)" -msgstr "" +msgstr "Anglès (Austràlia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 msgid "English (New Zealand)" -msgstr "" +msgstr "Anglès (Nova Zelanda)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 msgid "English (Canada)" -msgstr "" +msgstr "Anglès (Canadà)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 msgid "English (India)" -msgstr "" +msgstr "Anglès (Ãndia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 msgid "English (Thailand)" -msgstr "" +msgstr "Anglès (Tailàndia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 msgid "English (Cyprus)" -msgstr "" +msgstr "Anglès (Xipre)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Pakistan)" -msgstr "" +msgstr "Anglès (Paquistan)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "English (Israel)" -msgstr "" +msgstr "Anglès (Israel)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 msgid "English (Singapore)" -msgstr "" +msgstr "Anglès (Singapur)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 msgid "English (Yemen)" -msgstr "" +msgstr "Anglès (Iemen)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 msgid "English (Ireland)" -msgstr "" +msgstr "Anglès (Irlanda)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:112 msgid "English (China)" -msgstr "" +msgstr "Anglès (Xina)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:113 msgid "Spanish (Paraguay)" -msgstr "" +msgstr "Espanyol (Paraguai)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:114 msgid "German (AT)" -msgstr "" +msgstr "Alemany (AT)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:115 msgid "Dutch (NL)" @@ -10179,6 +10276,9 @@ msgid "Control email delivery" msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:118 +msgid "Unknown section" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:140 msgid "Unknown feed" msgstr "" @@ -10211,11 +10311,11 @@ msgid "" "Do not download latest version of builtin recipes from the calibre server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:44 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:46 msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 msgid "The \"%s\" recipe needs a username and password." msgstr "" @@ -10275,33 +10375,33 @@ msgstr "" msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1002 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1003 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1192 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1172 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1263 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1243 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1274 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1254 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1291 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Fetching feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1438 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1418 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1454 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1434 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." @@ -10309,7 +10409,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 msgid "You" -msgstr "" +msgstr "Tu" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index 927db48ccc..a75a7980a8 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: calibre 0.7.10\n" -"POT-Creation-Date: 2010-07-23 10:29+MDT\n" -"PO-Revision-Date: 2010-07-23 10:29+MDT\n" +"Project-Id-Version: calibre 0.7.14\n" +"POT-Creation-Date: 2010-08-18 16:15+MDT\n" +"PO-Revision-Date: 2010-08-18 16:15+MDT\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -25,12 +25,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:499 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:398 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:506 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:405 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:428 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:407 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:335 @@ -38,16 +38,16 @@ 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:235 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:278 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:281 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:236 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:282 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:317 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:333 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -98,47 +98,47 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:240 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:242 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:815 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:234 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:300 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:292 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1163 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1166 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:513 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:186 #: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:356 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:368 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:976 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1045 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1646 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1648 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1770 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:362 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:374 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1007 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1076 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1760 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1762 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1885 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:201 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 -#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 +#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:70 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:117 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64 @@ -168,6 +168,10 @@ msgstr "" msgid "Catalog generator" msgstr "" +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:359 +msgid "User Interface Action" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:16 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 "" @@ -230,7 +234,7 @@ msgstr "" msgid "Conversion Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:129 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 "" @@ -251,7 +255,7 @@ msgid "This profile tries to provide sane defaults and is useful if you know not msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:412 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:414 msgid "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -260,62 +264,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:447 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:449 msgid "This profile is intended for the SONY PRS-900." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:477 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 msgid "This profile is intended for the Microsoft Reader." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:490 msgid "This profile is intended for the Mobipocket books." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:521 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:523 msgid "This profile is intended for the Cybook G3." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:534 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 msgid "This profile is intended for the Cybook Opus." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:545 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:547 msgid "This profile is intended for the Amazon Kindle." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:580 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:584 msgid "This profile is intended for the Irex Illiad." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:593 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 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:607 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:611 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:621 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:625 msgid "This profile is intended for the B&N Nook." msgstr "" @@ -327,59 +331,59 @@ msgstr "" 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:257 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:259 msgid "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 msgid "This profile is intended for the Kobo Reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:438 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440 msgid "This profile is intended for the SONY PRS-300." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:456 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:458 msgid "This profile is intended for the 5-inch JetBook." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:465 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 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:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:566 msgid "This profile is intended for the Amazon Kindle DX." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Installed plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Mapping for filetype plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 msgid "Local plugin customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 msgid "Disabled plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:37 msgid "Enabled plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:84 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:85 msgid "No valid plugin found in " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:489 msgid "Initialization of plugin %s failed with traceback:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:522 msgid "" " %prog options\n" "\n" @@ -387,27 +391,27 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:507 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:528 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:509 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:530 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:532 msgid "Customize plugin. Specify name of plugin and customization string separated by a comma." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:534 msgid "List all installed plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:515 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:536 msgid "Enable the named plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:538 msgid "Disable the named plugin" msgstr "" @@ -415,11 +419,11 @@ msgstr "" msgid "Communicate with Android phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:50 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/android/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:92 msgid "Communicate with S60 phones." msgstr "" @@ -440,14 +444,14 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:362 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:921 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:957 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2802 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2841 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2822 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2861 msgid "%d of %d" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:369 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:962 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2847 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2867 msgid "finished" msgstr "" @@ -472,19 +476,19 @@ msgid "" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2471 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:807 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:813 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2491 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:851 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1530 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:190 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:203 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1644 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 msgid "News" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2709 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2729 msgid "Communicate with iTunes." msgstr "" @@ -540,7 +544,7 @@ msgid "Use an arbitrary folder as a device." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:14 msgid "Device Interface" msgstr "" @@ -548,15 +552,15 @@ msgstr "" msgid "Communicate with Hanlin V3 eBook readers." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:87 +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:96 msgid "Communicate with Hanlin V5 eBook readers." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:106 +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:115 msgid "Communicate with the BOOX eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:123 +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:132 msgid "Comma separated list of directories to send e-books to on the device. The first one that exists will be used." msgstr "" @@ -586,7 +590,7 @@ 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:38 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:42 msgid "John Schember" msgstr "" @@ -626,40 +630,49 @@ msgstr "" msgid "Communicate with the Kobo Reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:51 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:54 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:57 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:159 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:64 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:139 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:56 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:59 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:161 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:136 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 msgid "Getting list of books on device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:219 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:263 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:264 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:221 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:265 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:253 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 msgid "Removing books from device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:269 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:278 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:283 msgid "Removing books from device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:279 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:313 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:210 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:240 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:281 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:247 msgid "Adding books to device metadata listing..." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:249 +msgid "Not Implemented" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:367 +msgid "\".kobo\" files do not exist on the device as books instead, they are rows in the sqlite database. Currently they cannot be exported or viewed." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" msgstr "" @@ -668,11 +681,11 @@ msgstr "" msgid "Communicate with the Booq Avant" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:57 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:58 msgid "Communicate with the Sweex MM300" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:77 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:78 msgid "Communicate with the Pandigital Novel" msgstr "" @@ -712,7 +725,7 @@ msgstr "" 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/sony_cache.py:140 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:144 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "" @@ -722,56 +735,56 @@ msgid "Communicate with the Samsung SNE eBook reader." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:11 -msgid "Communicate with the Teclast K3 reader." +msgid "Communicate with the Teclast K3/K5 reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:37 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:36 msgid "Communicate with the Newsmy reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:49 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:48 msgid "Communicate with the iPapyrus reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:245 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:490 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500 msgid "Unable to detect the %s disk drive." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:583 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593 msgid "Could not find mount helper: %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:595 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605 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:603 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613 msgid "Unable to mount main memory (Error code: %d)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:740 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752 msgid "The reader has no storage card in this slot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754 msgid "Selected slot: %s is not supported." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783 msgid "There is insufficient free space in main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:777 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787 msgid "There is insufficient free space on the storage card" msgstr "" @@ -809,20 +822,20 @@ msgstr "" msgid "Extra customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 msgid "Communicate with an eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:57 msgid "Get device information..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:190 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:192 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:194 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:196 msgid "Transferring books to device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:314 msgid "Sending metadata to device..." msgstr "" @@ -907,75 +920,75 @@ msgstr "" msgid "Set font delta" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:182 msgid "Rendered %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:204 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:185 msgid "Failed %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:261 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:239 msgid "" "Failed to process comic: \n" "\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:258 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:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:262 msgid "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:265 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:267 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:269 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:293 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:272 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 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:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:277 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:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 msgid "Enable Despeckle. Reduces speckle noise. May greatly increase processing time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:305 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:284 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:309 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 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:313 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:294 msgid "Do not convert the image to grayscale (black and white)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:463 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:431 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 msgid "Page" msgstr "" @@ -1594,7 +1607,7 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 @@ -1603,11 +1616,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:543 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:550 msgid "Title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 @@ -1615,18 +1628,18 @@ msgstr "" msgid "Author(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 #: /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:400 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 @@ -1638,7 +1651,7 @@ msgstr "" msgid "Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:408 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:409 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 @@ -1648,7 +1661,7 @@ msgstr "" msgid "Tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:410 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 @@ -1658,22 +1671,22 @@ msgstr "" msgid "Series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:412 msgid "Language" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:414 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:416 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 msgid "Published" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:418 msgid "Rights" msgstr "" @@ -1767,51 +1780,79 @@ msgstr "" msgid "No cover found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:15 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:27 msgid "Cover download" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:79 +msgid "Download covers from openlibrary.org" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:136 +msgid "ISBN: %s not found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:117 +msgid "Download covers from librarything.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 +msgid "LibraryThing.com timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:135 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 +msgid "Could not fetch cover as server is experiencing high load. Please try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 +msgid "LibraryThing.com server error. Try again later." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:51 msgid "Metadata download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 msgid "ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 msgid "tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 msgid "description/reviews" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:130 msgid "Download %s from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 msgid "Downloads metadata from Google Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:173 msgid "Downloads metadata from isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:184 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:201 msgid "To use isbndb.com you must sign up for a %sfree account%s and enter your access key below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:211 msgid "Downloads social metadata from amazon.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:213 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" @@ -1844,22 +1885,10 @@ msgstr "" msgid "The publisher of the book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 -msgid "LibraryThing.com timed out. Try again later." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 -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:76 msgid " not found." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 -msgid "LibraryThing.com server error. Try again later." -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 msgid "" "\n" @@ -2241,7 +2270,7 @@ msgstr "" msgid "Specify the character encoding of the output document. The default is cp1252." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:200 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:194 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML first and then try it.\n" "%s" @@ -2392,7 +2421,7 @@ msgid "Disable UI animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "" @@ -2404,371 +2433,764 @@ msgstr "" msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:403 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:245 -msgid "Use library only" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:25 +msgid "A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:246 -msgid "User annotations generated from main library only" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:25 +msgid "Add books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:609 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:668 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:705 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:726 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:976 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1094 -msgid "No books selected" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:30 +msgid "Add books from a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:76 -msgid "No books selected to fetch annotations from" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:32 +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/actions.py:101 -msgid "Merging user annotations into database" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:36 +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/actions.py:129 -msgid "%s
Last Page Read: %d (%d%%)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:40 +msgid "Add Empty book. (Book entry with no formats)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:135 -msgid "%s
Last Page Read: Location %d (%d%%)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:42 +msgid "Add from ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:154 -msgid "Location %d • %s
%s
" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:163 -msgid "Page %d • %s
" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:168 -msgid "Location %d • %s
" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:81 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:82 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:198 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 msgid "Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:158 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:159 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 msgid "Topaz books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:207 msgid "Merged some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:208 msgid "Some duplicates were found and merged into the following existing books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:217 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:218 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:256 msgid "Add to library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:459 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1238 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1263 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +msgid "The following books are virtual and cannot be added to the calibre library:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:256 msgid "No book files found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:456 -msgid "Cannot delete" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add_to_library.py:13 +msgid "Add books to library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:469 -msgid "Choose formats to be deleted" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:499 +msgid "Fetch annotations (experimental)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:487 -msgid "Choose formats not to be deleted" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:235 +msgid "Use library only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:507 -msgid "Cannot delete books" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:236 +msgid "User annotations generated from main library only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:508 -msgid "No device is connected" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:91 +msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:518 -msgid "Main memory" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:64 +msgid "No books selected to fetch annotations from" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:439 -msgid "Storage Card A" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:89 +msgid "Merging user annotations into database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 -msgid "Storage Card B" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:117 +msgid "%s
Last Page Read: %d (%d%%)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:525 -msgid "No books to delete" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:123 +msgid "%s
Last Page Read: Location %d (%d%%)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:526 -msgid "None of the selected books are on the device" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:142 +msgid "Location %d • %s
%s
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:598 -msgid "Deleting books from device." +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:151 +msgid "Page %d • %s
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:564 -msgid "The selected books will be permanently deleted and the files removed from your computer. Are you sure?" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:156 +msgid "Location %d • %s
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:583 -msgid "The selected books will be permanently deleted from your device. Are you sure?" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:32 +msgid "Create catalog of books in your calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:608 -msgid "Cannot download metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:624 -msgid "social metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 -msgid "covers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 -msgid "metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 -msgid "Downloading %s for %d book(s)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:652 -msgid "Failed to download some metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:653 -msgid "Failed to download metadata for the following:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:656 -msgid "Failed to download metadata:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:657 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:602 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 -msgid "Error" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:667 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:704 -msgid "Cannot edit metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:725 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 -msgid "Cannot merge books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:729 -msgid "At least two books must be selected for merging" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:733 -msgid "All book formats and metadata from the selected books will be added to the first selected book.

The second and subsequently selected books will not be deleted or changed.

Please confirm you want to proceed." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:744 -msgid "All book formats and metadata from the selected books will be merged into the first selected book.

After merger the second and subsequently selected books will be deleted.

All book formats of the first selected book will be kept and any duplicate formats in the second and subsequently selected books will be permanently deleted from your computer.

Are you sure you want to proceed?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:756 -msgid "You are about to merge more than 5 books. Are you sure you want to proceed?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:910 -msgid "Cannot save to disk" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:913 -msgid "Choose destination directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:946 -msgid "Error while saving" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:947 -msgid "There was an error while saving." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:954 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:955 -msgid "Could not save some books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:956 -msgid "Click the show details button to see which ones." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:977 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:31 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:994 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:48 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:999 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1000 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:54 msgid "" "No books to catalog\n" "Check exclude tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1010 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:64 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1013 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:67 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1014 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:68 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1030 -msgid "Fetching news from " +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:73 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:108 +msgid "%d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1044 -msgid " fetched." +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:74 +msgid "Choose calibre library to work with" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1093 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:81 +msgid "Switch to library..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:88 +msgid "Quick switch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:145 +msgid "No library found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:146 +msgid "No existing calibre library was found at %s. It will be removed from the list of known libraries." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:540 +msgid "Not allowed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:179 +msgid "You cannot change libraries when a device is connected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:184 +msgid "You cannot change libraries while jobs are running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:22 +msgid "C" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:22 +msgid "Convert books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:26 +msgid "Convert individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:28 +msgid "Bulk convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:84 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1122 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:113 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1238 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1299 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:15 +msgid "Copy to library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:16 +msgid "Copy selected books to the specified library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:18 +msgid "Del" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:18 +msgid "Remove books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:23 +msgid "Remove selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:25 +msgid "Remove files of a specific format from selected books.." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:28 +msgid "Remove all formats from selected books, except..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:31 +msgid "Remove covers from selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:34 +msgid "Remove matching books from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:52 +msgid "Cannot delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:65 +msgid "Choose formats to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:83 +msgid "Choose formats not to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:103 +msgid "Cannot delete books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:104 +msgid "No device is connected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:114 +msgid "Main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:445 +msgid "Storage Card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:447 +msgid "Storage Card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:121 +msgid "No books to delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:122 +msgid "None of the selected books are on the device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:194 +msgid "Deleting books from device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:160 +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/actions/delete.py:179 +msgid "The selected books will be permanently deleted from your device. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:25 +msgid "Connect to folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:30 +msgid "Connect to iTunes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:47 +msgid "Start Content Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:49 +msgid "Stop Content Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:68 +msgid "Email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:68 +msgid " and delete from library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:80 +msgid "Setup email based sharing of books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:97 +msgid "D" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:97 +msgid "Send to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:114 +msgid "Connect/share" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_collections.py:13 +msgid "Manage collections" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:24 +msgid "E" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:24 +msgid "Edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:27 +msgid "Merge book records" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:28 +msgid "M" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:30 +msgid "Edit metadata individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:33 +msgid "Edit metadata in bulk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:36 +msgid "Download metadata and covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:39 +msgid "Download only metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:41 +msgid "Download only covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:44 +msgid "Download only social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:50 +msgid "Merge into first selected book - delete others" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:53 +msgid "Merge into first selected book - keep others" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:73 +msgid "Cannot download metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 +msgid "social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:98 +msgid "covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:98 +msgid "metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:103 +msgid "Downloading %s for %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:124 +msgid "Failed to download some metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:125 +msgid "Failed to download metadata for the following:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:128 +msgid "Failed to download metadata:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:998 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 +msgid "Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:175 +msgid "Cannot edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:205 +msgid "Cannot merge books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:206 +msgid "At least two books must be selected for merging" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:210 +msgid "All book formats and metadata from the selected books will be added to the first selected book.

The second and subsequently selected books will not be deleted or changed.

Please confirm you want to proceed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:221 +msgid "All book formats and metadata from the selected books will be merged into the first selected book.

After merger the second and subsequently selected books will be deleted.

All book formats of the first selected book will be kept and any duplicate formats in the second and subsequently selected books will be permanently deleted from your computer.

Are you sure you want to proceed?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:233 +msgid "You are about to merge more than 5 books. Are you sure you want to proceed?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:18 +msgid "F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:18 +msgid "Fetch news" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:53 +msgid "Fetching news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:67 +msgid " fetched." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/help.py:16 +msgid "Browse the calibre User Manual" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/help.py:16 +msgid "F1" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/help.py:16 +msgid "Help" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/open.py:14 +msgid "Open containing folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/open.py:15 +msgid "O" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 +msgid "Ctrl+P" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 +msgid "Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 +msgid "Run welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:37 +msgid "Cannot configure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:33 +msgid "Cannot configure while there are running jobs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:38 +msgid "Cannot configure before calibre is restarted." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/restart.py:14 +msgid "&Restart" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/restart.py:14 +msgid "Ctrl+R" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:24 +msgid "Save single format to disk..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:40 +msgid "S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:45 +msgid "Save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:47 +msgid "Save to disk in a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:68 +msgid "Save only %s format to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:71 +msgid "Save only %s format to disk in a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:90 +msgid "Cannot save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:93 +msgid "Choose destination directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 +msgid "You are trying to save files into the calibre library. This can cause corruption of your library. Save to disk is meant to export files from your calibre library elsewhere." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:135 +msgid "Error while saving" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:136 +msgid "There was an error while saving." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:144 +msgid "Could not save some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:145 +msgid "Click the show details button to see which ones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 +msgid "Show book details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:17 +msgid "I" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:24 +msgid "No detailed info available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:25 +msgid "No detailed information is available for books on the device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:17 +msgid "Similar books..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:22 +msgid "Alt+A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:22 +msgid "Books by same author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:23 +msgid "Alt+S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:23 +msgid "Books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:24 +msgid "Alt+P" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:24 +msgid "Books by this publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:25 +msgid "Alt+T" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:25 +msgid "Books with the same tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:24 +msgid "V" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:31 +msgid "View" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:32 +msgid "View specific format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:155 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1244 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1252 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:108 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1253 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 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/actions.py:1262 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:118 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1300 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:156 msgid "%s has no available formats." msgstr "" @@ -2793,7 +3215,7 @@ msgid "The specified directory could not be processed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:804 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:811 msgid "No books" msgstr "" @@ -2860,7 +3282,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 @@ -2907,22 +3329,22 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 -#: /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:548 -#: /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:562 -#: /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:566 -#: /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:610 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:618 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:637 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:690 #: /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:379 -#: /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:392 -#: /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:370 +#: /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:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 @@ -2976,7 +3398,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:228 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:100 msgid "Formats" @@ -3158,8 +3580,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1493 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1511 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1607 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1625 msgid "Catalog" msgstr "" @@ -3187,7 +3609,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 msgid "" "Regex tips:\n" -"- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie]\n" +"- The default regex - \\[.+\\] - 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 "" @@ -3291,7 +3713,7 @@ msgid "&Disable comic processing" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:115 msgid "&Output format:" msgstr "" @@ -3307,16 +3729,16 @@ msgstr "" 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.py:39 #: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 msgid "Invalid debug directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:59 msgid "Failed to create debug directory" msgstr "" @@ -3443,15 +3865,15 @@ msgstr "" msgid "Control the look and feel of the output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:31 msgid "Original" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:32 msgid "Left align" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:33 msgid "Justify text" msgstr "" @@ -3577,39 +3999,39 @@ msgstr "" 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:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:112 msgid "Choose cover for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:119 msgid "Cannot read" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:120 msgid "You do not have permission to read the file: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 msgid "Error reading file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129 msgid "

There was an error reading from file:
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 msgid " is not a valid picture" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /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:401 msgid "Book Cover" msgstr "" @@ -3618,28 +4040,28 @@ msgid "Use cover from &source file" 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:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 msgid "Change &cover image:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 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:172 -#: /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 msgid "&Title: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /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:363 msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 -#: /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:366 msgid "&Author(s): " msgstr "" @@ -3653,24 +4075,24 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 -#: /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:375 msgid "&Publisher: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /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:376 msgid "Ta&gs: " 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:169 -#: /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:377 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:180 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /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:380 msgid "&Series:" msgstr "" @@ -3678,13 +4100,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 -#: /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 +#: /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 "List of known series. You can add new series." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /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:387 msgid "Book " msgstr "" @@ -3855,18 +4277,18 @@ msgstr "" 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/convert/single_ui.py:112 #: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:113 msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:114 msgid "Use &saved conversion settings for individual books" msgstr "" @@ -3880,39 +4302,39 @@ msgstr "" 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:35 msgid "Detect chapters at (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:36 msgid "Insert page breaks before (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:38 msgid "Header regular expression:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:41 msgid "Footer regular expression:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:76 msgid "Invalid regular expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:77 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:40 msgid "The XPath expression %s is invalid." msgstr "" @@ -3956,15 +4378,15 @@ msgstr "" msgid "Control the creation/conversion of the Table of Contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:30 msgid "Level &1 TOC (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:31 msgid "Level &2 TOC (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:32 msgid "Level &3 TOC (XPath expression):" msgstr "" @@ -4021,7 +4443,7 @@ msgid "&Maximum line length:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 -msgid "Force maximum line lenght" +msgid "Force maximum line length" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 @@ -4107,20 +4529,20 @@ msgstr "" 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/cover_flow.py:127 -msgid "Cover browser could not be loaded" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:118 msgid "Browse by covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:149 +msgid "Cover browser could not be loaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:130 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:205 @@ -4129,276 +4551,273 @@ msgstr "" msgid "Undefined" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:133 msgid "Yes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:134 msgid "No" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:122 msgid "star(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:123 msgid "Unrated" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:156 msgid "Set '%s' to today" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:266 msgid " index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:451 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 msgid "Automatically number books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:498 msgid "Remove all tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:519 msgid "tags to add" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:524 msgid "tags to remove" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:49 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:166 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:278 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:284 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:295 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:299 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:305 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:308 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:314 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:358 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:375 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:385 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:413 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:419 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:419 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 msgid "Send to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:427 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:429 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:428 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:437 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:443 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:448 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:454 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:449 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:455 msgid "Send specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:491 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 -msgid "Fetch annotations (experimental)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:603 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:609 msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:636 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:678 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:231 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:675 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:684 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:685 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/device.py:718 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:724 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:826 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:830 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:834 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:831 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:835 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:879 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:179 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:887 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:894 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:917 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1019 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1081 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:924 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:932 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1026 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1088 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1207 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1215 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:933 msgid "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:944 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:951 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:949 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:956 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:985 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:986 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1027 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1057 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1121 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1167 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1174 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1209 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1216 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:1271 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1278 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1272 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1279 msgid "

Cannot upload books to device there is no more free space available " msgstr "" @@ -4422,8 +4841,20 @@ msgstr "" msgid "Save &template:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:43 +msgid "Add books by ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:44 +msgid "

Enter a list of ISBNs in the box to the left, one per line. calibre will automatically create entries for books based on the ISBN and download metadata and covers for them.

Any invalid ISBNs in the list will be ignored." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:45 +msgid "&Paste from clipboard" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 -msgid "Fit &cover to view" +msgid "Fit &cover within view" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 @@ -4495,6 +4926,22 @@ msgstr "" msgid "The folder %s is not empty. Please choose an empty folder" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 +msgid "Bad location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:85 +msgid "%s is not an existing folder" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 msgid "Choose your calibre library" msgstr "" @@ -4543,231 +4990,247 @@ msgstr "" msgid "Edit Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:172 msgid "%(plugin_type)s %(plugins)s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:173 msgid "plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:182 msgid "" "\n" "Customization: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 msgid "General" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 msgid "Interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:199 msgid "Conversion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:200 msgid "" "Email\n" "Delivery" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:201 msgid "Add/Save" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:202 msgid "Advanced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:203 msgid "" "Content\n" "Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:204 msgid "Plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:228 msgid "Auto send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:228 msgid "Email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:233 msgid "Formats to email. The first matching format will be sent." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:234 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:310 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:308 msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:490 msgid "Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:491 msgid "Narrow" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:508 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:508 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:515 msgid "Always" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:515 msgid "Automatic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:516 msgid "Never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:521 -msgid "System port selected" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:540 +msgid "Done" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 -msgid "The value %d you have chosen for the content server port is a system port. Your operating system may not allow the server to run on this port. To be safe choose a port number larger than 1024." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:542 -msgid "Failed to install command line tools." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:545 -msgid "Command line tools installed" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 +msgid "Confirmation dialogs have all been reset" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:546 -msgid "Command line tools installed in" +msgid "System port selected" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:547 +msgid "The value %d you have chosen for the content server port is a system port. Your operating system may not allow the server to run on this port. To be safe choose a port number larger than 1024." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:567 +msgid "Failed to install command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 +msgid "Command line tools installed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:571 +msgid "Command line tools installed in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:572 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:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:623 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:627 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:614 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:639 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:640 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /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 "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:650 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:658 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:696 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:697 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:703 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:712 +msgid "Invalid tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:713 +msgid "The tweaks you entered are invalid, try resetting the tweaks to default and changing them one by one until you find the invalid setting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:743 msgid "You must select a column to delete it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:748 msgid "The selected column is not a custom column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:749 #: /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/config/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:750 msgid "Do you really want to delete column %s and all its data?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:777 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:817 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:784 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:852 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:315 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:877 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:838 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:878 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:899 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:944 msgid "Must restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:900 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:945 msgid "The changes you made require that Calibre be restarted. Please restart as soon as practical." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:979 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:954 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:999 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:1004 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:960 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:1005 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 "" @@ -4882,297 +5345,334 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:599 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 -msgid "Preferences" -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:603 msgid "Show notification when &new version is available" 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:604 msgid "Download &social metadata (tags/ratings/etc.) by default" 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:605 msgid "&Overwrite author and title by default when fetching metadata" 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:606 msgid "Default network &timeout:" 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:607 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:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 msgid " seconds" 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:609 msgid "Choose &language (requires restart):" 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:610 msgid "Normal" 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:611 msgid "High" 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:612 msgid "Low" 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:613 msgid "Job &priority:" 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:614 msgid "Preferred &output format:" 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:615 +msgid "Reset all disabled &confirmation dialogs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:616 msgid "Preferred &input format order:" 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:619 msgid "Use &Roman numerals for series number" 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:620 msgid "Enable system &tray icon (needs restart)" 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:621 msgid "Show ¬ifications in system tray" 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:622 msgid "Show &splash screen at startup" 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:623 msgid "Show cover &browser in a separate window (needs restart)" 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:624 msgid "Show &average ratings in the tags browser" 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:625 msgid "Search as you type" 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:626 msgid "Automatically send downloaded &news to ebook reader" 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:627 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:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:628 msgid "&Number of covers to show in browse mode (needs restart):" 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:629 msgid "Select visible &columns in library view" 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:631 msgid "Remove a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:633 msgid "Add a user-defined column" 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:635 msgid "Edit settings of a user-defined column" 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:638 msgid "Use internal &viewer for:" 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:639 msgid "User Interface &layout (needs restart):" msgstr "" -#: /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:640 +msgid "Restriction to apply when the current library is opened:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:641 +msgid "Apply this restriction on calibre startup if the current library is being used. Also applied when switching to this library. Note that this setting is per library. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:642 msgid "Disable all animations. Useful if you have a slow/old computer." 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:643 msgid "Disable &animations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:644 msgid "Show &donate button (restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:645 msgid "&Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:646 msgid "&Icon size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:647 msgid "Show &text under icons:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:648 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:649 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:650 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:651 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:652 msgid "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:653 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 -msgid "&Check database integrity" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 -msgid "&Install command line tools" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 -msgid "Open calibre &configuration directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:654 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:655 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:656 +msgid "&Check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:657 +msgid "Open calibre &configuration directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:658 +msgid "&Install command line tools" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:659 +msgid "&Miscellaneous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:660 +msgid "Values for the tweaks are shown below. Edit them to change the behavior of calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:661 +msgid "All available tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:662 +msgid "&Current tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:663 +msgid "&Restore to defaults" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:664 +msgid "&Tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:665 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:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:666 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:667 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 #: /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:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:668 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 #: /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:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:669 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:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:670 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:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:671 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:672 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:673 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:674 msgid "Max. OPDS &ungrouped items:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:675 +msgid "Restriction (saved search) to apply:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:676 +msgid "This restriction (based on a saved search) will restrict the books the content server makes available to those matching the search. This setting is per library (i.e. you can have a different restriction per library)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:677 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:678 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:679 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:680 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:681 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:682 #: /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:604 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:684 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:605 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:685 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:686 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:687 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:688 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:689 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:691 msgid "&Add" msgstr "" @@ -5222,7 +5722,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Date" msgstr "" @@ -5303,7 +5803,7 @@ msgstr "" #: #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:107 -msgid "The label must contain only letters, digits and underscores, and start with a letter" +msgid "The lookup name must contain only lower case letters, digits and underscores, and start with a letter" msgstr "" #: @@ -5321,11 +5821,6 @@ msgstr "" msgid "The heading %s is already used" msgstr "" -#: -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:134 -msgid "The lookup name must be lower case and cannot contain \":\"s or spaces" -msgstr "" - #: #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:101 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:117 @@ -5463,10 +5958,30 @@ msgid "Author sort" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:66 msgid "Manage authors" msgstr "" +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:67 +msgid "Sort by author" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:68 +msgid "Sort by author sort" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:69 +msgid "Reset all the author sort values to a value automatically generated from the author. Exactly how this value is automatically generated can be controlled via Preferences->Advanced->Tweaks" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:70 +msgid "Recalculate all author sort values" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60 msgid "Author Sort" msgstr "" @@ -5555,10 +6070,14 @@ msgstr "" msgid "Stop &all non device jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:111 msgid "Editing meta information for %d books" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:222 +msgid "Applying changes to %d books. This may take a while." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 msgid "Edit Meta information" msgstr "" @@ -5572,19 +6091,19 @@ msgid "Author s&ort: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 -#: /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:368 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:162 -#: /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:371 msgid "&Rating:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 -#: /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 +#: /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 msgid "Rating of this book. 0-5 stars" msgstr "" @@ -5593,7 +6112,7 @@ msgid "No change" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 -#: /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:374 msgid " stars" msgstr "" @@ -5603,8 +6122,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 -#: /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 +#: /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 "Open Tag Editor" msgstr "" @@ -5644,221 +6163,247 @@ msgid "Remove &stored conversion settings for the selected books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 msgid "&Basic metadata" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:94 msgid "Last modified: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 +msgid "Specify title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:152 +msgid "You must specify a title and author before generating a cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:196 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:203 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:224 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:235 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:236 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:264 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:285 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:308 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:328 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:445 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:450 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:471 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:453 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:474 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "Cannot use tag editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 msgid "The tags editor cannot be used if you have modified the tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:570 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:602 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:603 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:588 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:592 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:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:604 +msgid "For the error message from each cover source, click Show details below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:612 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:618 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:646 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:647 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 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:719 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:759 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:720 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:760 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:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Edit Meta Information" msgstr "" -#: /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 msgid "Meta information" msgstr "" -#: /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:364 msgid "Swap the author and title" msgstr "" -#: /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:367 msgid "Author S&ort: " msgstr "" -#: /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:369 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:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "Remove unused series (Series that have no books)" 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:385 msgid "IS&BN:" 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:386 msgid "Publishe&d:" 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:389 msgid "dd MMM yyyy" 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:390 msgid "&Date:" msgstr "" -#: /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:391 msgid "&Comments" 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:392 msgid "&Fetch metadata from server" msgstr "" -#: /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:393 msgid "Available Formats" 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:394 msgid "Add a new format for this book to the database" 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:396 msgid "Remove the selected formats for this book from the database." msgstr "" -#: /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:398 msgid "Set the cover for the book from the selected format" msgstr "" -#: /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:400 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Download &cover" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +msgid "Generate a default cover based on the title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "&Generate 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:52 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:59 msgid "Aborting..." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:76 +msgid "Working" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:54 msgid "The current saved search will be permanently deleted. Are you sure?" msgstr "" @@ -6239,12 +6784,12 @@ msgid "%s (was %s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:503 msgid "Item is blank" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:504 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" @@ -6545,431 +7090,185 @@ msgstr "" msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:33 -msgid "Similar books..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:66 -msgid "Add books to library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:84 -msgid "Manage collections" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:104 msgid "Cover Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:109 +msgid "Shift+Alt+B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:123 msgid "Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:125 +msgid "Shift+Alt+T" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:145 msgid "version" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:146 msgid "created by Kovid Goyal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:164 msgid "Connected " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:173 msgid "Update found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:276 -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:227 msgid "Book Details" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:60 -msgid "Job" +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:219 +msgid "Alt+D" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:229 +msgid "Shift+Alt+D" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:61 -msgid "Status" +msgid "Job" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:62 -msgid "Progress" +msgid "Status" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:63 +msgid "Progress" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:64 msgid "Running time" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:76 msgid "There are %d running jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:102 msgid "Unknown job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:83 msgid "There are %d waiting jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:216 #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:222 msgid "Cannot kill job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:220 msgid "Cannot kill jobs that communicate with the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:223 msgid "Job has already run" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 msgid "Unavailable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:280 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 msgid "Jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:298 -msgid "Click to see list of active jobs." +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +msgid "Shift+Alt+J" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +msgid "Click to see list of jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:33 -msgid "Save single format to disk..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:66 msgid "Eject this device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:75 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:192 msgid "Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:76 msgid "Show books in calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:77 msgid "Reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:78 msgid "Show books in the main memory of the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:89 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:79 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:598 msgid "Card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:80 msgid "Show books in storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:91 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:81 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:600 msgid "Card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:82 msgid "Show books in storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:121 msgid "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:152 msgid "Books display will be restricted to those matching the selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:165 msgid "Advanced search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:174 msgid "

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

Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "Reset Quick Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Copy current search text (instead of search name)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:199 msgid "Save current search under the name shown in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Delete current saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:302 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:451 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:108 -msgid "%d books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:334 -msgid "Connect to folder" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:340 -msgid "Connect to iTunes" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:360 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid "Email to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid " and delete from library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:373 -msgid "Setup email based sharing of books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "A" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "Add books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "E" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "Edit metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "C" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "Convert books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -msgid "V" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 -msgid "View" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:450 -msgid "Send to device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:452 -msgid "Choose calibre library to work with" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 -msgid "F" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 -msgid "Fetch news" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -msgid "S" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 -msgid "Save to disk" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:455 -msgid "Connect/share" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 -msgid "Del" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 -msgid "Remove books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "Browse the calibre User Manual" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "F1" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "Help" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -msgid "Ctrl+P" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 -msgid "M" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 -msgid "Merge book records" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:461 -msgid "Open containing folder" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 -msgid "Show book details" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 -msgid "Books by same author" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 -msgid "Books in this series" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 -msgid "Books by this publisher" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 -msgid "Books with the same tags" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:484 -msgid "Edit metadata individually" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 -msgid "Edit metadata in bulk" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:490 -msgid "Download metadata and covers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:493 -msgid "Download only metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:495 -msgid "Download only covers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:498 -msgid "Download only social metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 -msgid "Merge into first selected book - delete others" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 -msgid "Merge into first selected book - keep others" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 -msgid "Add books from a single directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:517 -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/layout.py:521 -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/layout.py:524 -msgid "Add Empty book. (Book entry with no formats)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:536 -msgid "Save to disk in a single directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:374 -msgid "Save only %s format to disk" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:542 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:377 -msgid "Save only %s format to disk in a single directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:552 -msgid "View specific format" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:558 -msgid "Remove selected books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:560 -msgid "Remove files of a specific format from selected books.." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:563 -msgid "Remove all formats from selected books, except..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:566 -msgid "Remove covers from selected books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 -msgid "Remove matching books from device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 -msgid "Convert individually" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:588 -msgid "Bulk convert" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:592 -msgid "Create catalog of books in your calibre library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:600 -msgid "Run welcome wizard" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:284 msgid "N" msgstr "" @@ -6997,7 +7296,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:679 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1182 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:401 msgid "The lookup/search name is \"{0}\"" msgstr "" @@ -7057,11 +7356,7 @@ msgstr "" msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:566 -msgid "Not allowed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:541 msgid "Dropping onto a device is not supported. First add the book to the calibre library." msgstr "" @@ -7090,7 +7385,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:440 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:441 msgid "No matches found" msgstr "" @@ -7107,12 +7402,12 @@ msgid "LRF Viewer toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:476 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477 msgid "Next Page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 msgid "Previous Page" msgstr "" @@ -7156,7 +7451,7 @@ msgid "Do not check for updates" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:598 msgid "Calibre Library" msgstr "" @@ -7267,33 +7562,33 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:93 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:119 msgid "No matches found for this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:255 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:554 msgid "Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:307 msgid "The selected search will be permanently deleted. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:349 msgid "Search (For Advanced Search click the button to the left)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:391 msgid "Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:399 msgid "Choose saved search or enter name for new saved search" msgstr "" @@ -7302,15 +7597,15 @@ msgid "Restrict to" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:65 msgid "(all books)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:59 msgid "({0} of {1})" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:67 msgid "({0} of all)" msgstr "" @@ -7374,109 +7669,109 @@ msgstr "" msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:193 msgid "Rename '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:197 msgid "Edit sort for '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Hide category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:205 msgid "Show category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 msgid "Show all categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:213 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:220 msgid "Manage %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 msgid "Manage Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:231 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:230 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:234 msgid "Manage User Categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:432 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:435 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:294 msgid "Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:513 msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:514 msgid "The saved search name %s is already used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:770 msgid "Sort by name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:770 msgid "Sort by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:771 msgid "Sort by average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:771 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:774 msgid "Set the sort order for entries in the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:777 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:780 msgid "Match all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:777 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:780 msgid "Match any" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:782 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:785 msgid "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:786 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:789 msgid "Manage &user categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:789 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:792 msgid "Add your own categories to the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:183 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 some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:204 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 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:121 msgid "Queueing books for bulk conversion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:182 msgid "Queueing " msgstr "" @@ -7492,84 +7787,59 @@ msgstr "" 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:160 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:165 msgid "&Restore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:167 msgid "&Donate to support calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Eject connected device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:169 -msgid "&Restart" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:212 msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:361 -msgid "Cannot configure" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 -msgid "Cannot configure while there are running jobs." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 -msgid "Cannot configure before calibre is restarted." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:404 -msgid "No detailed info available" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:405 -msgid "No detailed information is available for books on the device." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:457 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:413 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:441 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:414 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:471 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:427 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:442 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:478 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. Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:504 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:507 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:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:511 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:569 msgid "will keep running in the system tray. To close it, choose Quit in the context menu of the system tray." msgstr "" @@ -7736,7 +8006,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:675 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:676 msgid "Remember last used window size" msgstr "" @@ -7789,36 +8059,36 @@ msgstr "" msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:453 msgid "&Lookup in dictionary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:455 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:456 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:468 msgid "Next Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:469 msgid "Previous Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471 msgid "Document Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:472 msgid "Document End" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474 msgid "Section Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:475 msgid "Section End" msgstr "" @@ -7874,87 +8144,87 @@ msgstr "" msgid "Book format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:192 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:268 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:269 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:299 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:300 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:399 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:400 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:418 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:419 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:418 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:419 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:441 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:442 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:479 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:515 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:544 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:578 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:579 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:587 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:588 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:592 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:665 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:673 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:677 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:678 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:683 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:684 msgid "" "%prog [options] file\n" "\n" @@ -8069,58 +8339,62 @@ msgstr "" msgid "Drag to resize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:873 msgid "Show" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:877 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:880 msgid "Hide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:917 +msgid "Toggle" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:370 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:371 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:374 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:373 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:376 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:450 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:453 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:470 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:524 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525 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:533 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:536 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:590 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:665 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/finish_ui.py:42 #: /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 @@ -8128,7 +8402,7 @@ 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/finish_ui.py:43 #: /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 @@ -8147,15 +8421,15 @@ msgstr "" msgid "&Devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:44 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 msgid "

User Manual

A User Manual is also available online." msgstr "" @@ -8811,35 +9085,43 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:537 +msgid "No label was provided" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:539 +msgid "The label must contain only lower case letters, digits and underscores, and start with a letter" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/database2.py:71 msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:566 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:596 msgid "Main" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1796 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1911 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1825 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1940 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1957 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1935 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2050 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1976 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2091 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1998 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2113 msgid "Checked id" msgstr "" @@ -8939,7 +9221,7 @@ msgstr "" msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:258 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:263 msgid "Requested formats not available" msgstr "" @@ -8979,7 +9261,7 @@ msgstr "" msgid "Group items in categories such as author/tags by first letter when there are more than this number of items. Default: %default. Set to a large number to disable grouping." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:93 +#: /home/kovid/work/calibre/src/calibre/library/server/base.py:94 msgid "Password to access your calibre library. Username is " msgstr "" @@ -8998,6 +9280,10 @@ msgstr "" msgid "Write process PID to the specified file" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:36 +msgid "Specifies a restriction to be used for this invocation. This option overrides any per-library settings specified in the GUI" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:127 msgid "%d items" msgstr "" @@ -9026,7 +9312,7 @@ msgstr "" msgid "Books sorted by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Newest" msgstr "" @@ -9107,15 +9393,15 @@ msgstr "" msgid "Waiting..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:51 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:52 msgid "Stopped" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:76 msgid "Working..." msgstr "" @@ -9228,6 +9514,9 @@ msgid "Control email delivery" msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:118 +msgid "Unknown section" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:140 msgid "Unknown feed" msgstr "" @@ -9257,11 +9546,11 @@ msgstr "" msgid "Do not download latest version of builtin recipes from the calibre server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:44 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:46 msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 msgid "The \"%s\" recipe needs a username and password." msgstr "" @@ -9321,31 +9610,31 @@ msgstr "" msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1002 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1003 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1192 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1172 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1263 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1243 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1274 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1254 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1291 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Fetching feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1438 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1418 msgid "Failed to log in, check your username and password for the calibre Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1454 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1434 msgid "You do not have permission to download this issue. Either your subscription has expired or you have exceeded the maximum allowed downloads for today." msgstr "" diff --git a/src/calibre/translations/cs.po b/src/calibre/translations/cs.po index 7f02f54619..15e305d84c 100644 --- a/src/calibre/translations/cs.po +++ b/src/calibre/translations/cs.po @@ -7,170 +7,170 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-07-20 22:48+0000\n" -"PO-Revision-Date: 2010-07-22 20:42+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-08-11 15:31+0000\n" +"PO-Revision-Date: 2010-08-11 08:48+0000\n" +"Last-Translator: schunka \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-07-23 04:03+0000\n" +"X-Launchpad-Export-Date: 2010-08-12 03:39+0000\n" "X-Generator: Launchpad (build Unknown)\n" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" msgstr "NedÄ›lá vůbec nic" -#: /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:75 -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 -#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:499 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:398 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:428 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:335 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 -#: /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:235 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:278 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:281 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:317 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:123 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:125 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:945 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057 -#: /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/txt.py:14 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:39 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:65 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 -#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 -#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 -#: /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:97 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:240 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:242 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:814 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:855 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1149 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:355 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:367 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1039 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1640 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1642 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 -#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:117 -#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46 -#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64 -#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:78 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:50 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/trunk/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:75 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/trunk/src/calibre/devices/prs500/books.py:267 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/sony_cache.py:506 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:405 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/input.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/input.py:100 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/metadata.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:402 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/input.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/input.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:335 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1896 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:24 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:236 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:282 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/book/base.py:20 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/book/base.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/ereader.py:36 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/ereader.py:61 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fb2.py:46 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:332 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:36 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:123 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:125 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/opf2.py:945 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/opf2.py:1057 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pdb.py:39 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pdf.py:28 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pml.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/txt.py:14 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:39 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:65 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:78 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:119 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:153 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:611 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:817 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/trunk/src/calibre/ebooks/odt/input.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/odt/input.py:51 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:911 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:916 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/reader.py:137 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/reader.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/jacket.py:108 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/writer.py:174 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/input.py:39 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/palmdoc/writer.py:29 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ztxt/writer.py:27 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:82 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:83 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:73 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:74 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:52 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:65 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:81 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:82 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/writer.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/writer.py:98 +#: /home/kovid/work/trunk/src/calibre/ebooks/rtf/input.py:234 +#: /home/kovid/work/trunk/src/calibre/ebooks/rtf/input.py:236 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:287 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:294 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:826 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:829 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/__init__.py:22 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:868 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:877 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1162 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:512 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:173 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:382 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:882 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1060 +#: /home/kovid/work/trunk/src/calibre/gui2/metadata.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/metadata.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:185 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:213 +#: /home/kovid/work/trunk/src/calibre/library/database.py:913 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:358 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:370 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:979 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1048 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1649 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1651 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1773 +#: /home/kovid/work/trunk/src/calibre/library/server/mobile.py:199 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:134 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:137 +#: /home/kovid/work/trunk/src/calibre/library/server/xml.py:68 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:117 +#: /home/kovid/work/trunk/src/calibre/utils/podofo/__init__.py:46 +#: /home/kovid/work/trunk/src/calibre/utils/podofo/__init__.py:64 +#: /home/kovid/work/trunk/src/calibre/utils/podofo/__init__.py:78 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/collection.py:47 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/collection.py:50 msgid "Unknown" msgstr "Neznámý" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "Základ" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:172 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:172 msgid "File type" msgstr "Typ souboru" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:206 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:206 msgid "Metadata reader" msgstr "Vstup metadat" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:235 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:235 msgid "Metadata writer" msgstr "Zápis metadat" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:263 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:263 msgid "Catalog generator" msgstr "Generátor Katalogu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:16 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:16 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 " @@ -180,7 +180,7 @@ msgstr "" "vÅ¡echny soubory na které odkazy smÄ›rují. Tento modul je spuÅ¡ten pokaždé, " "když je do knihovny pÅ™idán HTML soubor." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:52 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:52 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -188,7 +188,7 @@ msgstr "" "Kódování vstupních HTML souborů. BežnÄ› používané kódování jsou napÅ™. cp1252, " "latin1 iso-8859-1 nebo UTF-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:59 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:59 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 " @@ -198,57 +198,57 @@ msgstr "" "pmlname_img nebo images. Tento plugin je spuÅ¡tÄ›n pokaždé když pÅ™idáte PML " "soubor do knihovny." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:93 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:93 msgid "Extract cover from comic files" msgstr "Vyjmout obálky ze souborů s komixy" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:131 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:143 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:153 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:163 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:174 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:184 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:214 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:224 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:235 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:258 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:279 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:290 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:300 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:310 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:120 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:131 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:143 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:153 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:163 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:174 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:184 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:194 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:204 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:214 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:224 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:235 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:246 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:258 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:279 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:290 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:300 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:310 msgid "Read metadata from %s files" msgstr "NaÄíst metadata ze souborů %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:269 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:269 msgid "Read metadata from ebooks in RAR archives" msgstr "NaÄíst metadata z elektronických knih v RAR archívech" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:321 msgid "Read metadata from ebooks in ZIP archives" msgstr "NaÄíst metadata z elektronických knih v ZIP archívech" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:334 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:344 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:354 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:397 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:334 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:344 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:354 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:376 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:387 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:397 msgid "Set metadata in %s files" msgstr "Nastavuje metadata do souborů %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:365 msgid "Set metadata from %s files" msgstr "Nastavuje metadata ze souborů %s" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 +#: /home/kovid/work/trunk/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "Vstup PÅ™evodu" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 +#: /home/kovid/work/trunk/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 " @@ -259,11 +259,11 @@ msgstr "" "potlaÄí jakékoliv kódování deklarované samotným dokumentem. ZvláštÄ› užiteÄné " "fro dokumenty které nedeklarují kódování nebo které" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241 +#: /home/kovid/work/trunk/src/calibre/customize/conversion.py:237 msgid "Conversion Output" msgstr "Výstup PÅ™evodu" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/trunk/src/calibre/customize/conversion.py:251 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." @@ -272,11 +272,11 @@ msgstr "" "nejvíce pro ÄlovÄ›ka Äitelné formÄ›. Nemusí mít efekt na nÄ›které výstupní " "moduly." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:45 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:45 msgid "Input profile" msgstr "Vstupní profil" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:49 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:49 msgid "" "This profile tries to provide sane defaults and is useful if you know " "nothing about the input document." @@ -284,81 +284,81 @@ msgstr "" "Tento profil se snaží poskytnout rozumné výchozí hodnoty a je užiteÄný pokud " "nevíte nic o vstupním dokumentu" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:412 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:57 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:414 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "Tento profil je urÄen pro Å™adu SONY PSR. modely 500/505/600/700 atd." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:69 msgid "This profile is intended for the SONY PRS 300." msgstr "Tento profil je urÄen pro SONY PSR 300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:447 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:78 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:449 msgid "This profile is intended for the SONY PRS-900." msgstr "Tento profil je urÄen pro SONY PSR 900." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:477 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:86 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:479 msgid "This profile is intended for the Microsoft Reader." msgstr "Tento profil je urÄený pro Microsoft Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:97 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:490 msgid "This profile is intended for the Mobipocket books." msgstr "Tento profil je urÄený pro knihy Mobipocket." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:501 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:110 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:503 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Tento profil je urÄený pro Hanlin V3 a jeho klony." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:122 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Tento profil je urÄen pro Hanlin V5 a jeho klony." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:521 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:132 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:523 msgid "This profile is intended for the Cybook G3." msgstr "Tento profil je urÄený pro Cybook G3." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:534 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:145 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:536 msgid "This profile is intended for the Cybook Opus." msgstr "Tento profil je urÄen pro Cybook Opus." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:545 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:157 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:547 msgid "This profile is intended for the Amazon Kindle." msgstr "Tento profil je urÄený pro Amazon Kindle." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:580 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:169 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:584 msgid "This profile is intended for the Irex Illiad." msgstr "Tento profil je urÄen pro Irex Illiad." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:593 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:181 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:597 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Tento profil je urÄen pro Irex Digital Reader 1000." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:607 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:611 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Tento profil je urÄený pro IRex Digital Reader 800." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:621 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:206 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:625 msgid "This profile is intended for the B&N Nook." msgstr "Tento profil je urÄen pro B&N Nook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:228 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:228 msgid "Output profile" msgstr "Výstupní profil" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:232 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:232 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 " @@ -368,24 +368,24 @@ msgstr "" "chcete vytvoÅ™it dokument urÄený ke Ätení na poÄítaÄi nebo na vetším rozpÄ›tí " "zařízení." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:259 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" -msgstr "" +msgstr "PÅ™ipraveno pro iPad a podobná zařízení s rozliÅ¡ením 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:427 msgid "This profile is intended for the Kobo Reader." -msgstr "" +msgstr "Tento profil je pÅ™ipraven pro Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:438 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:440 msgid "This profile is intended for the SONY PRS-300." msgstr "Tento profil je urÄen pro SONY PSR 300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:456 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:458 msgid "This profile is intended for the 5-inch JetBook." msgstr "Tento profil je urÄen pro 5\" Jetbook" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:465 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:467 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -393,39 +393,39 @@ msgstr "" "Tento profil je urÄený pro zařízení SONY PRS. 500/505/700 atd. pro Ätení na " "šířku. Nejvíce užiteÄné pro Ätení komiksu." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:566 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Tento profil je urÄený pro Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:33 msgid "Installed plugins" msgstr "Nainstalované moduly" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:34 msgid "Mapping for filetype plugins" msgstr "PÅ™iÅ™azení modulů k formátům souborů" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:35 msgid "Local plugin customization" msgstr "Úprava Lokálních modulů" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:36 msgid "Disabled plugins" msgstr "Deaktivované moduly" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:37 msgid "Enabled plugins" -msgstr "" +msgstr "Povolené moduly" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:84 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:85 msgid "No valid plugin found in " msgstr "Nebyl nalezen žádný platný modul v " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:468 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:478 msgid "Initialization of plugin %s failed with traceback:" msgstr "Inicializace modulu %s selhala s chybou:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:511 msgid "" " %prog options\n" "\n" @@ -437,38 +437,38 @@ msgstr "" " PÅ™izpůsobte calibre nahráním externích modulů.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:507 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:517 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "PÅ™idejte modul zadáním cesty k ZIP archivu v kterém se nachází." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:509 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:519 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "Odebrat modul podle jména. VestavÄ›né moduly není možné odebrat." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:521 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." msgstr "" "Upravit modul. Zadejte název modulu a retÄ›zec s úpravami oddÄ›lené Äárkou." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:513 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:523 msgid "List all installed plugins" msgstr "Vypsat vÅ¡echny nainstalované moduly" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:515 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:525 msgid "Enable the named plugin" msgstr "Aktivovat modul podle jména" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:527 msgid "Disable the named plugin" msgstr "Deaktivovat modul podle jména" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 +#: /home/kovid/work/trunk/src/calibre/devices/android/driver.py:13 msgid "Communicate with Android phones." msgstr "Komunikace s telefony Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:46 +#: /home/kovid/work/trunk/src/calibre/devices/android/driver.py:48 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -476,298 +476,309 @@ msgstr "" "seznam adresářů oddÄ›lený Äárkami k odeslání knih na zařízení. První který " "existuje pude použit." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:88 +#: /home/kovid/work/trunk/src/calibre/devices/android/driver.py:90 msgid "Communicate with S60 phones." -msgstr "" +msgstr "Komunikovat s telefony serie S60." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:87 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:87 msgid "Communicate with iTunes/iBooks." -msgstr "" +msgstr "Komunikovat s iTunes/iBooks." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:93 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:93 msgid "Apple device detected, launching iTunes, please wait ..." -msgstr "" +msgstr "Nalezeno zařízení Apple, spouÅ¡tÄ›ní iTunes, prosím Äekejte ..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:249 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:246 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:249 msgid "Updating device metadata listing..." msgstr "Záznamy metadat v zařízení se aktualizují..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:323 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:362 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:921 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:957 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2802 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2841 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:323 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:362 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:921 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:957 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2822 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2861 msgid "%d of %d" -msgstr "" +msgstr "%d z %d" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:369 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:962 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2847 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:369 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:962 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2867 msgid "finished" msgstr "hotovo" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:544 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:544 msgid "Use Series as Category in iTunes/iBooks" -msgstr "" +msgstr "Použít sérii jako kategorii v iTunes/iBooks" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:546 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:546 msgid "Cache covers from iTunes/iBooks" -msgstr "" +msgstr "Zapamatovat obálky z iTunes/iBooks" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:558 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:558 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:886 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:886 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2471 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:807 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:813 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:841 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1524 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2491 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:817 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:823 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:851 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:244 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:187 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:200 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1533 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:132 msgid "News" msgstr "Zprávy" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2709 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2729 msgid "Communicate with iTunes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/binatone/driver.py:17 msgid "Communicate with the Binatone Readme eBook reader." msgstr "Komunikuje se ÄteÄkou Binatone Readme." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/trunk/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Komunikace s telefony BlackBerry." -#: /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 +#: /home/kovid/work/trunk/src/calibre/devices/blackberry/driver.py:14 +#: /home/kovid/work/trunk/src/calibre/devices/nuut2/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" msgstr "Kovid Goyal" -#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +#: /home/kovid/work/trunk/src/calibre/devices/cybook/driver.py:22 msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Komunikuje se ÄteÄkou Cybook Gen 3 / Opus." -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 +#: /home/kovid/work/trunk/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Komunikace s zařízením EB600." -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:193 +#: /home/kovid/work/trunk/src/calibre/devices/eb600/driver.py:193 msgid "Communicate with the Astak Mentor EB600" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:216 +#: /home/kovid/work/trunk/src/calibre/devices/eb600/driver.py:216 msgid "Communicate with the PocketBook 301 reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" -#: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/edge/driver.py:18 msgid "Communicate with the Entourage Edge." msgstr "Spojit s Entourage Edge." -#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/eslick/driver.py:16 msgid "Communicate with the ESlick eBook reader." msgstr "Komunikace s zařízením ESlick eBook." -#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:49 +#: /home/kovid/work/trunk/src/calibre/devices/eslick/driver.py:49 msgid "Communicate with the Sigmatek eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:16 -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:30 +#: /home/kovid/work/trunk/src/calibre/devices/folder_device/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/folder_device/driver.py:30 msgid "Use an arbitrary folder as a device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/trunk/src/calibre/devices/folder_device/driver.py:26 +#: /home/kovid/work/trunk/src/calibre/devices/interface.py:14 msgid "Device Interface" msgstr "Rozhraní zařízení" -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:19 msgid "Communicate with Hanlin V3 eBook readers." msgstr "Komunikuje se ÄteÄkou Hanlin V3." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:87 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:87 msgid "Communicate with Hanlin V5 eBook readers." msgstr "Komunikuje se ÄteÄkou Hanlin V5." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:106 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:106 msgid "Communicate with the BOOX eBook reader." msgstr "Komunikace se ÄteÄkou BOOX eBook." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:123 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:123 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/hanvon/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:18 msgid "Communicate with the Hanvon N520 eBook reader." msgstr "Komunikuje se ÄteÄkou Hanvon N520." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:40 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:40 msgid "Communicate with The Book reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:51 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:52 msgid "Communicate with the SpringDesign Alex eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:67 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:68 msgid "Communicate with the Azbooka" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:80 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:81 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." msgstr "Komunikace s zařízením Irex Illiad." -#: /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:38 +#: /home/kovid/work/trunk/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:42 msgid "John Schember" msgstr "John Schember" -#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Komunikace s zařízením Irex Digital Reader 1000." -#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +#: /home/kovid/work/trunk/src/calibre/devices/irexdr/driver.py:42 msgid "Communicate with the IRex Digital Reader 800" msgstr "Spojit s IRex Digital Reader 800" -#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 +#: /home/kovid/work/trunk/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Komunikuje se ÄteÄkou Iriver Story." -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 +#: /home/kovid/work/trunk/src/calibre/devices/jetbook/driver.py:20 msgid "Communicate with the JetBook eBook reader." msgstr "Komunikace s zařízením JetBook." -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:86 +#: /home/kovid/work/trunk/src/calibre/devices/jetbook/driver.py:86 msgid "Communicate with the MiBuk Wolder reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:42 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:42 msgid "Communicate with the Kindle eBook reader." msgstr "Komunikace s zařízením Amazon Kindle." -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:169 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:169 msgid "Communicate with the Kindle 2 eBook reader." msgstr "Komunikace s zařízením Amazon Kindle 2." -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:210 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:210 msgid "Communicate with the Kindle DX eBook reader." msgstr "Komunikuje se ÄteÄkou Kindle DX." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:22 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:22 msgid "Communicate with the Kobo Reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:51 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:54 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:57 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:159 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:64 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:139 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:53 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:56 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:59 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:161 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:68 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:74 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:136 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:166 msgid "Getting list of books on device..." msgstr "Získávám seynam knih na zařízení..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:219 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:263 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:264 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:221 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:265 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:253 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:271 msgid "Removing books from device..." msgstr "Odstraňuji knihy ze zařízení..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:276 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:269 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:276 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:278 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:283 msgid "Removing books from device metadata listing..." msgstr "Odebírám knihy ze seznamu metadat v zařízení..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:279 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:313 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:210 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:240 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:281 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:217 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:247 msgid "Adding books to device metadata listing..." msgstr "PÅ™idávám knihy do seznamu metadat v zařízení..." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:15 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:366 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:441 +msgid "Not Implemented" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:367 +msgid "" +"\".kobo\" files do not exist on the device as books instead, they are rows " +"in the sqlite database. Currently they cannot be exported or viewed." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:35 +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:37 msgid "Communicate with the Booq Avant" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:55 +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:58 msgid "Communicate with the Sweex MM300" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:75 +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:78 msgid "Communicate with the Pandigital Novel" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Komunikuje s tabletem Nokia 770." -#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +#: /home/kovid/work/trunk/src/calibre/devices/nokia/driver.py:40 msgid "Communicate with the Nokia 810 internet tablet." msgstr "Komunikuje s tabletem Nokia 810." -#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:74 +#: /home/kovid/work/trunk/src/calibre/devices/nokia/driver.py:74 msgid "Communicate with the Nokia E52" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:20 msgid "The Nook" msgstr "Nook" -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:21 msgid "Communicate with the Nook eBook reader." msgstr "Komunikuje se ÄteÄkou Nook." -#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Komunikuje se ÄteÄkou Nuut2." -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 +#: /home/kovid/work/trunk/src/calibre/devices/prs500/driver.py:89 msgid "Communicate with the Sony PRS-500 eBook reader." msgstr "Komunikace s zařízením Sony PRS-500." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:22 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/driver.py:22 msgid "Communicate with all the Sony eBook readers." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:61 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/driver.py:61 msgid "" "Comma separated list of metadata fields to turn into collections on the " "device. Possibilities include: " @@ -775,44 +786,44 @@ msgstr "" "Čárkami oddÄ›lený seznam metadata polí ze kterých se má vytvořït Sbírka na " "zařízeni. Možnosti zahrnují: " -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:140 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/sony_cache.py:144 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "Nepojmenovaný" -#: /home/kovid/work/calibre/src/calibre/devices/sne/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/sne/driver.py:17 msgid "Communicate with the Samsung SNE eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:11 +#: /home/kovid/work/trunk/src/calibre/devices/teclast/driver.py:11 msgid "Communicate with the Teclast K3 reader." msgstr "Spojit se ÄteÄkou Teclast K3." -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:37 +#: /home/kovid/work/trunk/src/calibre/devices/teclast/driver.py:37 msgid "Communicate with the Newsmy reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:49 +#: /home/kovid/work/trunk/src/calibre/devices/teclast/driver.py:49 msgid "Communicate with the iPapyrus reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:245 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "NepodaÅ™ilo se najít disk %s. Zkuste reboot." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:435 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "nemohu nalézt %s přípojný bod. Zkuste rebootovat." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:490 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:500 msgid "Unable to detect the %s disk drive." msgstr "Nemohu detekovat disk %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:583 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:593 msgid "Could not find mount helper: %s." msgstr "Nemohu nalézt mount helper: %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:595 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:605 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." @@ -820,148 +831,148 @@ msgstr "" "Nemohu detekovat disk %s. Váš Kernel pravdÄ›podobnÄ› exportuje zastaralou " "verzi SYSFS." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:603 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:613 msgid "Unable to mount main memory (Error code: %d)" msgstr "Nemohu pÅ™ipojit hlavní paměť (Kód chyby: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:740 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:742 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:750 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:752 msgid "The reader has no storage card in this slot." msgstr "ÄŒteÄka nemá v tomto slotu žádnou pamÄ›tovou kartu." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:744 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:754 msgid "Selected slot: %s is not supported." msgstr "Vybraný slot: %s není podporováno." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:783 msgid "There is insufficient free space in main memory" msgstr "V hlavní pamÄ›ti není dostatek volného místa" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:777 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:785 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:787 msgid "There is insufficient free space on the storage card" msgstr "Na paměťové kartÄ› není dostatek volného místa" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" msgstr "Konfigurovat zařízení" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:37 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:37 msgid "settings for device drivers" msgstr "nastavení ovladaÄů zařízení" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:39 msgid "Ordered list of formats the device will accept" msgstr "SetřídÄ›ný seznam formátů, které toto zařízení pÅ™ijme." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:41 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:41 msgid "Place files in sub directories if the device supports them" msgstr "Uložit soubory do podadresářů pokud je zařízení podporuje." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:43 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:81 msgid "Read metadata from files on device" msgstr "Číst metadata ze souborů zařízení" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:45 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:45 msgid "Use author sort instead of author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:47 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:47 msgid "Template to control how books are saved" msgstr "Å ablona urÄující jak se májí knihy ukládat" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:84 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:84 msgid "Extra customization" msgstr "Další pÅ™izpůsobení" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:41 msgid "Communicate with an eBook reader." msgstr "Komunikace s Ätecím zařízením." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:53 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:57 msgid "Get device information..." msgstr "Zjistit informace o zařízení..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:190 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:192 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:194 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:196 msgid "Transferring books to device..." msgstr "PÅ™enos knih do zařízení..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:307 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:314 msgid "Sending metadata to device..." msgstr "Odesílám metadata do zařízení..." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:41 msgid "%prog [options] mybook.chm" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:42 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:42 msgid "Output directory. Defaults to current directory" msgstr "Výstupní adresář. SouÄasný adresář je výchozí" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:45 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:45 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:589 msgid "Set the book title" msgstr "Název knihy" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:47 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:47 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:591 msgid "Set sort key for the title" msgstr "Název knihy ve tvaru vhodném pro třídÄ›ní" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:49 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:593 msgid "Set the author" msgstr "Zadejte autora" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:51 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:595 msgid "Set sort key for the author" msgstr "Zadejte třídící klÃ­Ä pro autora" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:53 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:53 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:597 msgid "The category this book belongs to. E.g.: History" msgstr "Kategorie, do které tato kniha patří. NapÅ™: DÄ›jiny" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:600 msgid "Path to a graphic that will be set as this files' thumbnail" msgstr "Cesta k grafickámu souboru, který bude použit jako náhled" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:59 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:59 msgid "Path to a txt file containing a comment." msgstr "Cesta k txt souboru obsahující komentář." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:62 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:607 msgid "Extract thumbnail from LRF file" msgstr "PÅ™evzít náhled z LRF souboru" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:63 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:608 msgid "Set the publisher" msgstr "Vydavatel" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:609 msgid "Set the book classification" msgstr "ZaÅ™azení knihy" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:65 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:65 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:610 msgid "Set the book creator" msgstr "Tvůrce knihy" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:611 msgid "Set the book producer" msgstr "Producent Knihy" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:68 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:68 +#: /home/kovid/work/trunk/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." @@ -969,24 +980,24 @@ msgstr "" "PÅ™evzít obálku z LRF souboru. MÄ›jte na pamÄ›ti, že formát LRF nemá pevnÄ› " "definovanou obálku, takže na její nalezení bude použita heuristická metoda." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:615 msgid "Set book ID" msgstr "IdentifikaÄní kód knihy" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:72 msgid "Set font delta" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:201 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:178 msgid "Rendered %s" msgstr "ÚspeÅ¡ný pÅ™evod %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:204 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:181 msgid "Failed %s" msgstr "NeuspÄ›l pÅ™evod %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:261 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:235 msgid "" "Failed to process comic: \n" "\n" @@ -996,7 +1007,7 @@ msgstr "" "\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:253 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 " @@ -1006,23 +1017,23 @@ msgstr "" "menší než 256 mohou vyůstit v rozostÅ™ený text na vaÅ¡em zařízení pokud " "vytváříte komiks v EPUB formátu." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:257 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Vypnutí normalizace (vylepÅ¡ení kontrastu) rozsahu barev obrázku. StandardnÄ› " "je normalizace zapnutá." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:260 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Zachovat pomÄ›r stran obrázků. StandardnÄ› obrazky vyplní celou obrazovku." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:262 msgid "Disable sharpening." msgstr "Vypnout zvyÅ¡ování ostrosti obrázků." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:264 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -1030,11 +1041,11 @@ msgstr "" "NeoÅ™ezávat stránky komiksů. U nÄ›kterých komiksů může oÅ™ezávání kromÄ› okraje " "stránky odstranit i Äást kresby." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:267 msgid "Don't split landscape images into two portrait images" msgstr "NerozdÄ›lovat obrázky \"na šířku\" na dva obrázky \"na výsku\"" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:269 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -1042,7 +1053,7 @@ msgstr "" "Zachovat pomÄ›r stran a pÅ™izpůsobit šířku obrázku výšce obrazovky pro " "prohlížení \"na šířku\"" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:272 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -1050,7 +1061,7 @@ msgstr "" "Pužívané pro publikace Ätené zleva doprava, jako napÅ™. manga. Obrázky \"na " "šířku\" budou rozdÄ›lené na obrázky \"na výšku\" v poÅ™adí zprava doleva." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:276 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -1058,7 +1069,7 @@ msgstr "" "Zapnout filtr Å¡umu. Odstraňuje Å¡um v oblastech plynulých pÅ™echodů. Může " "výraznÄ› prodloužit Äas na zpracování." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:305 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:279 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -1066,7 +1077,7 @@ msgstr "" "NeÅ™adit soubory komiksu abecednÄ›. Použít poÅ™adí v kterém byli pÅ™idané do " "komiksu." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:309 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:283 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 " @@ -1076,20 +1087,20 @@ msgstr "" "experimentovat abyste naÅ¡li formát s optimální velikostí a vzhledem na " "vaÅ¡em zařízení." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:313 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:287 msgid "Apply no processing to the image" msgstr "Obrázek nijak neupravovat" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:289 msgid "Do not convert the image to grayscale (black and white)" msgstr "NepÅ™evádÄ›t obrázek do odstínů Å¡edi (Äernobílá)" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:463 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:426 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:437 msgid "Page" msgstr "Strana" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:19 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:19 msgid "" "input_file output_file [options]\n" "\n" @@ -1136,31 +1147,31 @@ msgstr "" "\n" "Pro plnou dokumentaci pÅ™evodního systému si prohlédnÄ›te\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:97 msgid "INPUT OPTIONS" msgstr "NASTAVENà VSTUPU" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:98 msgid "Options to control the processing of the input %s file" msgstr "Možnosti nastavení zpracování vstupního souboru %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:104 msgid "OUTPUT OPTIONS" msgstr "NASTAVENà VÃSTUPU" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:105 msgid "Options to control the processing of the output %s" msgstr "Možnosti nastavení zpracování výstupního souboru %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:119 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:119 msgid "Options to control the look and feel of the output" msgstr "Možnosti nastavení vzheldu výstupu" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:135 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:135 msgid "Control auto-detection of document structure." msgstr "Nastavení autodetekce struktury dokumentu." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:145 +#: /home/kovid/work/trunk/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 " @@ -1169,27 +1180,27 @@ msgstr "" "Nastavuje automatické generování Obsahu. Ve výchozím nastavení, pokud má " "zdroj Obsah, bude použit pÅ™ednostnÄ› pÅ™ed automaticky generovaným." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:155 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:155 msgid "Options to set metadata in the output" msgstr "Nastevení výstupních metadat" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:158 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:158 msgid "Options to help with debugging the conversion" msgstr "Nastavení které pomohou s odladÄ›ním pÅ™evodu" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:183 msgid "List builtin recipes" msgstr "VypiÅ¡ pÅ™edpÅ™ipravené zdroje" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:256 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:256 msgid "Output saved to" msgstr "Výstup uložen do" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:95 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:95 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "stupen upovídanosti. Zadejte vícekrát pro vetší upovídanost." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:102 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:102 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 " @@ -1198,7 +1209,7 @@ msgstr "" "Uložit výstup z různých fází pÅ™evodního Å™etezu do urÄeného adresáře. " "UžiteÄbé pokud si nejste jisti v jaké fázi pÅ™evodu dochází k chybÄ›." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:111 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:111 msgid "" "Specify the input profile. The input profile gives the conversion system " "information on how to interpret various information in the input document. " @@ -1209,7 +1220,7 @@ msgstr "" "informace jak vyhodnotit různé informace ve vstupním dokumentu. Například " "délky závislé na rozliÅ¡ení (napÅ™. délky v pixelech). Na výbÄ›r je:" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:122 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:122 msgid "" "Specify the output profile. The output profile tells the conversion system " "how to optimize the created document for the specified device. In some " @@ -1221,7 +1232,7 @@ msgstr "" "nÄ›kterých případech je výstupní profil vyžadován k vytvoÅ™ení dokumentů které " "na zařízení budou fungovat. Například EPUB na ÄteÄce SONY." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:133 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:133 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 " @@ -1233,7 +1244,7 @@ msgstr "" "můžete bude písmo ve výstupu vetší a naopak. StandardnÄ› je velikost písma " "založená na výstupním profilu který vyberete." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:143 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:143 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-" @@ -1248,11 +1259,11 @@ msgstr "" "zmÄ›nu velikosti fontů. StandardnÄ› se použije mapování založené na výstupním " "profilu který vyberete." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:155 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:155 msgid "Disable all rescaling of font sizes." msgstr "Zakázat veÅ¡keré zmÄ›ny velikostí písma." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:162 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:162 msgid "" "The line height in pts. Controls spacing between consecutive lines of text. " "By default no line height manipulation is performed." @@ -1260,7 +1271,7 @@ msgstr "" "Výška Å™adku v bodech. Nastavuje velikost mezer mezi následujícími řádky " "textu. Ve výchozím nastavení nedochází k manipulaci s výškou řádku." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:170 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:170 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 " @@ -1272,7 +1283,7 @@ msgstr "" "mimo stránku a jiné artefakty. Toto nastavení vyjme obsah z tabulek a " "zobrazí je v linární formÄ›." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:180 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:180 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 " @@ -1281,7 +1292,7 @@ msgstr "" "Výraz XPath, který urÄuje vÅ¡echny tagy, které by mÄ›ly být pÅ™idány do obsahu " "na úrovni jedna. Je-li zadán, má pÅ™ednost pÅ™ed ostatními formami autodetekce." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:189 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:189 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 " @@ -1290,7 +1301,7 @@ msgstr "" "Výraz XPath, který urÄuje vÅ¡echny tagy, které by mÄ›ly být pÅ™idány do obsahu " "na úrovni dvÄ›. Každá položka je pÅ™idána pod pÅ™edchozí položku úrovnÄ› jedna." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:197 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:197 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 " @@ -1299,7 +1310,7 @@ msgstr "" "Výraz XPath který specifikuje vÅ¡echny tagy které mají být pÅ™idané do Obsahu " "na úrovni tÅ™i. Každá hodnota je zadaná pod existující hodnotou úrovnÄ› tÅ™i." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:205 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:205 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 " @@ -1308,11 +1319,11 @@ msgstr "" "NormálnÄ›, pokud má zdrojový soubor Obsah, je použit pÅ™ednostnÄ› pÅ™ed " "automaticky generovaným. S tímto nastavením je vždy použit autogenerovaný." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:213 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:213 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "NepÅ™idávat automaticky nalezené kapitoly do obsahu." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:220 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:220 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" @@ -1320,7 +1331,7 @@ msgstr "" "Pokud poÄet automaticky nalezených kapitol neprekroÄí tuto hodnotu, budou " "odkazy na nÄ› pÅ™idané do obsahu. StandardnÄ› nastaveno: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:227 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:227 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 " @@ -1330,7 +1341,7 @@ msgstr "" "zakázání. Výchozí hodnota je %default. Odkazy jsou do Obsahu pÅ™idávány pouze " "pokud bylo nalezeno ménÄ› kapitol než je maximální hodnota." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:235 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:235 msgid "" "Remove entries from the Table of Contents whose titles match the specified " "regular expression. Matching entries and all their children are removed." @@ -1338,7 +1349,7 @@ msgstr "" "Odstranit položky z Obsahu jejichž názvy odpovídají urÄenému regulárnímu " "výrazu. Odpovídající položky a jejich potomci budou odstranÄ›ni." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:246 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:246 msgid "" "An XPath expression to detect chapter titles. The default is to consider " "

or

tags that contain the words \"chapter\",\"book\",\"section\" or " @@ -1354,7 +1365,7 @@ msgstr "" "detekce kapitol použijte výraz \"/\". Podívejte se na XPath tutoriál v " "manuálu Calibre pro další pomoc s použitím této funkce" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:260 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:260 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 " @@ -1366,7 +1377,7 @@ msgstr "" "\"žádné\" vypne oznaÄování kapitol,volba \"obojí\" použije pro oznaÄování " "jak zlomy stránky, tak Äáry." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:270 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:270 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 " @@ -1375,40 +1386,40 @@ msgstr "" "BuÄ cesta k CSS stylu nebo přímo CSS. Toto CSS bude pÅ™idáno ke stylu ze " "zdrojového souboru, takže může být použito k potlaÄení tÄ›chto pravidel." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:279 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:279 msgid "" "An XPath expression. Page breaks are inserted before the specified elements." msgstr "Výraz XPath. Zalomení stran jsou vložena pÅ™ed urÄený prvek." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:285 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:285 msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Nastaví horní okraj v bodech. Výchozi hodnota je %default. pozn. 72 bodů se " "rovná 1 palci" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:290 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:290 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Nastaví dolní okraj v bodech. Výchozi hodnota je %default. pozn. 72 bodů se " "rovná 1 palci" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:295 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:295 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Nastaví levý okraj v bodech. Výchozi hodnota je %default. pozn. 72 bodů se " "rovná 1 palci" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:300 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:300 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Nastaví pravý okraj v bodech. Výchozi hodnota je %default. pozn. 72 bodů se " "rovná 1 palci" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:306 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:306 msgid "" "Change text justification. A value of \"left\" converts all justified text " "in the source to left aligned (i.e. unjustified) text. A value of " @@ -1417,7 +1428,7 @@ msgid "" "Note that only some output formats support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:316 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 " @@ -1427,7 +1438,7 @@ msgstr "" "OdstranÄ›ní mezer nebude fungovat, pokud nejsou ve zdrojovém souboru odstavce " "oznaÄeny (tagy

nebo

)." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:323 msgid "" "When calibre removes inter paragraph spacing, it automatically sets a " "paragraph indent, to ensure that paragraphs can be easily distinguished. " @@ -1437,13 +1448,13 @@ msgstr "" "odsazení, aby bylo možné odstavce snadno rozeznat. Tato volba upravuje šířku " "odsazení." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:330 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:330 msgid "" "Use the cover detected from the source file in preference to the specified " "cover." msgstr "Použít obálku nalezenou ve zdrojovém souboru namísto zadané obálky." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:336 msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (

or

tags)." @@ -1451,7 +1462,7 @@ msgstr "" "Vložit prázdný řádek mezi odstavce. Nebude fungovat pokud zdrojový soubor " "nepoužívá odstavce (

nebo

tagy)." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:343 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:343 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." @@ -1460,35 +1471,35 @@ msgstr "" "užiteÄná, pokud je první obrázek ve zdrojovém souboru obálkou a vy chcete " "použít jinou obálku." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:351 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:351 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:359 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:359 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:367 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:367 msgid "Use a regular expression to try and remove the header." msgstr "Použít regulární výraz k odstranÄ›ní hlaviÄky." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:374 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:374 msgid "The regular expression to use to remove the header." msgstr "Regulární výraz k odstranÄ›ní hlaviÄky." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:380 msgid "Use a regular expression to try and remove the footer." msgstr "Použít regulární výraz k odstranÄ›ní patiÄky." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:387 msgid "The regular expression to use to remove the footer." msgstr "Regulární výraz k odstranÄ›ní patiÄky." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:394 msgid "" "Read metadata from the specified OPF file. Metadata read from this file will " "override any metadata in the source file." @@ -1496,7 +1507,7 @@ msgstr "" "NaÄíst metadata z urÄeného OPF souboru. Metadata naÄtená z tohoto souboru " "nahradí jakékoliv metadata ve zdrojovém souboru." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:401 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1506,7 +1517,7 @@ msgid "" "number of people will be used (Chinese in the previous example)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:416 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:416 msgid "" "Preserve ligatures present in the input document. A ligature is a special " "rendering of a pair of characters like ff, fi, fl et cetera. Most readers do " @@ -1516,113 +1527,113 @@ msgid "" "instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:428 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:428 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:38 msgid "Set the title." msgstr "Nastavit název." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:432 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:432 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "Nastavit Autory. Více autorů by mÄ›lo být oddÄ›leno znakem &." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:437 msgid "The version of the title to be used for sorting. " msgstr "Varianta názvu, která bude použita pÅ™i Å™azení. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:441 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:441 msgid "String to be used when sorting by author. " msgstr "ŘetÄ›zec, který bude použit pÅ™i Å™azení dle autora. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:445 msgid "Set the cover to the specified file or URL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:449 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:54 msgid "Set the ebook description." msgstr "Vložit popis elektronické knihy." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:453 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:56 msgid "Set the ebook publisher." msgstr "Zadat vydavatele elektronické knihy." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:457 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:457 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:60 msgid "Set the series this ebook belongs to." msgstr "Nastaví sérii ke které kniha patří." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:461 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:461 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." msgstr "Nastaví poÅ™adí knihy v této sérii." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:465 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:465 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:64 msgid "Set the rating. Should be a number between 1 and 5." msgstr "Nastaví hodnocení. MÄ›lo by to být Äíslo mezi 1 a 5." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:469 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:469 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:66 msgid "Set the ISBN of the book." msgstr "Nastaví ISBN knihy." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:473 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:68 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:473 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:68 msgid "Set the tags for the book. Should be a comma separated list." msgstr "Nastaví tagy pro knihu. MÄ›l by to být seznam oddÄ›lený Äárkami." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:477 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:477 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:70 msgid "Set the book producer." msgstr "Nastaví vydavatele knihy" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:481 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:481 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:72 msgid "Set the language." msgstr "Nastaví jazyk." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:485 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:485 msgid "Set the publication date." msgstr "Zadat datum uveÅ™ejnÄ›ní." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:489 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:489 msgid "Set the book timestamp (used by the date column in calibre)." msgstr "Zadat Äasové razítko knihy (použije se v kolonce datum v calibre)." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:589 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:589 msgid "Could not find an ebook inside the archive" msgstr "V archivu nebyl nalezen žádný ebook." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:647 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:647 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "Hodnota poÅ™adí v sérii musí být Äíslo, Ignoruji" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:654 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:654 msgid "Failed to parse date/time" msgstr "NepodaÅ™ilo se analyzovat datum/Äas" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:809 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:809 msgid "Converting input to HTML..." msgstr "PÅ™evést vstup do HTML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:836 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:836 msgid "Running transforms on ebook..." msgstr "Probíhá pÅ™evod elektronické knihy..." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:923 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:923 msgid "Creating" msgstr "Vytvářím" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/__init__.py:18 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/__init__.py:18 msgid "ePub Fixer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/epubcheck.py:18 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/epubcheck.py:18 msgid "Workaround epubcheck bugs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/epubcheck.py:22 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/epubcheck.py:22 msgid "" "Workarounds for bugs in the latest release of epubcheck. epubcheck reports " "many things as errors that are not actually errors. epub-fix will try to " @@ -1630,7 +1641,7 @@ msgid "" "cause significant changes to your epub, complain to the epubcheck project." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:19 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/main.py:19 msgid "" "%prog [options] file.epub\n" "\n" @@ -1641,25 +1652,25 @@ msgid "" "detected. Use the options to control which errors are automatically fixed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:50 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/main.py:50 msgid "You must specify an epub file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:17 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/unmanifested.py:17 msgid "Fix unmanifested files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/unmanifested.py:21 msgid "" "Fix unmanifested files. epub-fix can either add them to the manifest or " "delete them as specified by the delete unmanifested option." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/unmanifested.py:32 msgid "Delete unmanifested files instead of adding them to the manifest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:56 msgid "" "Extract the contents of the generated EPUB file to the specified directory. " "The contents of the directory are first deleted, so be careful." @@ -1667,7 +1678,7 @@ msgstr "" "Rozbalí obsah vytvoÅ™eného souboru EPUB do zadaného adresáře. Obsah adresáře " "bude nejdříve smazán, takže buÄte opatrní." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:62 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 " @@ -1681,21 +1692,21 @@ msgstr "" "RozdÄ›lování samotné je ale dost nároÄné a jestliže vstupní kniha obsahuje " "velmi velké množství zalomení stran, mÄ›li byste rozdÄ›lování vypnout." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:73 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:73 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:80 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:80 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/epub/output.py:86 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:86 msgid "" "Do not use SVG for the book cover. Use this option if your EPUB is going to " "be used on a device that does not support SVG, like the iPhone or the " @@ -1703,7 +1714,7 @@ msgid "" "blank page." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:94 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:94 msgid "" "When using an SVG cover, this option will cause the cover to scale to cover " "the available screen area, but still preserve its aspect ratio (ratio of " @@ -1712,42 +1723,42 @@ msgid "" "option the image may be slightly distorted, but there will be no borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:169 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:169 msgid "Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 -#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/trunk/src/calibre/ebooks/rb/rbml.py:102 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "Obsah:" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:32 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/output.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/output.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/pml/output.py:37 +#: /home/kovid/work/trunk/src/calibre/ebooks/rb/output.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/output.py:35 msgid "Add Table of Contents to beginning of the book." msgstr "PÅ™idat obsah na zaÄátek knihy." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:248 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:248 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:255 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:255 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:264 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:264 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 " @@ -1755,67 +1766,67 @@ msgid "" "pipeline." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:272 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:272 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 +#: /home/kovid/work/trunk/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." msgstr "Vytvářím LIT soubor z EPUB..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:320 msgid "\tBook Designer file detected." msgstr "\tByl rozeznán soubor z programu Book Designer." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:322 msgid "\tParsing HTML..." msgstr "\tZpracovávám HTML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:345 msgid "\tBaen file detected. Re-parsing..." msgstr "" "\tByl rozpoznán soubor z vydavatelství BAEN. Restartuji zpracování..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:361 msgid "Written preprocessed HTML to " msgstr "PÅ™edzpracovaný HTML soubor byl zapsán do " -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:379 msgid "Processing %s" msgstr "Zpracovávám %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:393 msgid "\tConverting to BBeB..." msgstr "\tPÅ™evádím do 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 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:552 msgid "Could not parse file: %s" msgstr "Selhalo zpracování souboru: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:544 msgid "%s is an empty file" msgstr "%s je prázdný soubor" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:564 msgid "Failed to parse link %s %s" msgstr "Selhalo zpracování odkazu %s %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" msgstr "NepodaÅ™ilo se pÅ™idat odkaz %s do obsahu." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" msgstr "Selhalo zpracování obrázku %s. Chyba: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" msgstr "Selhalo zpracování prokládaného PNG obrázku: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1017 msgid "" "Could not process image: %s\n" "%s" @@ -1823,12 +1834,12 @@ msgstr "" "Selhalo zpracování obrázku: %s\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1772 msgid "" "An error occurred while processing a table: %s. Ignoring table markup." msgstr "Chyba pÅ™i zpracování tabulky: %s. Ignoruji blok tabulky." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1774 msgid "" "Bad table:\n" "%s" @@ -1836,23 +1847,23 @@ msgstr "" "Nesprávná definice tabulky:\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1796 msgid "Table has cell that is too large" msgstr "Tabulka obsahuje buňku, která je příliÅ¡ velká" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1862 msgid "Could not read cover image: %s" msgstr "NepodaÅ™ilo se naÄíst obrázek obálky: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Cannot read from: %s" msgstr "Nedaří se Äíst z: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1994 msgid "Failed to process opf file" msgstr "Selhalo zpracování OPF souboru" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:136 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:136 msgid "" "%prog book.lrf\n" "Convert an LRF file into an LRS (XML UTF-8 encoded) file" @@ -1860,31 +1871,31 @@ msgstr "" "%prog [možnosti] kniha.lrf\n" "PÅ™evod LRF souboru do LRS (XML s UTF-8 kódováním)" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:137 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:137 msgid "Output LRS file" msgstr "Výstupní LRS soubor" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:139 msgid "Do not save embedded image and font files to disk" msgstr "Neukládat vsazené obrazové soubory a soubory oísem na disk" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:158 msgid "Parsing LRF..." msgstr "Zpracovávám LRF..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:161 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:161 msgid "Creating XML..." msgstr "Vytvářím XML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:163 msgid "LRS written to " msgstr "LRS zapsán do " -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:267 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:267 msgid "Could not read from thumbnail file:" msgstr "NrpodaÅ™ilo se naÄíst náhled." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:287 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:287 msgid "" "%prog [options] file.lrs\n" "Compile an LRS file into an LRF file." @@ -1892,24 +1903,24 @@ msgstr "" "%prog [možnosti] soubor.lrs\n" "PÅ™evod LRS souboru do formátu LRF." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:288 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:288 msgid "Path to output file" msgstr "Cesta k výstupnímu souboru" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:114 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:290 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:114 msgid "Verbose processing" msgstr "Zvýšit množství vypisovaných informací" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:292 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:292 msgid "Convert LRS to LRS, useful for debugging." msgstr "PÅ™evést LRS na LRS, užiteÄné pÅ™i hledání chyb v programu." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:457 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:457 msgid "Invalid LRF file. Could not set metadata." msgstr "Neplatný LRF soubor. NepodaÅ™ilo se nastavit meatadata." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:582 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:582 msgid "" "%prog [options] mybook.lrf\n" "\n" @@ -1923,26 +1934,26 @@ msgstr "" "Zobrazení/zmÄ›na metadat v LRF souboru.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:603 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:603 msgid "" "Path to a txt file containing the comment to be stored in the lrf file." msgstr "" "Cesta k TXT souboru s poznámkami, které se mají vložit do LRF souboru." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:90 msgid "Enable autorotation of images that are wider than the screen width." msgstr "" "Použít autorotaci u obrázků, které jsou Å¡irší než je šířka obrazovky." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:94 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:94 msgid "Set the space between words in pts. Default is %default" msgstr "Mezera mezi slovy v bodech. StandardnÄ› je %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:97 msgid "Add a header to all the pages with title and author." msgstr "PÅ™idat na vÅ¡ech stránkách záhlaví s názvem a jménem autora." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:100 +#: /home/kovid/work/trunk/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" @@ -1950,11 +1961,11 @@ msgstr "" "Formát záhlaví. %a je nahrazeno jménem autorem, %t názvem. StandardnÄ› je " "%default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:104 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:107 msgid "" "Minimum paragraph indent (the indent of the first line of a paragraph) in " "pts. Default: %default" @@ -1962,7 +1973,7 @@ msgstr "" "Minimální odsazení dostavce (odsazení prvního řádku odstavce) v bodech. " "StandadnÄ›: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:112 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:112 msgid "" "Render tables in the HTML as images (useful if the document has large or " "complex tables)" @@ -1970,7 +1981,7 @@ msgstr "" "Zobrazení HTML tabulky v podobÄ› obrázků (užiteÄné pokud dokument obsahuje " "velké nebo složité tabulky)" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:117 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:117 msgid "" "Multiply the size of text in rendered tables by this factor. Default is " "%default" @@ -1978,120 +1989,120 @@ msgstr "" "Faktor znásobení velikosti písma v zobrazených tabulkách. Standardní hodnota " "je: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:121 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:121 msgid "The serif family of fonts to embed" msgstr "Font pro patkové písmo" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:124 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:124 msgid "The sans-serif family of fonts to embed" msgstr "Font pro bezpatkové písmo" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:127 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:127 msgid "The monospace family of fonts to embed" msgstr "Font pro neproporcionání písmo" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:152 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:152 msgid "Comic" msgstr "Komiks" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:396 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:543 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:359 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:887 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:550 msgid "Title" msgstr "Název" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:888 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:364 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:888 msgid "Author(s)" msgstr "Autor(Å™i)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:399 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "Vydavatel" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:400 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Producent" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1079 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:401 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:210 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:211 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:318 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1079 msgid "Comments" msgstr "Komentáře" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:408 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:143 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:409 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:306 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1075 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:143 msgid "Tags" msgstr "Tagy" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:410 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:91 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:323 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1084 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:91 msgid "Series" msgstr "Série" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:412 msgid "Language" msgstr "Jazyk:" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:414 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1067 msgid "Timestamp" msgstr "ÄŒasová znaÄka" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:416 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:70 msgid "Published" msgstr "Publikováno" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:417 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:418 msgid "Rights" msgstr "Práva" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:85 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/amazon.py:85 msgid "EDITORIAL REVIEW" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/archive.py:41 msgid "" "Extract common e-book formats from archives (zip/rar) files. Also try to " "autodetect if they are actually cbz/cbr files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:20 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:20 msgid "options" msgstr "Možnosti" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:21 msgid "" "\n" "Read/Write metadata from/to ebook files.\n" @@ -2105,7 +2116,7 @@ msgid "" "silently ignored.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:40 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:40 msgid "" "Set the authors. Multiple authors should be separated by the & character. " "Author names should be in the order Firstname Lastname." @@ -2113,112 +2124,144 @@ msgstr "" "Zadat autory. V případÄ› více autorů jejich jména oddÄ›lte znakem &. Jména " "autorů by mÄ›la být v poÅ™adí kÅ™estní jméno příjmení." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:44 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:44 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:48 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:48 msgid "" "String to be used when sorting by author. If unspecified, and the author(s) " "are specified, it will be auto-generated from the author(s)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:52 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:52 msgid "Set the cover to the specified file." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:58 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:58 msgid "Set the book category." msgstr "Nastaví kategorii knihy." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:74 msgid "Set the published date." msgstr "Zadejte datum vydání." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:77 msgid "Get the cover from the ebook and save it at as the specified file." msgstr "Získat obálku z ebooku a uložit ji jako urÄený soubor." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:80 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:80 msgid "" "Specify the name of an OPF file. The metadata will be written to the OPF " "file." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:83 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:83 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:88 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:88 msgid "Set the BookID in LRF files" msgstr "Nastavit BookID v LRF souborech" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:153 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:153 msgid "No file specified" msgstr "Soubor nespecifikován" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:168 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:168 msgid "Original metadata" msgstr "Originální metadata" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:185 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:185 msgid "Changed metadata" msgstr "ZmÄ›nÄ›ná metadata" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:197 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:197 msgid "OPF created in" msgstr "OPF vytvoÅ™en v" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:203 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:203 msgid "Cover saved to" msgstr "Obálka uložena do" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:205 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:205 msgid "No cover found" msgstr "Obálka nenalezena" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:15 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:27 msgid "Cover download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:79 +msgid "Download covers from openlibrary.org" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:136 +msgid "ISBN: %s not found" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:117 +msgid "Download covers from librarything.com" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:128 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:68 +msgid "LibraryThing.com timed out. Try again later." +msgstr "LibraryThing.com neodpovídá. Skuste to pozdÄ›ji." + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:135 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:75 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" +"NepodaÅ™ilo se stáhnout obálku, protože je server pÅ™etížený. Prosím zkuste to " +"pozdÄ›ji." + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:79 +msgid "LibraryThing.com server error. Try again later." +msgstr "Chyba serveru LibraryThing.com. Skuste to pozdÄ›ji." + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:50 msgid "Metadata download" msgstr "Stáhnutí metadat" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:127 msgid "ratings" msgstr "hodnocení" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:127 msgid "tags" msgstr "tagy" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:128 msgid "description/reviews" msgstr "popis/recenze" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:129 msgid "Download %s from %s" msgstr "Stáhnout %s z %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:155 msgid "Downloads metadata from Google Books" msgstr "Stáhnout metadata z Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:172 msgid "Downloads metadata from isbndb.com" msgstr "Stáhnout metadata z isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:184 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:200 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2226,15 +2269,15 @@ msgstr "" "K použití isbndb.com se musíte zaregistrovat %súÄet zdarma%s a vložit váš " "přístupový kód níže." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:194 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:210 msgid "Downloads social metadata from amazon.com" msgstr "Stáhnout sociální metadata z amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:213 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:229 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:95 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:95 msgid "" "\n" "%prog [options] key\n" @@ -2248,43 +2291,27 @@ msgid "" "\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:106 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:106 msgid "The ISBN ID of the book you want metadata for." msgstr "ISBN kód knihy, pro kterou si pÅ™ejete získat metadata." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:108 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:108 msgid "The author whose book to search for." msgstr "Auto hledané knihy." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:110 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:110 msgid "The title of the book to search for." msgstr "Název hledané knihy." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:112 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:112 msgid "The publisher of the book to search for." msgstr "Vydavatel hledané knihy" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 -msgid "LibraryThing.com timed out. Try again later." -msgstr "LibraryThing.com neodpovídá. Skuste to pozdÄ›ji." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 -msgid "" -"Could not fetch cover as server is experiencing high load. Please try again " -"later." -msgstr "" -"NepodaÅ™ilo se stáhnout obálku, protože je server pÅ™etížený. Prosím zkuste to " -"pozdÄ›ji." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:76 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:76 msgid " not found." msgstr " se nepodaÅ™ilo nalézt." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 -msgid "LibraryThing.com server error. Try again later." -msgstr "Chyba serveru LibraryThing.com. Skuste to pozdÄ›ji." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:86 msgid "" "\n" "%prog [options] ISBN\n" @@ -2293,163 +2320,163 @@ msgid "" "LibraryThing.com\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1226 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/opf2.py:1226 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1399 msgid "Cover" msgstr "Obálka" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:22 msgid "Modify images to meet Palm device size limitations." msgstr "Upravit obrázky aby vyhovovali velikostním omezení Palm zařízení." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:26 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:33 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/htmltoc.py:56 msgid "Title for any generated in-line table of contents." msgstr "Název pro vygenerovaný obsah." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 +#: /home/kovid/work/trunk/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:40 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:40 msgid "Tag marking book to be filed with Personal Docs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:108 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:108 msgid "All articles" msgstr "VÅ¡echny Älánky" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:259 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1400 msgid "Title Page" msgstr "Titulní stránka" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:194 msgid "Table of Contents" msgstr "Obsah" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1402 msgid "Index" msgstr "Rejstřík" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1403 msgid "Glossary" msgstr "Slovník pojmů" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1404 msgid "Acknowledgements" msgstr "PdÄ›kování" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1405 msgid "Bibliography" msgstr "Bibliografie" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1406 msgid "Colophon" msgstr "Tiráž" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1407 msgid "Copyright" msgstr "Autorská práva" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1408 msgid "Dedication" msgstr "VÄ›nování" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1409 msgid "Epigraph" msgstr "Doslov" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1410 msgid "Foreword" msgstr "PÅ™edmluva" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1411 msgid "List of Illustrations" msgstr "Seznam Ilustrací" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1412 msgid "List of Tables" msgstr "Seznam tabulek" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1413 msgid "Notes" msgstr "Poznámky" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1414 msgid "Preface" msgstr "Úvod" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1415 msgid "Main Text" msgstr "Hlavní text" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/iterator.py:41 msgid "%s format books are not supported" msgstr "Knihy ve formátu %s nejsou podporovány." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 +#: /home/kovid/work/trunk/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:113 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/jacket.py:113 msgid "Book Jacket" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 +#: /home/kovid/work/trunk/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 "" "NepodaÅ™ilo se najit vhodný bod pro rozdÄ›lení: %s Velikost podstromu:%d KB" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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:128 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/reader132.py:128 msgid "Footnotes" msgstr "Poznámky pod Äarou" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/reader132.py:135 msgid "Sidebar" msgstr "Postraní panel" -#: /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:24 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/trunk/src/calibre/ebooks/tcr/input.py:23 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:24 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:28 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/trunk/src/calibre/ebooks/tcr/input.py:27 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:28 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+ " @@ -2457,32 +2484,32 @@ msgid "" "starts with an indent is reached." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/cli.py:31 msgid "" "command ...\n" "\n" @@ -2494,118 +2521,118 @@ msgid "" "Manipulate a PDF.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:29 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:38 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:36 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:33 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:41 msgid "" "Path to output file. By default a file is created in the current directory." msgstr "" "Cesta k výstupnímu souboru. StandardnÄ› bude výstupní soubor vytvoÅ™en v " "aktuálním pracovním adresáři." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:41 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:73 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Options to control the transformation of pdf" msgstr "Možnosti transformace PDF" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:23 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 msgid "Decrypt Options:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 msgid "Encrypt Options:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 +#: /home/kovid/work/trunk/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 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:47 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:47 msgid "Subject" msgstr "PÅ™edmÄ›t" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:48 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:48 msgid "Creator" msgstr "Původce" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:50 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:50 msgid "Pages" msgstr "Stránky" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:51 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:51 msgid "File Size" msgstr "Velikost Souboru" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:52 msgid "PDF Version" msgstr "PDF verze" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:25 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:25 msgid "" "[options] file1.pdf file2.pdf ...\n" "\n" @@ -2614,33 +2641,33 @@ msgid "" "Merges individual PDFs.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:56 msgid "Merge Options:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:25 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:54 msgid "Reverse Options:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:24 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:53 msgid "Rotate Options:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:25 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:25 msgid "" "\n" "%prog %%name [options] file.pdf page_to_split_on ...\n" @@ -2655,98 +2682,98 @@ msgid "" "Split a PDF.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Split Options:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:31 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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/output.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/output.py:49 msgid "" "Preserve the aspect ratio of the cover, instead of stretching it to fill the " "ull first page of the generated pdf." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/pdftohtml.py:55 msgid "Could not find pdftohtml, check it is in your PATH" msgstr "" "NepodaÅ™ilo ze najít pdftohtml, zkontrolujte zda je cesta k nÄ›mu v sytémové " "promÄ›né PATH" -#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:33 +#: /home/kovid/work/trunk/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:200 +#: /home/kovid/work/trunk/src/calibre/ebooks/rtf/input.py:194 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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:34 msgid "" "Normally extra spaces are condensed into a single space. With this option " "all spaces will be displayed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:37 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:37 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:40 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:40 msgid "Do not insert a Table of Contents into the output text." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 " @@ -2754,334 +2781,339 @@ msgid "" "minimum of 25 characters. Use 0 to disable line splitting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 +#: /home/kovid/work/trunk/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:33 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:33 msgid "Send file to storage card instead of main memory by default" msgstr "Ukládat soubory na pamÄ›tovou kartu, ne do hlavní pamÄ›ti zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:35 msgid "Confirm before deleting" msgstr "Vyžadovat potvrzení pÅ™ed smazáním" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Uspořádání hlavního okna" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Upozornit pokud je dostupná nová verze" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Äíslování knih v sérii římskými Äíslicemi" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by name, popularity, or rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "PoÄet obálek, které se mají zobrazovat v režimu prohlížení obálek" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Standadní nastavení pÅ™evodu do formátu LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Možnosti prohlížeÄe elektronických knih ve formátu LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formáty zobrazované interním prohlížeÄem" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Sloupce které se mají zobrazit v seznamu knih" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Automaticky spouÅ¡tÄ›t obsahový server pÅ™i startu aplikace" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Nejstarší zprávy ponechané v databázi" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Zobrazit ikonu v systémovém panelu" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Odelsat stažené zpravy do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Smazat knihy z knihovny po jejich odeslání do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" "Zobrazit galerii obálek v oddÄ›leném oknÄ›, namísto hlavního okna calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Zakázat oznamování v systemové oblasti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Maximální poÄet procesů ve frontÄ›" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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:97 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:97 msgid "tag browser categories not to display" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:99 msgid "The layout of the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:101 msgid "Show the average rating per item indication in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:103 msgid "Disable UI animations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:151 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:185 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:185 msgid "Copy to Clipboard" msgstr "&Kopírovat do schránky" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:396 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:397 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:245 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:245 msgid "Use library only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:246 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:246 msgid "User annotations generated from main library only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:611 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:707 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:941 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1059 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:623 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:682 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:719 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:740 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:925 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:998 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1116 msgid "No books selected" msgstr "Nejsou oznaÄeny žádné knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:76 msgid "No books selected to fetch annotations from" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:101 msgid "Merging user annotations into database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:129 msgid "%s
Last Page Read: %d (%d%%)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:135 msgid "%s
Last Page Read: Location %d (%d%%)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:154 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:154 msgid "Location %d • %s
%s
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:163 msgid "Page %d • %s
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:168 msgid "Location %d • %s
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:291 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:291 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:292 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:292 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:390 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:339 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:390 msgid "Uploading books to device." msgstr "Odesílám knihy do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:350 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:164 msgid "Books" msgstr "Knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:351 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:351 msgid "EPUB Books" msgstr "EPUB knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:352 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:352 msgid "LRF Books" msgstr "LRF knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:353 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:353 msgid "HTML Books" msgstr "HTML knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:354 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:354 msgid "LIT Books" msgstr "LIT knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:355 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:355 msgid "MOBI Books" msgstr "MOBI knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:356 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:356 msgid "Topaz books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:357 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:357 msgid "Text books" msgstr "TXT knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:358 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:358 msgid "PDF Books" msgstr "PDF knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:359 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:359 msgid "Comics" msgstr "Komiksy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:360 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:360 msgid "Archives" msgstr "Archívy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:364 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:364 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:399 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:399 msgid "Merged some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:400 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:400 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:409 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:409 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:410 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:410 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:429 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:448 msgid "Add to library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:459 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1228 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:429 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:473 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1260 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1285 msgid "No book selected" msgstr "Není oznaÄena žádná kniha" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:442 +msgid "" +"The following books are virtual and cannot be added to the calibre library:" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:448 msgid "No book files found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:456 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:470 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:469 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:483 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:487 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:501 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:507 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:521 msgid "Cannot delete books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:508 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:522 msgid "No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:518 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:532 msgid "Main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:533 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:436 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:445 msgid "Storage Card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:534 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:438 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:447 msgid "Storage Card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:525 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:539 msgid "No books to delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:526 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:540 msgid "None of the selected books are on the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:600 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:557 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:612 msgid "Deleting books from device." msgstr "Mažu knihy ze zařízení." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:564 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:578 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -3089,67 +3121,67 @@ msgstr "" "OznaÄené knihy budou trvale smazány a soubory budou odstranÄ›ny z " "vaÅ¡eho poÄítaÄe. Opravdu je chcete odstranit?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:585 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:597 msgid "" "The selected books will be permanently deleted from your device. Are " "you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:610 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:622 msgid "Cannot download metadata" msgstr "Nemůžu stáhnout metadata." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:638 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:640 msgid "covers" msgstr "obálky" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:640 msgid "metadata" msgstr "metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:630 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:642 msgid "Downloading %s for %d book(s)" msgstr "Stahuji %s pro %d knihu(y)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:654 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:666 msgid "Failed to download some metadata" msgstr "Selhalo stahování nÄ›kterých metadat" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:655 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:667 msgid "Failed to download metadata for the following:" msgstr "Selhalo stahovaní metadat pro následující:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:658 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:670 msgid "Failed to download metadata:" msgstr "Selhalo stahování metadat:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:659 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:595 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:671 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:608 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:990 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Chyba" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:706 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:681 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:718 msgid "Cannot edit metadata" msgstr "Nemůžu upravit metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:730 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:739 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:742 msgid "Cannot merge books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:731 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:743 msgid "At least two books must be selected for merging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:735 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:747 msgid "" "All book formats and metadata from the selected books will be added to the " "first selected book.

The second and subsequently selected " @@ -3157,7 +3189,7 @@ msgid "" "proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:746 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:758 msgid "" "All book formats and metadata from the selected books will be merged into " "the first selected book.

After merger the second and " @@ -3167,99 +3199,111 @@ msgid "" "from your computer.

Are you sure you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:770 msgid "" "You are about to merge more than 5 books. Are you sure you want to " "proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:875 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:924 msgid "Cannot save to disk" msgstr "Chyba zápisu na disk" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:878 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:927 msgid "Choose destination directory" msgstr "Zvolte cílový adresář" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:933 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:566 +msgid "Not allowed" +msgstr "Nedovolené" + +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:934 +msgid "" +"You are trying to save files into the calibre library. This can cause " +"corruption of your library. Save to disk is meant to export files from your " +"calibre library elsewhere." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:968 msgid "Error while saving" msgstr "Chyba pÅ™i ukládání" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:912 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:969 msgid "There was an error while saving." msgstr "PÅ™i ukládání nastala chyba." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:920 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:976 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:977 msgid "Could not save some books" msgstr "Nemohu uložit nÄ›které knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:921 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:978 msgid "Click the show details button to see which ones." msgstr "KliknÄ›te na tlaÄítko zobrazit detaily pro zjiÅ¡tÄ›ní které z nich." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:942 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:999 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:959 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1016 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:964 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1021 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:965 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1022 msgid "" "No books to catalog\n" "Check exclude tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:975 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1032 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1035 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:979 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1036 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:995 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1052 msgid "Fetching news from " msgstr "Získávám zprávy z " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1009 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1066 msgid " fetched." msgstr " získány." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1058 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1115 msgid "Cannot convert" msgstr "Nemůžu pÅ™evást" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1087 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1144 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1264 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1260 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1321 msgid "Cannot view" msgstr "Nemůžu zobrazit" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1209 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1266 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "Vyberte formát který se má zobrazit" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1217 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1274 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1218 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1275 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 " @@ -3267,131 +3311,131 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1227 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1284 msgid "Cannot open folder" msgstr "Nemohu otevřít adresář" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1265 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1322 msgid "%s has no available formats." msgstr "%s není dostupná v žádném dostupném formátu." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:54 msgid "Searching in" msgstr "Hledám v" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:232 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:232 msgid "Adding..." msgstr "PÅ™idávám..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:245 msgid "Searching in all sub-directories..." msgstr "Prohledávám vÅ¡echny podadresáře..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:258 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:259 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:263 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:810 msgid "No books" msgstr "Žádné knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:330 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:330 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:343 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:343 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:344 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:344 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:356 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:356 msgid "Duplicates found!" msgstr "Byly nalezeny duplikáty!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:357 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:357 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" "Knihy se stejným názvem jsou již v databázi. Mají být pÅ™esto pÅ™idány?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:360 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:360 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:427 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:427 msgid "Saving..." msgstr "Ukládám..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:480 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:480 msgid "Saved" msgstr "Uložené" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:57 msgid "Searching for sub-folders" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:62 msgid "Searching for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:74 msgid "Looking for duplicates based on file hash" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:109 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:65 msgid "Choose root folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:137 msgid "Invalid root folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:138 msgid "is not a valid root folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:148 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:148 msgid "Add books to calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/scan_ui.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/kindle_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/library_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/stanza_ui.py:41 msgid "WizardPage" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:22 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/scan_ui.py:22 msgid "Scanning root folder for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:23 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/scan_ui.py:23 msgid "This may take a few minutes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:58 msgid "Choose the location to add books from" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:59 msgid "Select a folder on your hard disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:60 msgid "" "

calibre can scan your computer for existing books automatically. These " "books will then be copied into the calibre library. This wizard will " @@ -3403,259 +3447,259 @@ msgid "" "not under the root folder you choose.

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:63 msgid "&Root folder:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:64 msgid "" "This folder and its sub-folders will be scanned for books to import into " "calibre's library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:66 -#: /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:125 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 -#: /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:548 -#: /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:562 -#: /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:566 -#: /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:610 -#: /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:365 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 -#: /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:392 -#: /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:399 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:166 -#: /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/tag_list_editor_ui.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 -#: /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/shortcuts_ui.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:612 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:614 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:616 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:618 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:619 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:668 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:406 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:156 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:159 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:267 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:269 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:186 msgid "..." msgstr "..." -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:67 msgid "Handle multiple files per book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:68 msgid "" "&One book per folder, assumes every ebook file in a folder is the same book " "in a different format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:69 msgid "" "&Multiple books per folder, assumes every ebook file is a different book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:54 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1065 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:23 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:311 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1065 msgid "Path" msgstr "Cesta" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:24 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:312 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:100 msgid "Formats" msgstr "Formáty" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:891 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1068 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:25 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:891 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1068 msgid "Collections" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:56 msgid "Click to open" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:305 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:317 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1078 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:274 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:305 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:311 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:317 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1074 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1078 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:274 msgid "None" msgstr "Žádné" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:310 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:310 msgid "Click to open Book Details window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex.py:16 msgid "BibTeX Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output.py:17 msgid "Options specific to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output.py:17 msgid "output" msgstr "výstup" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:66 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 -#: /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:77 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:107 msgid "Form" msgstr "Z" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 msgid "Bib file encoding:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 msgid "Fields to include in output:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 msgid "ascii/LaTeX" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 msgid "Encoding configuration (change if you have errors) :" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 msgid "strict" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 msgid "replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 msgid "ignore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 msgid "backslashreplace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 msgid "BibTeX entry type:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 msgid "mixed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 msgid "misc" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 msgid "book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 msgid "Create a citation tag?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 msgid "Expression to form the BibTeX citation tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 msgid "" "Some explanation about this template:\n" " -The fields availables are 'author_sort', 'authors', 'id',\n" @@ -3666,38 +3710,38 @@ msgid "" " -For time field, only the date will be used. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +#: /home/kovid/work/trunk/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:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1487 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1505 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:550 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1496 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1514 msgid "Catalog" msgstr "Katalog" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 msgid "Additional note tag prefix:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 msgid "" "Regex tips:\n" "- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " @@ -3706,135 +3750,135 @@ msgid "" "Genre Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 msgid "Include 'Titles' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 msgid "Include 'Recently Added' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 msgid "Sort numbers as text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/bulk.py:67 msgid "Bulk Convert" msgstr "Hromadné PÅ™evedení" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input.py:15 msgid "Comic Input" msgstr "Comic vstup" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input.py:13 msgid "input" msgstr "vstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "PoÄet &barev" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Vypnout &normalizaci" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Zachov&at pomÄ›r stran" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Vypnout zao&stÅ™ování" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" 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:103 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "Å iro&ké" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "Na šíř&ku" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "Zp&rava doleva" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "&Netřídit" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "ÄŒistíci &filtr" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:99 msgid "&Disable comic processing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:115 msgid "&Output format:" msgstr "&Výstupní formát:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:101 msgid "Disable conversion of images to &black and white" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:21 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:51 msgid "Choose debug folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:57 msgid "Invalid debug directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 " @@ -3842,65 +3886,65 @@ msgid "" "conversion parameters like Table of Contents and Chapter Detection." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output.py:15 msgid "EPUB Output" msgstr "EPUB výstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:49 msgid "Do not &split on page breaks" msgstr "NerozdÄ›lovat na &zalomeních stran" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:50 msgid "No default &cover" msgstr "Obálka nenalezena" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:51 msgid "No &SVG cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:52 msgid "Preserve cover &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:53 msgid "Split files &larger than:" msgstr "RodÄ›&lit soubory vetší než:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:54 msgid " KB" msgstr " KB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input.py:12 msgid "FB2 Input" msgstr "FB2 vstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output.py:14 msgid "FB2 Output" msgstr "FB2 Výstup" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output_ui.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output_ui.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output_ui.py:29 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 " @@ -3916,104 +3960,104 @@ msgid "" "for a discussion of how font size rescaling works.

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:104 +#: /home/kovid/work/trunk/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:123 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:105 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:123 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:122 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py: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:121 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:112 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:127 msgid " pt" msgstr " bodů" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:16 msgid "Look & Feel" msgstr "Vzhled a chování" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 +#: /home/kovid/work/trunk/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.py:30 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:30 msgid "Original" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:31 msgid "Left align" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:32 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:32 msgid "Justify text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:120 msgid "&Disable font size rescaling" msgstr "&Zakázat změnu velikosti písma" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:121 msgid "Base &font size:" msgstr "Základní &velikost písma:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:124 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:126 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:126 msgid "Line &height:" msgstr "Výš&ka řádku" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:128 msgid "Input character &encoding:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Remove &spacing between paragraphs" msgstr "Odstranit &mezery mezi odstavci" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:130 msgid "Indent size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:131 msgid "" "

When calibre removes inter paragraph spacing, it automatically sets a " "paragraph indent, to ensure that paragraphs can be easily distinguished. " @@ -4023,188 +4067,188 @@ msgstr "" "odsazení, aby bylo možné odstavce snadno rozeznat. Tato volba upravuje šířku " "odsazení." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:132 msgid " em" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:133 msgid "Text justification:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "&Linearize tables" msgstr "PÅ™evést tabulky na řádky" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:135 msgid "Extra &CSS" msgstr "Extra &CSS" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "&Transliterate unicode characters to ASCII" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:137 msgid "Insert &blank line" msgstr "Vložit &prázdný řádek" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:138 msgid "Keep &ligatures" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output.py:19 msgid "LRF Output" msgstr "LRF Výstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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:195 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:195 msgid "Metadata" msgstr "Metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:43 +#: /home/kovid/work/trunk/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:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:111 msgid "Choose cover for " msgstr "Vyberte obálku pro " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:118 msgid "Cannot read" msgstr "Nemůžu pÅ™eÄíst" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:119 msgid "You do not have permission to read the file: " msgstr "Nemáte přístupová práva na Ätení souboru: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:180 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:127 msgid "Error reading file" msgstr "Chyba pÅ™i Ätení souboru" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:128 msgid "

There was an error reading from file:
" msgstr "

Chyba pÅ™i Ätení souboru:
" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:188 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:136 msgid " is not a valid picture" msgstr " není platný obrazový soubor" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:167 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:401 msgid "Book Cover" msgstr "Obálka knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:168 msgid "Use cover from &source file" msgstr "Použít Obálku ze &zdrojového souboru" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:169 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:402 msgid "Change &cover image:" msgstr "ZmÄ›nit &obálku:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:403 msgid "Browse for an image to use as the cover of this book." msgstr "Vybete obrázkový soubor . který se použije jako obálka této knihy." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:362 msgid "&Title: " msgstr "&Název: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:173 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "Change the title of this book" msgstr "ZmÄ›nit název táto knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 -#: /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:361 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid "&Author(s): " msgstr "&Autor(Å™i) " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:175 msgid "Author So&rt:" msgstr "Autor ve tvaru \"&příjmení, jméno\"." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:176 msgid "" "Change the author(s) of this book. Multiple authors should be separated by a " "comma" msgstr "Autor(Å™i) této knihy. Vícero autorů by mÄ›lo být oddÄ›leno Äárkami" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:177 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "&Publisher: " msgstr "&Vydavatel: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:178 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:376 msgid "Ta&gs: " msgstr "Ta&gy: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

They can be any words or phrases, separated by commas." @@ -4212,440 +4256,440 @@ msgstr "" "Tagy Å™adí knihu do kategorií. UžiteÄné jsou zvláštÄ› pÅ™i vyhledávání. " "

Můžou to být libovolné slova nebo fráze, oddÄ›lené Äárkami." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:180 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:380 msgid "&Series:" msgstr "&Série:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:182 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:382 msgid "List of known series. You can add new series." msgstr "Seznam známých sérií. Můžete pÅ™idat novou sérii." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:183 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid "Book " msgstr "Kniha " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "MOBI Výstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:42 msgid "Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:67 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:68 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:69 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:70 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:71 msgid "Do not add Table of Contents to book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:72 msgid "Kindle options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:73 msgid "Periodical masthead font:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:74 msgid "Personal Doc tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Nastavení stránky" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:116 msgid "&Output profile:" msgstr "Výstupní pr&ofil:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:117 msgid "Profile description" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:118 msgid "&Input profile:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:119 msgid "Margins" msgstr "Okraje" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:120 msgid "&Left:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:122 msgid "&Top:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:124 msgid "&Right:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:126 msgid "&Bottom:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input.py:12 msgid "PDB Input" msgstr "PDB vstup" -#: /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:47 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input_ui.py:32 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:47 msgid "Treat each &line as a paragraph" msgstr "Považovat každý řádek za odstavec" -#: /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:48 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input_ui.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:48 msgid "Assume print formatting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output.py:16 msgid "PDB Output" msgstr "PDB Výstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output_ui.py:36 msgid "&Format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:12 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output.py:17 msgid "PDF Output" msgstr "PDF Výstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:43 msgid "&Paper Size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:44 msgid "&Orientation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:45 msgid "Preserve &aspect ratio of cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output.py:14 msgid "RB Output" msgstr "RB Výstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:83 msgid "No formats available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:84 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:84 msgid "Cannot build regex using the GUI builder without a book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:103 msgid "Open book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:52 msgid "Regex Builder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:53 msgid "Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:54 msgid "Regex:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:55 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:117 msgid "Test" msgstr "Test" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single.py:171 msgid "Convert" msgstr "PÅ™evést" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single.py:196 msgid "Options specific to the input format." msgstr "Nastavení specifické vstupnímu formátu." -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:112 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" msgstr "Dialog" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:113 msgid "&Input format:" msgstr "Vstupn&í formát:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:114 msgid "Use &saved conversion settings for individual books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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:76 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:76 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:77 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:77 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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:62 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:63 +#: /home/kovid/work/trunk/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:61 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:61 msgid "Chapter &mark:" msgstr "&ZnaÄka kapitol:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:62 msgid "Remove first &image" msgstr "Odstranit první &obrázek" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:63 msgid "Insert &metadata as page at start of book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:64 msgid "&Preprocess input file to possibly improve structure detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:65 msgid "Remove F&ooter" msgstr "Odstranit &patiÄku stránky" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:66 msgid "Remove H&eader" msgstr "Odstranit &záhlaví" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:16 msgid "" "Table of\n" "Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:18 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:63 msgid "Do not add &detected chapters to the Table of Contents" msgstr "&NepÅ™idávat automaticky rozpoznané kapitoly do Obsahu" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:64 msgid "Number of &links to add to Table of Contents" msgstr "&PoÄet odkazů, které budou pÅ™idány do Obsahu" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:65 msgid "Chapter &threshold" msgstr "Prahová úroveň &kapitol" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:66 msgid "&Force use of auto-generated Table of Contents" msgstr "&Vždy použít automaticky generovaný obsah" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:67 msgid "TOC &Filter:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input.py:12 msgid "TXT Input" msgstr "TXT vstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:49 msgid "Process using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:50 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:51 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:51 msgid "Do not insert Table of Contents into output text when using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:52 msgid "Preserve &spaces" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" msgstr "TXT Výstup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:48 msgid "&Maximum line length:" msgstr "&Maximální délka řádku:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:49 msgid "Force maximum line lenght" msgstr "Vynutit maximální délku řádku" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_format_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress_ui.py:50 msgid "TextLabel" msgstr "Textový popisek" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:52 msgid "Use a wizard to help construct the XPath expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:69 msgid "*" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:76 msgid "h4" msgstr "h4" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:77 msgid "h5" msgstr "h5" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:78 msgid "h6" msgstr "h6" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:79 msgid "hr" msgstr "hr" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:80 msgid "span" msgstr "span" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:83 msgid "(A regular expression)" msgstr "(regulární výraz)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 +#: /home/kovid/work/trunk/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 " @@ -4655,172 +4699,172 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/cover_flow.py:127 msgid "Cover browser could not be loaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/cover_flow.py:179 msgid "Browse by covers" msgstr "Prohlížet obálky" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:264 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:130 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:205 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:238 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:242 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:139 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:264 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:238 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:242 msgid "Undefined" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:133 msgid "Yes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:134 msgid "No" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:116 msgid "star(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:117 msgid "Unrated" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:150 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:150 msgid "Set '%s' to today" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:260 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:260 msgid " index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:443 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:443 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 msgid "Automatically number books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:486 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:486 msgid "Remove all tags" msgstr "Odstranit vÅ¡echny tagy" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:507 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:507 msgid "tags to add" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:512 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:512 msgid "tags to remove" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:49 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:49 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:166 msgid "Device no longer connected." msgstr "Zařízení už není pÅ™ipojené" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:271 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:284 msgid "Get device information" msgstr "Získat informace o zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:295 msgid "Get list of books on device" msgstr "Získat seznam knih v zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:292 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:305 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:314 msgid "Send metadata to device" msgstr "Odeslat metadata do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:306 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:319 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:343 msgid "Upload %d books to device" msgstr "Odeslat %d knih do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:358 msgid "Delete books from device" msgstr "Smazat knihy ze zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:375 msgid "Download books from device" msgstr "PÅ™evzít knihy ze zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:372 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:385 msgid "View book on device" msgstr "Zobrazit knihu v zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:419 msgid "Set default send to device action" msgstr "Nastavit výchozí nastavení pro odeslání do ÄteÄky" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:425 msgid "Send to main memory" msgstr "Odeslat do hlavní pamÄ›ti" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:427 msgid "Send to storage card A" msgstr "Odeslat na pamÄ›tovou kartu A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:429 msgid "Send to storage card B" msgstr "Odeslat na pamÄ›tovou kartu B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:443 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:454 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:442 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:455 msgid "Send specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:491 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:499 msgid "Fetch annotations (experimental)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:596 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:609 msgid "Error communicating with device" msgstr "Cyba komunikace se zařízením" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:618 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:631 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:675 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:668 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:681 msgid "Error talking to device" msgstr "Chyba komunikace se zařízením" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:682 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -4828,317 +4872,325 @@ msgstr "" "DoÄasná chyba komunikace se zařízením. Prosím odpojte a znovu pÅ™ipojte " "zařízení anebo restarujte poÄítaÄ." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:711 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:724 msgid "Device: " msgstr "Zařízení: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:713 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:726 msgid " detected." msgstr " nalezeno." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:798 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:811 msgid "selected to send" msgstr "vybrané k odeslání" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:803 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:816 msgid "Choose format to send to device" msgstr "Vyberte formát k odeslání do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:825 msgid "No device" msgstr "Žádné zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:826 msgid "Cannot send: No device is connected" msgstr "Nemohu odeslat: Není pÅ™ipojeno žádné zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:816 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:829 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:833 msgid "No card" msgstr "Žádná karta" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:830 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:834 msgid "Cannot send: Device has no storage card" msgstr "Nemohu odeslat: Zařízení nemá pamÄ›tovou kartu." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:875 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:878 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:879 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:181 msgid "by" msgstr "od" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:880 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:893 msgid "Sending email to" msgstr "Odeslat email" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:910 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1193 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:923 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:931 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1025 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1087 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1206 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1214 msgid "No suitable formats" msgstr "Žádné vhodné formáty" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:911 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:924 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:932 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:950 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:951 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:942 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:955 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:984 msgid "News:" msgstr "Zprávy:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:985 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:996 msgid "Sent news to" msgstr "Odeslat zprávy do" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1194 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1026 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1088 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1207 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1056 msgid "Sending catalogs to device." msgstr "Odeslat katalog do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1107 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1120 msgid "Sending news to device." msgstr "Odesílám zprávy do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1173 msgid "Sending books to device." msgstr "Odesílám knihy do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1215 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:1264 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1277 msgid "No space on device" msgstr "Na zařízení není volné místo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1265 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1278 msgid "" "

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

Knihy není možné odeslat do zařízení pro nedostatek volného úložného " "prostoru " -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:78 msgid "Select available formats and their order for this device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:82 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:82 msgid "Use sub directories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:83 msgid "Use author sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:85 msgid "Save &template:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "&Předchozí" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "&Další" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog.py:38 msgid "My Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:289 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:289 msgid "Generate catalog" msgstr "Generovat katalog" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:70 msgid "Generate catalog for {0} books" msgstr "Vytvořit katalog pro {0} knih" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:71 msgid "Catalog &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:72 msgid "" "Catalog &title (existing catalog with the same title will be replaced):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:73 msgid "&Send catalog to device automatically" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:74 msgid "Catalog options" msgstr "Volby katalogu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "Vyberte formát" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:38 msgid "Choose location for calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:45 msgid "Same as current" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:46 msgid "The location %s contains the current calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:51 msgid "No existing library found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:52 msgid "There is no existing calibre library at %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:56 msgid "Not empty" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:57 msgid "The folder %s is not empty. Please choose an empty folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location selected" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:66 msgid "Choose your calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:67 msgid "Your calibre library is currently located at {0}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:68 msgid "New &Location:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:69 msgid "Use &existing library at the new location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:70 msgid "&Create an empty library at the new location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:71 msgid "&Move current library to new location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf.py:33 msgid "Set defaults for conversion of comics (CBR/CBZ files)" msgstr "Výchozí nastavení převodu komiksů (CBR/CBZ souborů)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf.py:48 msgid "Set options for converting %s" msgstr "Mo6nosti převodu %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:92 msgid "&Title:" msgstr "&Název:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:93 msgid "&Author(s):" msgstr "&Autor(ři):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:95 msgid "&Profile:" msgstr "&Profil:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comments_dialog_ui.py:41 msgid "Edit Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:174 msgid "%(plugin_type)s %(plugins)s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:175 msgid "plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:184 msgid "" "\n" "Customization: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:199 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:199 msgid "General" msgstr "Obecné" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:200 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:200 msgid "Interface" msgstr "Rozhraní" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:201 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:201 msgid "Conversion" msgstr "Převod" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:202 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:202 msgid "" "Email\n" "Delivery" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:203 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:203 msgid "Add/Save" msgstr "Přidat/Uložit" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:204 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:204 msgid "Advanced" msgstr "Rozšířené" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:205 msgid "" "Content\n" "Server" @@ -5146,195 +5198,213 @@ msgstr "" "Obsahový\n" "Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:206 msgid "Plugins" msgstr "Moduly" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:230 msgid "Auto send" msgstr "Automaticky odeslat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:230 msgid "Email" msgstr "Email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:235 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:235 msgid "Formats to email. The first matching format will be sent." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:236 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:236 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:310 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:310 msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:492 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:492 msgid "Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:493 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:493 msgid "Narrow" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:502 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:502 msgid "Medium" msgstr "Střední" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:502 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:502 msgid "Small" msgstr "Malé" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:503 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:503 msgid "Large" msgstr "Velké" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:509 msgid "Always" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:509 msgid "Automatic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:510 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:510 msgid "Never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:521 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:534 +msgid "Done" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:535 +msgid "Confirmation dialogs have all been reset" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:540 msgid "System port selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:541 msgid "" "The value %d you have chosen for the content server port is a system " "port. Your operating system may not allow the server to run on this " "port. To be safe choose a port number larger than 1024." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Failed to install command line tools." msgstr "Selhala Instalce nástrojů pro příkazovou řádku." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:545 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:564 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:546 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:565 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:547 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:566 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:598 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:617 msgid "No valid plugin path" msgstr "Chybí platná cesta k modulům" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:599 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:618 msgid "%s is not a valid plugin path" msgstr "%s není platná cesta k modulům" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:602 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:621 msgid "Choose plugin" msgstr "Zvolte modul" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:614 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:633 msgid "Plugin cannot be disabled" msgstr "Modul není možné deaktivovat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:615 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:634 msgid "The plugin: %s cannot be disabled" msgstr "Modul %s nemůže být deaktivován" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:643 msgid "Plugin not customizable" msgstr "Modul není upravitelný" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:625 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:644 msgid "Plugin: %s does not need customization" msgstr "Modul %s nevyžaduje žádné úpravy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:652 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:671 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:690 msgid "Cannot remove builtin plugin" msgstr "Vestavěný modul není možné odstranit" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:691 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " nemůže být odstraněn. Je to vestavěbý modul. Skuste ho místo odstranění " "deaktivovat." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:703 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:707 +msgid "Invalid tweaks" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:708 +msgid "" +"The tweaks you entered are invalid, try resetting the tweaks to default and " +"changing them one by one until you find the invalid setting." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:738 msgid "You must select a column to delete it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:743 msgid "The selected column is not a custom column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:744 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" msgstr "Jste si jisti?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:745 msgid "Do you really want to delete column %s and all its data?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:777 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:812 msgid "Error log:" msgstr "Záznam o chybách:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:784 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:819 msgid "Access log:" msgstr "Záznam o přístupu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:312 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:847 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:318 msgid "Failed to start content server" msgstr "Nepodařilo se spustit obdahový server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:837 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:872 msgid "Invalid size" msgstr "Neplatná velikost" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:838 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:873 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "Velikost %s je neplatná. Požadovaný formát je šířka x výška" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:899 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:936 msgid "Must restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:900 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:937 msgid "" "The changes you made require that Calibre be restarted. Please restart as " "soon as practical." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:971 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:954 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:991 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:959 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:996 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:960 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:997 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 " @@ -5342,32 +5412,32 @@ msgid "" "folder directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:133 msgid "TabWidget" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:134 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:135 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:135 msgid "Read metadata only from &file name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:136 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:137 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:137 msgid "&Swap author firstname and lastname" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:138 msgid "" "If an existing book with a similar title and author is found that does not " "have the format being added, the format is added\n" @@ -5378,79 +5448,79 @@ msgid "" "punctuation, case, etc. Author match is exact." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:142 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:142 msgid "" "If books with similar titles and authors found, &merge the new files " "automatically" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:143 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:143 msgid "&Configure metadata from file name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:144 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:144 msgid "&Adding books" msgstr "&Přidání knih" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:145 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:145 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:146 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:146 msgid "Save &cover separately" msgstr "Uložit &obálku odděleně" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:147 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:147 msgid "Update &metadata in saved copies" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:148 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:148 msgid "Save metadata in &OPF file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:149 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:149 msgid "Convert non-English characters to &English equivalents" msgstr "Převést neAnglické znaky na Anglické &ekvivalenty" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:150 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:150 msgid "Format &dates as:" msgstr "Formát data:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:151 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:151 msgid "File &formats to save:" msgstr "&Formáty souborů k uložení:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:152 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:152 msgid "Replace space with &underscores" msgstr "Nahradit mezer&u podtržitkem" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:153 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:153 msgid "Change paths to &lowercase" msgstr "Změnit cesty na malá písmena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:154 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:154 msgid "&Saving books" msgstr "&Ukládání Knih" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:155 msgid "Metadata &management:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:156 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:156 msgid "Manual management" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:157 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:157 msgid "Only on send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:158 msgid "Automatic management" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:159 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:159 msgid "" "

  • Manual Management: Calibre updates the metadata and adds " "collections only when a book is sent. With this option, calibre will never " @@ -5461,41 +5531,41 @@ msgid "" "device in sync with the calibre library, on every connect
  • " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:162 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:163 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:163 msgid "Sending to &device" msgstr "Odeslání do &zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:599 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:584 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:474 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:616 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:201 msgid "Preferences" msgstr "Možnosti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:585 msgid "Show notification when &new version is available" msgstr "Zobrazit upozornÄ›ní pokud je dostupná &nová verze." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:586 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:587 msgid "&Overwrite author and title by default when fetching metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:588 msgid "Default network &timeout:" msgstr "Výchozí Äasový &limit sítÄ›:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:589 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -5503,174 +5573,204 @@ msgstr "" "Výchozí Äasový limit pro síťové dotazy (napÅ™. pokaždé když jdeme na Internet " "získat informace)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:590 msgid " seconds" msgstr " sekund" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:591 msgid "Choose &language (requires restart):" msgstr "Vyberte &jazyk (vyžaduje restart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:592 msgid "Normal" msgstr "Normální" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:593 msgid "High" msgstr "Vysoká" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:594 msgid "Low" msgstr "Nízká" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:595 msgid "Job &priority:" msgstr "&Priorita úloh:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:596 msgid "Preferred &output format:" msgstr "UpÅ™ednostňovaný výstupní formát:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:597 +msgid "Reset all disabled &confirmation dialogs" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:598 msgid "Preferred &input format order:" msgstr "PoÅ™adí preference &vstupních formátů:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:601 msgid "Use &Roman numerals for series number" msgstr "Číslovat knihy v sérii &Římskými Äíslicemi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:602 msgid "Enable system &tray icon (needs restart)" msgstr "Zobrazit &ikonu v sýstémové liÅ¡tÄ› (vyžaduje restart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "Show ¬ifications in system tray" msgstr "Zobrazovat upozor&nÄ›ní v systémové liÅ¡tÄ›" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:604 msgid "Show &splash screen at startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:605 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Zobrazit prohlížec &obálek v samostatném oknÄ› (vyžaduje restart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:606 msgid "Show &average ratings in the tags browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:607 msgid "Search as you type" msgstr "Vyhledávat pÅ™i zadávání" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:608 msgid "Automatically send downloaded &news to ebook reader" msgstr "&Automaticky odeslat stažené zprávy do Ätecího zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "&Delete news from library when it is automatically sent to reader" msgstr "Smazat zprávy z knihovny když jsou automaticky odeslány do ÄteÄky" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:610 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "PoÄet obálek zobraze&ných v pÅ™ohlížecím módu (vyžaduje restart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:611 msgid "Select visible &columns in library view" msgstr "Viditelné sloup&ce v seznamu knih v knihovne" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Remove a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "Add a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:617 msgid "Edit settings of a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:620 msgid "Use internal &viewer for:" msgstr "Použít interní &prohlížec pro:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:621 msgid "User Interface &layout (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:622 msgid "Disable all animations. Useful if you have a slow/old computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:623 msgid "Disable &animations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:624 msgid "Show &donate button (restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:625 msgid "&Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:626 msgid "&Icon size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:627 msgid "Show &text under icons:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:628 msgid "Add an email address to which to send books" msgstr "PÅ™dat emailovou adresu na kterou posílat knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:629 msgid "&Add email" msgstr "PÅ™idat em&ail" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:630 msgid "Make &default" msgstr "Nastavit &výchozí" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:631 msgid "&Remove email" msgstr "Odst&ranit email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:632 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:633 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "&Maximální poÄet procesů ve frontÄ› (vyžaduje restart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 -msgid "&Check database integrity" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 -msgid "&Install command line tools" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 -msgid "Open calibre &configuration directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:634 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:635 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:636 +msgid "&Check database integrity" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:637 +msgid "Open calibre &configuration directory" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:638 +msgid "&Install command line tools" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:639 +msgid "&Miscellaneous" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:640 +msgid "" +"Values for the tweaks are shown below. Edit them to change the behavior of " +"calibre" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:641 +msgid "All available tweaks" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:642 +msgid "&Current tweaks" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:643 +msgid "&Restore to defaults" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:644 +msgid "&Tweaks" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:645 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 " @@ -5680,25 +5780,25 @@ msgstr "" "pomocí internetového prohlížeÄe z jakehokoliv místa na svÄ›tÄ›. ZmÄ›ny v " "nastaení se projeví až po restartu serveru." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:646 msgid "Server &port:" msgstr "&Port serveru:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:647 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:212 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Uživatelské jméno:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:648 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:213 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Heslo:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:649 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -5706,7 +5806,7 @@ msgstr "" "Pokud ponecháte heslo prázdné, kdokoliv bude mít přístup k vaší zbírce knih " "pÅ™es webové rozhraní." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:650 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -5714,46 +5814,46 @@ msgstr "" "Maximální velikost (šířka x výška) zobrazených obálek. Velké obálky budou " "zmenÅ¡ené. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:593 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:651 msgid "Max. &cover size:" msgstr "Max. velikost &obálek:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:652 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "Zobrazit he&slo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:653 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:654 msgid "Max. OPDS &ungrouped items:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:655 msgid "&Start Server" msgstr "&Spustit server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:656 msgid "St&op Server" msgstr "&Zastavit server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:657 msgid "&Test Server" msgstr "&Test serveru" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:658 msgid "Run server &automatically on startup" msgstr "&Automaticky spustit server pÅ™i startu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:659 msgid "View &server logs" msgstr "Zobrazit &serverové záznamy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:660 +#: /home/kovid/work/trunk/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" @@ -5763,194 +5863,194 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:662 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" "Tady můžete upravit chování calibre, urÄením které moduly bude používat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:663 msgid "Enable/&Disable plugin" msgstr "Aktivovat/&Deaktivovat modul" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:664 msgid "&Customize plugin" msgstr "&Upravit modul" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:665 msgid "&Remove plugin" msgstr "&Odstranit modul" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:666 msgid "Add new plugin" msgstr "PÅ™idat nový modul" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:667 msgid "Plugin &file:" msgstr "&Soubor modulu:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:669 msgid "&Add" msgstr "PÅ™id&at" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:125 msgid "Create Tag-based Column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:126 msgid "Lookup name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:127 msgid "Column heading" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:128 msgid "Column type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:129 msgid "Use brackets" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:130 msgid "Values can be edited" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:135 msgid "Text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:136 msgid "Number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:889 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:549 msgid "Date" msgstr "Datum" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:138 msgid "Tag on book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:139 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:139 msgid "Explanation text added in create_ct_column.py" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:140 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:140 msgid "Create and edit tag-based columns" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:19 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:19 msgid "Text, column shown in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:22 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:22 msgid "Comma separated text, like tags, shown in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:25 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:25 msgid "Long text, like comments, not shown in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:28 msgid "Text column for keeping series-like information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:33 msgid "Floating point numbers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:35 msgid "Integers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:37 msgid "Ratings, shown with stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:40 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:40 msgid "Yes/No" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:69 msgid "No column selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:70 msgid "No column has been selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:74 msgid "Selected column is not a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:105 msgid "No lookup name was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:107 msgid "" "The label must contain only letters, digits and underscores, and start with " "a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:116 msgid "No column heading was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:122 msgid "The lookup name %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:132 msgid "The heading %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:134 msgid "" "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:117 msgid "Create or edit custom columns" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:102 msgid "&Lookup name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:103 msgid "Column &heading" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:104 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:104 msgid "" "Used for searching the column. Must contain only digits and lower case " "letters." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:105 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:105 msgid "" "Column heading in the library view and category name in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:106 msgid "Column &type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:107 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:107 msgid "What kind of information will be kept in the column." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:108 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:108 msgid "" "

    Date format. Use 1-4 'd's for day, 1-4 'M's for month, and 2 or 4 'y's " "for year.

    \n" @@ -5961,43 +6061,43 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:114 msgid "Use MMM yyyy for month + year, yyyy for year only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:115 msgid "Default: dd MMM yyyy." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:116 msgid "Format for &dates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template_ui.py:42 msgid "Save &template" msgstr "Uložit šablonu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +#: /home/kovid/work/trunk/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 " @@ -6006,91 +6106,110 @@ msgid "" "by the empty string." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template_ui.py:44 msgid "Available variables:" msgstr "Dostupné proměné:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 +#: /home/kovid/work/trunk/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:50 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 msgid "&Show this warning again" msgstr "&Znovu zobrazit toto upozornění" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/conversion_error_ui.py:42 msgid "ERROR" msgstr "CHYBA" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:67 msgid "" "All checked books will be permanently deleted from your device. " "Please verify the list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 msgid "Location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1064 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1064 msgid "Format" msgstr "Formát" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 msgid "Delete from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:66 msgid "Manage authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:67 +msgid "Sort by author" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:68 +msgid "Sort by author sort" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:69 +msgid "" +"Reset all the author sort values to a value automatically generated from the " +"author. Exactly how this value is automatically generated can be controlled " +"via Preferences->Advanced->Tweaks" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:70 +msgid "Recalculate all author sort values" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:60 msgid "Author Sort" msgstr "Autor (seřadit jako)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:62 msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:162 msgid "Finding metadata..." msgstr "Hledám metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:176 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:176 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:177 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:186 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:186 msgid "Warning" msgstr "Varování" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:187 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:191 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:191 msgid "No metadata found" msgstr "Nenalezeny žádné metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:192 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:192 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:85 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 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 " @@ -6098,123 +6217,123 @@ msgid "" "below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "&Access Key:" msgstr "&Přístupový klíÄ" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Fetch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "Matches" msgstr "Shody" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 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:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:92 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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/jobs_ui.py:44 msgid "Active Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:45 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/jobs_ui.py:47 msgid "Stop &all non device jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:24 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk.py:24 msgid "Editing meta information for %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:368 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:162 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "&Rating:" msgstr "&Hodnocení:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:373 msgid "Rating of this book. 0-5 stars" msgstr "Hodnocení této knihy. 0-5 hvÄ›zdiÄek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:165 msgid "No change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:168 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "Open Tag Editor" msgstr "Otevřít Editor znaÄek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:172 msgid "&Remove tags:" msgstr "Odst&ranit tagy:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:173 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:173 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:177 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:177 msgid "Remove &format:" msgstr "Odstranit &formát:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 msgid "" "Selected books will be automatically numbered,\n" "in the order you selected them.\n" @@ -6222,606 +6341,633 @@ msgid "" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" "Future conversion of these books will use the default settings." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:187 msgid "Remove &stored conversion settings for the selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:410 msgid "&Basic metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:94 +msgid "Last modified: %s" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:135 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:150 +msgid "Specify title and author" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:151 +msgid "You must specify a title and author before generating a cover" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:163 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:194 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:195 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:222 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:223 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:234 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:235 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:260 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:283 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:289 msgid "Could not read cover" msgstr "NepodaÅ™ilo se naÄíst obálku" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:255 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:284 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:327 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:434 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:439 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:465 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:470 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:442 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:473 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:552 msgid "Cannot use tag editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "The tags editor cannot be used if you have modified the tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "Downloading cover..." msgstr "Stáhnout obálku..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:585 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:590 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:596 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:601 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:555 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:586 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:602 msgid "Could not fetch cover.
    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:556 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:587 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:591 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:572 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:603 +msgid "" +"For the error message from each cover source, click Show details below." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:610 msgid "Bad cover" msgstr "Špatná obálka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:611 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:606 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:644 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:607 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:645 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:636 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:674 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:637 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:675 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:708 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:750 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:709 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:751 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:355 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Edit Meta Information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:361 msgid "Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:364 msgid "Swap the author and title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "Author S&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:369 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:378 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "Remove unused series (Series that have no books)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:385 msgid "IS&BN:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:386 msgid "Publishe&d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:389 msgid "dd MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "&Date:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:391 msgid "&Comments" msgstr "&Komentáře" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:392 msgid "&Fetch metadata from server" msgstr "Získat data ze serveru" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Available Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:394 msgid "Add a new format for this book to the database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:396 msgid "Remove the selected formats for this book from the database." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:398 msgid "Set the cover for the book from the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:400 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:405 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Download &cover" msgstr "Stáhnout obálku" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +msgid "Generate a default cover based on the title and author" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "&Generate cover" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:56 msgid "Password needed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress.py:52 msgid "Aborting..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor.py:54 msgid "" "The current saved search will be permanently deleted. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:83 msgid "Saved Search Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:84 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:84 msgid "Saved Search: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:85 msgid "Select a saved search to edit" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:86 msgid "Delete this selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 msgid "Enter a new saved search name." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 msgid "Add the new saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 msgid "Change the contents of the saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:120 msgid "Need username and password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:121 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:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:172 msgid "Created by: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:179 msgid "Last downloaded: never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:194 msgid "%d days, %d hours and %d minutes ago" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:196 msgid "Last downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:220 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:192 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:220 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:192 msgid "Schedule news download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:223 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:223 msgid "Add a custom news source" msgstr "Přidat vlastní zdroj zpráv" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:228 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:228 msgid "Download all scheduled new sources" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:328 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:328 msgid "No internet connection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:329 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:329 msgid "Cannot download news as no internet connection is active" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:278 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:193 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:278 msgid "Recipes" msgstr "Zdroje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:194 msgid "Download all scheduled recipes at once" msgstr "Stáhnout všechny připravené zdroje najednou" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:195 msgid "Download &all scheduled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:196 msgid "blurb" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:197 msgid "&Schedule for download:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:198 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:208 msgid "Every " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:199 msgid "day" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:200 msgid "Monday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:201 msgid "Tuesday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:202 msgid "Wednesday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:203 msgid "Thursday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:204 msgid "Friday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:205 msgid "Saturday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:206 msgid "Sunday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:207 msgid "at" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:209 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:210 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:210 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:222 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:263 msgid " days" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:211 msgid "&Account" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:215 msgid "For the scheduling to work, you must leave calibre running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:216 msgid "&Schedule" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:217 msgid "Add &title as tag" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:218 msgid "&Extra tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:219 msgid "&Advanced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:220 msgid "&Download now" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:221 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:223 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:223 msgid "Delete downloaded news older than " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:39 msgid "Negate" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:113 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:113 msgid "Advanced Search" msgstr "Rozšířené vyhledávání" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:114 msgid "Find entries that have..." msgstr "Najít položky, které obsahují ....." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:115 msgid "&All these words:" msgstr "VÅ¡echn&a tato slova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:116 msgid "This exact &phrase:" msgstr "Tuto frázi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:117 msgid "&One or more of these words:" msgstr "Kterékoliv z tÄ›chto slov" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:118 msgid "But dont show entries that have..." msgstr "Ale nezobrazovat položky, které mají...." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:119 msgid "Any of these &unwanted words:" msgstr "NÄ›které z tÄ›chto slov:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:124 msgid " " msgstr " " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:125 msgid "" "See the User Manual for more help" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:80 msgid "Authors" msgstr "AutoÅ™i" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:111 msgid "Publishers" msgstr "Vydavatelé" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:109 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:114 msgid " (not on any book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:166 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:153 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:153 msgid "User Categories Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:154 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:154 msgid "A&vailable items" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:155 msgid "Apply tags to current tag category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:157 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:157 msgid "A&pplied items" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:158 msgid "Unapply (remove) tag from current tag category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:160 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:160 msgid "Category name: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:161 msgid "Select a category to edit" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:162 msgid "Delete this selected tag category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:164 msgid "Enter a new category name. Select the kind before adding it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:165 msgid "Add the new category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:167 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:167 msgid "Category filter: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:168 msgid "Select the content kind of the new category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor.py:69 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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:127 msgid "Apply tag to current book" msgstr "aplikovat tag na aktuální knihu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:129 msgid "A&pplied tags" msgstr "&Aplikované tagy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:130 msgid "Unapply (remove) tag from current book" msgstr "Odstranit tag z aktuální knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:132 msgid "&Add tag:" msgstr "&PÅ™idat tag:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:133 +#: /home/kovid/work/trunk/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." @@ -6829,191 +6975,191 @@ msgstr "" "Pokud tag, který hledáte není v seznamu dostupných tagů. můžete ho tu " "pÅ™idat. Je možné zadat více tagů oddÄ›lených Äárkami." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:134 msgid "Add tag to available tags and apply it to current book" msgstr "PÅ™idat tag do seznamu dostupných tagů a aplikovat na aktuální knihu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:20 msgid "%s (was %s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:70 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:500 msgid "Item is blank" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:501 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:91 msgid "No item selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:92 msgid "You must select one item from the list of Available items." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:101 msgid "No items selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:102 msgid "You must select at least one items from the list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:106 msgid "Are you certain you want to delete the following items?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:72 msgid "Category Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:73 msgid "Items in use" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:74 msgid "" "Delete item from database. This will unapply the item from all books and " "then remove it from the database." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:76 msgid "Rename the item in every book where it is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 msgid "Ctrl+S" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/test_email_ui.py:51 msgid "Test email settings" msgstr "Otestovat nastavení emailu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/test_email_ui.py:52 msgid "Send test mail from %s to:" msgstr "Poslat testovací mail od %s pro:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/test_email_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:115 msgid "&Test" msgstr "&Test" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:127 msgid "No recipe selected" msgstr "Není vybrán žádný zdroj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:132 msgid "The attached file: %s is a recipe to download %s." msgstr "PÅ™ipojený soubor: %s je recept na stažení %s." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:133 msgid "Recipe for " msgstr "Zdroj pro " -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:150 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:255 msgid "Switch to Advanced mode" msgstr "PÅ™epnout do pokroÄilého režimu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:156 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:164 msgid "Switch to Basic mode" msgstr "PÅ™epnout do základního režimu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:174 msgid "Feed must have a title" msgstr "Zdroj musí mít název" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:175 msgid "The feed must have a title" msgstr "Zdroj musí mít název" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:179 msgid "Feed must have a URL" msgstr "Zdroj musí mít URL" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:180 msgid "The feed %s must have a URL" msgstr "Zdroj %s musí mít URL" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:185 msgid "Already exists" msgstr "Už existuje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:186 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:186 msgid "This feed has already been added to the recipe" msgstr "Tento RSS kanál již byl mezi zdroje pÅ™idán" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:227 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:236 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:286 msgid "Invalid input" msgstr "Neplatný vstup" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:228 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:237 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:287 msgid "

    Could not create recipe. Error:
    %s" msgstr "

    Nebylo možné vytvořit zdroj. Chyba:
    %s" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:241 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:263 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:290 msgid "Replace recipe?" msgstr "Nahradit zdroj?" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:242 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:264 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:291 msgid "A custom recipe named %s already exists. Do you want to replace it?" msgstr "Zdroj s názvem %s již existuje. Chcete ho nahradit?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:257 msgid "Pick recipe" msgstr "Vyberte zdroj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:257 msgid "Pick the recipe to customize" msgstr "Vyberte zdroj, který chcete upravit" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:277 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:277 msgid "Choose a recipe file" msgstr "Vyberte soubor se zdrojem" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:248 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:248 msgid "Add custom news source" msgstr "PÅ™idat vlastní zdroj zpráv" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:249 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:249 msgid "Available user recipes" msgstr "Dostupné uživatelské zdroje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:250 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:250 msgid "Add/Update &recipe" msgstr "PÅ™idat/Aktualizavat &Zdroj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:251 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:251 msgid "&Remove recipe" msgstr "Odst&ranit zdroj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:252 msgid "&Share recipe" msgstr "&Sdílet zdroj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:253 msgid "Customize &builtin recipe" msgstr "Upravit vestavÄ›né zdroje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:254 msgid "&Load recipe from file" msgstr "NaÄíst zdroj ze &souboru" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:256 msgid "" "\n" +"

    Crear unha receita de " +"novas básica, engadindo canles RSS.
    Para a maioría das canles, " +"necesitará utilizar o \"Modo avanzado\" para unha configuración máis " +"detallada do proceso de adquisición de datos.

    " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:260 msgid "Recipe &title:" -msgstr "" +msgstr "&Título da receita:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:261 msgid "&Oldest article:" -msgstr "" +msgstr "Artigo máis &antigo:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:262 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:262 msgid "The oldest article to download" -msgstr "" +msgstr "O artigo máis antigo para descargar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:264 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:264 msgid "&Max. number of articles per feed:" -msgstr "" +msgstr "Número &máximo de artigos por canle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:265 msgid "Maximum number of articles to download per feed." -msgstr "" +msgstr "Número máximo de artigos para descargar por canle." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:266 msgid "Feeds in recipe" -msgstr "" +msgstr "Canles na receita" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:268 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:268 msgid "Remove feed from recipe" -msgstr "" +msgstr "Borrar canles da receita" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:271 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:274 msgid "Add feed to recipe" -msgstr "" +msgstr "Engadir canle á receita" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:272 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:272 msgid "&Feed title:" -msgstr "" +msgstr "Título da &canle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:273 msgid "Feed &URL:" -msgstr "" +msgstr "&URL da canle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:275 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:275 msgid "&Add feed" -msgstr "" +msgstr "&Engadir canle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:276 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:276 msgid "" "For help with writing advanced news recipes, please visit User Recipes" msgstr "" +"Se precisar axuda para escribir receitas de novas avanzadas, pode visitar Receitas do " +"usuario" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:277 msgid "Recipe source code (python)" -msgstr "" +msgstr "Código fonte das receitas (pytom)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:107 msgid "" "\n" @@ -7245,1736 +7658,1776 @@ msgid "" "expression on a few sample filenames. The group names for the various " "metadata entries are documented in tooltips.

    " msgstr "" +"\n" +"\n" +"

    Asigne un patrón de " +"expresión regular para intentar extraer metadatos de los nombres de " +"archivos.

    \n" +"

    Hay una referencia sobre la " +"sintaxis de las expresiones regulares disponible.

    \n" +"

    Use a característica de " +"Proba para probar a expresión " +"regular sobre un pequeno conxunto de nomes de ficheiro. Os nomes dos grupos " +"de varias entradas de metadatos están documentadas nas " +"axudas.

    " -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:114 msgid "Regular &expression" -msgstr "" +msgstr "&Expresión regular" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:116 msgid "File &name:" -msgstr "" +msgstr "&Nome de ficheiro:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:118 msgid "Title:" -msgstr "" +msgstr "Título:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:119 msgid "Regular expression (?P<title>)" -msgstr "" +msgstr "Expresión regular (?P<title>)" -#: /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:83 -#: /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:97 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:99 msgid "No match" -msgstr "" +msgstr "Non hai coincidencias" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:121 msgid "Authors:" -msgstr "" +msgstr "Autoría:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:122 msgid "Regular expression (?P)" -msgstr "" +msgstr "Expresión regular (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:124 msgid "Series:" -msgstr "" +msgstr "Series:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:125 msgid "Regular expression (?P)" -msgstr "" +msgstr "Expresión regular (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:127 msgid "Series index:" -msgstr "" +msgstr "Ãndice de series:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:128 msgid "Regular expression (?P)" -msgstr "" +msgstr "Expresión regular (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:130 msgid "ISBN:" -msgstr "" +msgstr "ISBN:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:131 msgid "Regular expression (?P)" -msgstr "" +msgstr "Expresión regular (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:33 msgid "Similar books..." -msgstr "" +msgstr "Libros semellantes..." -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:66 msgid "Add books to library" -msgstr "" +msgstr "Engadir libros á biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:84 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:84 msgid "Manage collections" -msgstr "" +msgstr "Xestionar coleccións" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:165 msgid "Cover Browser" -msgstr "" +msgstr "Navegador de capas" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:183 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:183 msgid "Tag Browser" -msgstr "" +msgstr "Navegador de etiquetas" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:204 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:204 msgid "version" -msgstr "" +msgstr "versión" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:205 msgid "created by Kovid Goyal" -msgstr "" +msgstr "creado por Kovid Goyal" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:223 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:223 msgid "Connected " msgstr "Conectado " -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:232 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:232 msgid "Update found" -msgstr "" +msgstr "Actualización atopada" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:276 -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:285 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:276 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:285 msgid "Book Details" -msgstr "" +msgstr "Detalles do libro" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:60 msgid "Job" msgstr "Traballo" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:61 msgid "Status" msgstr "Estado" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:62 msgid "Progress" msgstr "Progreso" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:63 msgid "Running time" msgstr "Tempo en execución" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:75 msgid "There are %d running jobs:" -msgstr "" +msgstr "Hai %d tarefas a se executar:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:101 msgid "Unknown job" -msgstr "" +msgstr "Tarefa descoñecida" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:82 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:82 msgid "There are %d waiting jobs:" -msgstr "" +msgstr "Hai %d tarefas a agardaren" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:219 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:216 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:219 msgid "Cannot kill job" -msgstr "" +msgstr "Non se pode deter a tarefa" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:217 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:217 msgid "Cannot kill jobs that communicate with the device" -msgstr "" +msgstr "Non se poden deter as tarefas que comunican co dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:220 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:220 msgid "Job has already run" -msgstr "" +msgstr "A tarefa xa se está a executar" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:248 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:248 msgid "Unavailable" -msgstr "" +msgstr "Non dispoñíbel" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:280 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:280 msgid "Jobs:" -msgstr "Traballos:" +msgstr "Tarefas:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:298 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:298 msgid "Click to see list of active jobs." -msgstr "Prema para ver a lista dos traballos activos." +msgstr "Prema para ver a listaxe de tarefas activas" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:358 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:358 msgid " - Jobs" -msgstr " - Traballos" +msgstr " - Tarefas" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:33 msgid "Save single format to disk..." -msgstr "" +msgstr "Gardar un único formato no disco..." -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:76 msgid "Eject this device" -msgstr "" +msgstr "Extraer o dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:85 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:192 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:85 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:192 msgid "Library" -msgstr "" +msgstr "Biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:86 msgid "Show books in calibre library" -msgstr "" +msgstr "Amosar os libros na biblioteca do Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:87 msgid "Reader" -msgstr "" +msgstr "Lector" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:88 msgid "Show books in the main memory of the device" -msgstr "" +msgstr "Amosar os libros na memoria principal do dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:89 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:567 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:89 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:571 msgid "Card A" -msgstr "" +msgstr "Tarxeta A" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:90 msgid "Show books in storage card A" -msgstr "" +msgstr "Amosar os libros almacenados na tarxeta A" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:91 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:569 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:91 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:573 msgid "Card B" -msgstr "" +msgstr "Tarxeta B" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:92 msgid "Show books in storage card B" -msgstr "" +msgstr "Amosar os libros almacenados na tarxeta B" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:131 msgid "available" -msgstr "" +msgstr "dispoñíbel" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:162 msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" +"Só se amosarán os libros que coincidan coa busca gardada seleccionada" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:175 msgid "Advanced search" -msgstr "" +msgstr "Procura avanzada" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:184 msgid "" "

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

    Words separated by spaces are ANDed" msgstr "" +"

    Procura a listaxe de libros por título, autoría, editorial, etiquetas, " +"comentarios etc.

    Búscanse os libros que conteñan todas as palabras " +"separadas por espazos" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:191 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:191 msgid "Reset Quick Search" -msgstr "" +msgstr "Reiniciar a procura rápida" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:203 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:203 msgid "Copy current search text (instead of search name)" -msgstr "" +msgstr "Copiar o texto de procura actual (no canto do nome da procura)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:209 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:209 msgid "Save current search under the name shown in the box" -msgstr "" +msgstr "Gardar a procura actual baixo o nome amosado na caixa" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:215 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:215 msgid "Delete current saved search" -msgstr "" +msgstr "Borrar a actual procura gardada" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:302 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:451 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:108 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:302 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:467 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:108 msgid "%d books" -msgstr "" +msgstr "%d libros" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:334 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:305 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:468 +msgid "Choose calibre library to work with" +msgstr "Elixir a biblioteca do Calibre para traballar" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:336 msgid "Connect to folder" -msgstr "" +msgstr "Conectar ao cartafol" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:340 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:341 msgid "Connect to iTunes" +msgstr "Conectar ao iTunes" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:348 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:356 +msgid "Start Content Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:360 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:358 +msgid "Stop Content Server" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:369 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:375 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:377 msgid "Email to" -msgstr "" +msgstr "Correo a" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:377 msgid " and delete from library" -msgstr "" +msgstr " e borrar da biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:373 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:389 msgid "Setup email based sharing of books" -msgstr "" +msgstr "Actualizar o correo baseado na procura de libros" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:462 msgid "A" -msgstr "" +msgstr "A" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:462 msgid "Add books" msgstr "Engadir libros" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:463 msgid "E" -msgstr "" +msgstr "E" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:463 msgid "Edit metadata" -msgstr "" +msgstr "Editar os metadatos" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:464 msgid "C" -msgstr "" +msgstr "C" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:464 msgid "Convert books" -msgstr "" +msgstr "Converter os libros" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:465 msgid "V" -msgstr "" +msgstr "V" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:465 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:568 msgid "View" msgstr "Ver" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:450 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:466 msgid "Send to device" msgstr "Enviar ao dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:452 -msgid "Choose calibre library to work with" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:469 msgid "F" -msgstr "" +msgstr "F" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:469 msgid "Fetch news" msgstr "Obter novas" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:470 msgid "S" -msgstr "" +msgstr "S" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:470 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:551 msgid "Save to disk" msgstr "Gardar no disco" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:455 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:471 msgid "Connect/share" -msgstr "" +msgstr "Conectar / compartir" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:472 msgid "Del" msgstr "Supr" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:472 msgid "Remove books" msgstr "Quitar libros" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:473 msgid "Browse the calibre User Manual" -msgstr "" +msgstr "Navegar polo manual de usuario do Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:473 msgid "F1" -msgstr "" +msgstr "F1" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:473 msgid "Help" -msgstr "" +msgstr "Axuda" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:474 msgid "Ctrl+P" -msgstr "" +msgstr "Ctrl + P" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:476 msgid "M" -msgstr "" +msgstr "M" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:476 msgid "Merge book records" -msgstr "" +msgstr "Combinar os rexistros dos libros" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:461 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:477 msgid "Open containing folder" -msgstr "" +msgstr "Abrir o cartafol" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:479 msgid "Show book details" -msgstr "" +msgstr "Amosar os detalles do libro" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:481 msgid "Books by same author" -msgstr "" +msgstr "Libros coa mesma autoría" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:483 msgid "Books in this series" -msgstr "" +msgstr "Libros con esta serie" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:485 msgid "Books by this publisher" -msgstr "" +msgstr "Libros por editorial" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:487 msgid "Books with the same tags" -msgstr "" +msgstr "Libros coas mesmas etiquetas" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:484 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:501 msgid "Edit metadata individually" -msgstr "" +msgstr "Editar os metadatos indiviudalmente" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:504 msgid "Edit metadata in bulk" -msgstr "" +msgstr "Editar os metadatos en bloque" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:490 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:507 msgid "Download metadata and covers" -msgstr "" +msgstr "Descargar os metadatos e as capas" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:493 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:510 msgid "Download only metadata" -msgstr "" +msgstr "Descargar só os metadatos" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:495 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:512 msgid "Download only covers" -msgstr "" +msgstr "Descargar só as capas" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:498 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:515 msgid "Download only social metadata" -msgstr "" +msgstr "Descargar só os datos sociais" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:521 msgid "Merge into first selected book - delete others" -msgstr "" +msgstr "Unir no primeiro libro seleccionado - eliminar os máis" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:524 msgid "Merge into first selected book - keep others" -msgstr "" +msgstr "Unir no primeiro libro seleccionado - conservar os máis" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:532 msgid "Add books from a single directory" -msgstr "" +msgstr "Engadir libros dun único directorio" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:517 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:534 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 "" +"Engadir libros de directorios, incluídos os directorios dependentes (un " +"libro por directorio interpreta que todos os ficheiros de libros " +"electrónicos é o mesmo libro cun formato diferente)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:521 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:538 msgid "" "Add books from directories, including sub directories (Multiple books per " "directory, assumes every ebook file is a different book)" msgstr "" +"Engadir libros de directorios, incluídos os directorios dependentes " +"(múltiplos libros por directorio interpreta que cada ficheiro de libro " +"electrónico é un libro diferente)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:524 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:541 msgid "Add Empty book. (Book entry with no formats)" -msgstr "" +msgstr "Engadir un libro baleiro. (Unha entrada de libro sen formato)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:536 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:553 msgid "Save to disk in a single directory" msgstr "Gardar no disco nun único cartafol" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:374 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:555 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:385 msgid "Save only %s format to disk" -msgstr "" +msgstr "Gardar só o formato %s no disco" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:542 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:377 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:559 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:388 msgid "Save only %s format to disk in a single directory" -msgstr "" +msgstr "Gardar só o formato %s no disco nun único directorio" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:552 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:569 msgid "View specific format" -msgstr "" +msgstr "Ver o formato específico" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:558 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:575 msgid "Remove selected books" msgstr "Quitar os libros seleccionados" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:560 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:577 msgid "Remove files of a specific format from selected books.." -msgstr "" +msgstr "Borrar os ficheiros dun formato concreto dos libros seleccionados.." -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:563 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:580 msgid "Remove all formats from selected books, except..." -msgstr "" +msgstr "Borrar todos os formatos dos libros seleccionados agás..." -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:566 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:583 msgid "Remove covers from selected books" -msgstr "" +msgstr "Borrar as portadas dos libros seleccionados" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:586 msgid "Remove matching books from device" -msgstr "" +msgstr "Borrar os libros coincidentes do dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:603 msgid "Convert individually" -msgstr "" +msgstr "Converter individualmente" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:588 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:605 msgid "Bulk convert" -msgstr "" +msgstr "Converter en grupos" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:592 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:609 msgid "Create catalog of books in your calibre library" -msgstr "" +msgstr "Crear un catálogo de libros na biblioteca do Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:600 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:617 msgid "Run welcome wizard" -msgstr "" +msgstr "Lanzar o asistente de benvida" -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:284 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:284 msgid "N" -msgstr "" +msgstr "N" -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:284 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:284 msgid "Y" -msgstr "" +msgstr "S" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:66 msgid "On Device" -msgstr "" +msgstr "No dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:68 msgid "Size (MB)" -msgstr "" +msgstr "Tamaño (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:71 msgid "Rating" msgstr "Puntuación" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:324 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:324 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1084 msgid "Book %s of %s." -msgstr "" +msgstr "Libro %s de %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:679 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1182 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:398 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:679 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1182 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:398 msgid "The lookup/search name is \"{0}\"" -msgstr "" +msgstr "O nome de busca é \"{0}\"" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:886 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:886 msgid "In Library" -msgstr "" +msgstr "Na biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:890 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:890 msgid "Size" -msgstr "" +msgstr "Tamño" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1162 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1162 msgid "Marked for deletion" -msgstr "" +msgstr "Marcado para borrar" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1165 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1165 msgid "Double click to edit me

    " -msgstr "" +msgstr "Prema dúas veces para editar

    " -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:110 msgid "Hide column %s" -msgstr "" +msgstr "Ocultar a columna %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:115 msgid "Sort on %s" -msgstr "" +msgstr "Ordenar en %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:116 msgid "Ascending" -msgstr "" +msgstr "Ascendente" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:119 msgid "Descending" -msgstr "" +msgstr "Descendente" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:131 msgid "Change text alignment for %s" -msgstr "" +msgstr "Mudar o aliñamento do texto a %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:133 msgid "Left" -msgstr "" +msgstr "Esquerda" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:133 msgid "Right" -msgstr "" +msgstr "Dereita" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:134 msgid "Center" -msgstr "" +msgstr "Centrado" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:153 msgid "Show column" -msgstr "" +msgstr "Amosar columna" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:165 msgid "Restore default layout" -msgstr "" +msgstr "Restaurar a disposición por defecto" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:560 -msgid "Not allowed" -msgstr "Non permitido" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:561 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:567 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" +"Copiar directamente a un dispositivo non é compatíbel. Primeiro debe engadir " +"o libro á biblioteca do Calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/config_ui.py:47 msgid "Configure Viewer" -msgstr "" +msgstr "Configurar o visor" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/config_ui.py:48 msgid "Use white background" -msgstr "" +msgstr "Usar un fondo branco" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/config_ui.py:49 msgid "Hyphenate" -msgstr "" +msgstr "División de palabras" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/config_ui.py:50 msgid "Changes will only take effect after a restart." -msgstr "" +msgstr "As mudanzas só terán efecto despois de reiniciar<" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main.py:70 msgid " - LRF Viewer" -msgstr "" +msgstr " - Visor de LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main.py:160 msgid "No matches for the search phrase %s were found." -msgstr "" +msgstr "Sen coincidencias para a frase de busca %s." -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:440 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main.py:160 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:440 msgid "No matches found" -msgstr "" +msgstr "Non se atopou ningunha coincidencia" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:128 msgid "LRF Viewer" -msgstr "" +msgstr "Visor de LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:129 msgid "Parsing LRF file" -msgstr "" +msgstr "A analizar o visor de LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:130 msgid "LRF Viewer toolbar" -msgstr "" +msgstr "Barra de ferramentas do visor de LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:476 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:476 msgid "Next Page" -msgstr "" +msgstr "Páxina seguinte" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:477 msgid "Previous Page" -msgstr "" +msgstr "Páxina anterior" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:188 msgid "Back" 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:189 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:189 msgid "Forward" -msgstr "" +msgstr "Adiante" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:135 msgid "Next match" -msgstr "" +msgstr "Seguinte consulta" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:196 msgid "Open ebook" -msgstr "" +msgstr "Abrir libro electrónico" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:137 msgid "Configure" msgstr "Configurar" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:30 msgid "Use the library located at the specified path." -msgstr "" +msgstr "Usar da biblioteca localizada no camiño específico." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:32 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:32 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:34 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:34 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:36 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:36 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:595 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:598 msgid "Calibre Library" msgstr "Biblioteca do Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:86 msgid "Choose a location for your calibre e-book library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:95 msgid "Failed to create library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:96 msgid "Failed to create calibre library at: %r." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:184 msgid "Choose a location for your new calibre e-book library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:153 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:153 msgid "Initializing user interface..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:178 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:178 msgid "Repairing failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:179 msgid "The database repair failed. Starting with a new empty library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:226 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:193 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:226 msgid "Bad database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:194 msgid "Bad database location %r. calibre will now quit." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:207 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:207 msgid "Corrupted database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:208 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:208 msgid "" "Your calibre database appears to be corrupted. Do you want calibre to try " "and repair it automatically? If you say No, a new empty calibre library will " "be created." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:214 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:214 msgid "" "Repairing database. This can take a very long time for a large collection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:227 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:227 msgid "" "Bad database location %r. Will start with a new, empty calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:238 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:238 msgid "Starting %s: Loading books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:283 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:283 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:285 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:285 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:286 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:286 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:289 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:289 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:291 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:291 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:293 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:293 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:296 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:296 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:298 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:310 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:298 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:310 msgid "try deleting the file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:20 +#: /home/kovid/work/trunk/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:61 +#: /home/kovid/work/trunk/src/calibre/gui2/main_window.py:61 msgid "&Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/main_window.py:62 msgid "&Quit" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/main_window.py:90 msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/metadata.py:93 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/metadata.py:119 msgid "No matches found for this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:554 +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:254 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:554 msgid "Search" msgstr "Buscar" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:306 +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:306 msgid "The selected search will be permanently deleted. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:348 +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:348 msgid "Search (For Advanced Search click the button to the left)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:390 +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:390 msgid "Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:398 +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:398 msgid "Choose saved search or enter name for new saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:10 +#: /home/kovid/work/trunk/src/calibre/gui2/search_restriction_mixin.py:10 msgid "Restrict to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:55 +#: /home/kovid/work/trunk/src/calibre/gui2/search_restriction_mixin.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/search_restriction_mixin.py:55 msgid "(all books)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/search_restriction_mixin.py:49 msgid "({0} of {1})" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/search_restriction_mixin.py:57 msgid "({0} of all)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:79 msgid "Already assigned" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/trunk/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:69 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:69 msgid "&Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:135 msgid "Customize shortcuts for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:223 msgid "Keys" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:68 msgid "Frame" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:70 msgid "&Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:71 msgid "&Shortcut:" msgstr "" -#: /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/trunk/src/calibre/gui2/shortcuts_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:77 msgid "Click to change" msgstr "" -#: /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/trunk/src/calibre/gui2/shortcuts_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:79 msgid "Clear" msgstr "Limpar" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:76 msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:190 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:190 msgid "Rename '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:194 msgid "Edit sort for '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:199 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:199 msgid "Hide category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:202 msgid "Show category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:206 msgid "Show all categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:213 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:217 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:213 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:217 msgid "Manage %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:220 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:220 msgid "Manage Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:231 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:227 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:231 msgid "Manage User Categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:432 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:291 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:432 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:291 msgid "Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:510 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:510 msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:511 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:511 msgid "The saved search name %s is already used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:767 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:767 msgid "Sort by name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:767 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:767 msgid "Sort by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:768 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:768 msgid "Sort by average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:771 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:771 msgid "Set the sort order for entries in the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:777 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:777 msgid "Match all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:777 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:777 msgid "Match any" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:782 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:782 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:786 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:786 msgid "Manage &user categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:789 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:789 msgid "Add your own categories to the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:182 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:63 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:90 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:91 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:120 msgid "Queueing books for bulk conversion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:181 msgid "Queueing " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:239 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:239 msgid "Fetch news from " msgstr "Obter novas de " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:301 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:301 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:302 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:302 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:160 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:160 msgid "&Restore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:162 msgid "&Donate to support calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:166 msgid "&Eject connected device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:169 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:169 msgid "&Restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:217 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:217 msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:361 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:367 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:363 msgid "Cannot configure while there are running jobs." msgstr "Non se pode configurar mentres haxa traballos en execución." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:368 msgid "Cannot configure before calibre is restarted." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:404 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:415 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:405 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:416 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:457 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:468 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:496 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:458 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:469 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:471 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:482 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:486 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:497 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:526 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:537 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. " "Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:552 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:563 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Hai traballos en activo. Está seguro de querer saír?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:555 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:566 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:559 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:570 msgid "WARNING: Active jobs" msgstr "Aviso: traballos en activo" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:612 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:625 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/update.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/update.py:56 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/update.py:57 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 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:43 msgid "Edit bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:43 msgid "New title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:52 msgid "Export Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:54 msgid "Saved Bookmarks (*.pickle)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:62 msgid "Import Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:62 msgid "Pickled Bookmarks (*.pickle)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:89 msgid "Name" msgstr "Nome" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 msgid "Bookmark Manager" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 msgid "Actions" msgstr "Accións" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 msgid "Edit" msgstr "Editar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 msgid "Delete" msgstr "Borrar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 msgid "Reset" msgstr "Restaurar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 msgid "Export" msgstr "Exportar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 msgid "Import" msgstr "Importar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:155 msgid "&Font options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:157 msgid "&Sans family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:158 msgid "&Monospace family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:168 msgid " px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:164 msgid "Serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:165 msgid "Sans-serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:175 msgid "&General" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:177 msgid "&Keyboard shortcuts" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/dictionary.py:53 msgid "No results found for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:35 msgid "Options to customize the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:675 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:675 msgid "Remember last used window size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:81 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:46 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:46 msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:48 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:49 msgid "Hyphenate text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:51 msgid "Default language for hyphenation rules" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:53 msgid "Font options" msgstr "Opcións de tipo de letra" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:55 msgid "The serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:57 msgid "The sans-serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:59 msgid "The monospaced font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:60 msgid "The standard font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:61 msgid "The monospaced font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:62 msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:452 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:452 msgid "&Lookup in dictionary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:455 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:455 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:467 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:467 msgid "Next Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:468 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:468 msgid "Previous Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:470 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:470 msgid "Document Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:471 msgid "Document End" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:473 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:473 msgid "Section Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:474 msgid "Section End" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:36 msgid "Scroll down" msgstr "Desprazar cara a abaixo" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:39 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:39 msgid "Scroll up" msgstr "Desprazar cara a arriba" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:42 msgid "Scroll left" msgstr "Desprazar cara á esquerda" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:45 msgid "Scroll right" msgstr "Desprazar cara á dereita" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:115 msgid "Book format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:191 +#: /home/kovid/work/trunk/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:199 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:199 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:268 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:268 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:299 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:299 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:398 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:398 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:399 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:399 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:418 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:418 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:418 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:418 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:441 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:441 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:478 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:478 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:514 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:514 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:543 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:543 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:578 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:578 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:586 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:586 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:587 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:587 msgid "

    This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:591 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:591 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:665 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:665 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:672 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:672 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:677 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:677 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:683 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:683 msgid "" "%prog [options] file\n" "\n" "View an ebook.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:184 msgid "E-book Viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:185 msgid "Close dictionary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:187 msgid "toolBar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:190 msgid "Next page" msgstr "Páxina seguinte" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:191 msgid "Previous page" msgstr "Páxina anterior" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:192 msgid "Font size larger" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:193 msgid "Font size smaller" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:197 msgid "Find next" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:198 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:198 msgid "Find next occurrence" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:199 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:199 msgid "F3" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:200 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:200 msgid "Copy to clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:202 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:202 msgid "Reference Mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:203 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:203 msgid "Bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:204 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:204 msgid "Toggle full screen" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:205 msgid "Print" msgstr "Imprimir" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:206 msgid "Find previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:207 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:207 msgid "Find previous occurrence" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:208 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:208 msgid "Shift+F3" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/printing.py:114 msgid "Print eBook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:238 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:238 msgid "Copy Image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:239 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:239 msgid "Paste Image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:364 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:364 msgid "Change Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:365 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:365 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:366 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:366 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:367 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:367 msgid "Swap Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:368 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:368 msgid "Title Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:838 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:838 msgid "Drag to resize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:870 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:870 msgid "Show" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:877 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:877 msgid "Hide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:367 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:370 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:371 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:374 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:373 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:376 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:450 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:453 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:467 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:469 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:470 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:521 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:524 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:522 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:525 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:533 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:536 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:587 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:590 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:665 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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/device_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/device_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/kindle_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/library_ui.py:50 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/device_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/kindle_ui.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/library_ui.py:51 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/device_ui.py:52 msgid "&Manufacturers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/device_ui.py:53 msgid "&Devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:44 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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:45 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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:46 msgid "" "

    User Manual

    A User Manual is also available online." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 +#: /home/kovid/work/trunk/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 " @@ -8983,150 +9436,150 @@ msgid "" "Amazon account." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/kindle_ui.py:45 msgid "&Kindle email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:52 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/library_ui.py:54 msgid "&Change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:37 msgid "Sending..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:130 msgid "Bad configuration" msgstr "Configuración errada" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:108 msgid "Send email &from:" msgstr "Enviar correos &desde:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:111 msgid "Mail &Server" msgstr "&Servidor de Correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:113 msgid "&Hostname:" msgstr "Nome do &host:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:115 msgid "&Port:" msgstr "&Porto:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:118 msgid "Your username on the mail server" msgstr "O seu nome de usuario/a no servidor de correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:120 msgid "Your password on the mail server" msgstr "O seu contrasinal no servidor de correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:121 msgid "&Show" msgstr "&Amosar" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:122 msgid "&Encryption:" msgstr "&Cifrado:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Use Gmail" msgstr "Usar Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "&Test email" msgstr "&Probar o correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 +#: /home/kovid/work/trunk/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 " @@ -9134,56 +9587,56 @@ msgid "" "server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/stanza_ui.py:45 msgid "Turn on the &content server" msgstr "Prender o servidor de &contidos" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:230 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:230 msgid "today" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:233 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:233 msgid "yesterday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:236 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:236 msgid "thismonth" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:239 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:240 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:239 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:240 msgid "daysago" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:398 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:408 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:398 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:408 msgid "no" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:398 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:408 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:398 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:408 msgid "unchecked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:401 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:411 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:401 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:411 msgid "checked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:401 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:411 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:401 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:411 msgid "yes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:405 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:405 msgid "blank" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:405 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:405 msgid "empty" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:48 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -9192,7 +9645,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:58 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -9200,7 +9653,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:206 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:206 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -9209,7 +9662,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:216 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:216 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -9217,7 +9670,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:225 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:225 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -9225,7 +9678,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:234 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:234 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -9234,7 +9687,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:244 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -9242,7 +9695,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:253 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -9250,7 +9703,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:262 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:262 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -9258,14 +9711,14 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:530 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:530 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:537 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:537 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 " @@ -9274,14 +9727,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:547 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:553 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:553 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -9290,28 +9743,28 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:561 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:561 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:568 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:568 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:575 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:575 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:582 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:582 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -9320,7 +9773,7 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:589 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:589 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -9330,27 +9783,27 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:596 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:596 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:41 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:41 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:120 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:120 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:128 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:128 msgid "" "The fields to display when listing books in the database. Should be a comma " "separated list of fields.\n" @@ -9359,55 +9812,55 @@ msgid "" "fields. Only has effect in the text output format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:135 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:135 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:137 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:137 msgid "Sort results in ascending order" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:139 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:139 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:141 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:141 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:142 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:142 msgid "The string used to separate fields. Default is a space." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:143 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:143 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:165 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:165 msgid "Invalid fields. Available fields:" msgstr "Campos non válidos. Campos dispoñíbeis:" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:172 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:172 msgid "Invalid sort field. Available fields:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:244 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:244 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:267 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:267 msgid "" "%prog add [options] file1 file2 file3 ...\n" "\n" @@ -9416,43 +9869,43 @@ msgid "" "the directory related options below.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:276 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:276 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:278 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:278 msgid "Process directories recursively" msgstr "Procesar os directorios recursivamente" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:280 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:280 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:282 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:282 msgid "Add an empty book (a book with no formats)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:284 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:284 msgid "Set the title of the added empty book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:286 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:286 msgid "Set the authors of the added empty book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:288 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:288 msgid "Set the ISBN of the added empty book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:313 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:313 msgid "You must specify at least one file to add" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:329 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:329 msgid "" "%prog remove ids\n" "\n" @@ -9461,11 +9914,11 @@ msgid "" "command). For example, 23,34,57-85\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:344 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:344 msgid "You must specify at least one book to remove" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:363 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:363 msgid "" "%prog add_format [options] id ebook_file\n" "\n" @@ -9474,15 +9927,15 @@ msgid "" "already exists, it is replaced.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:378 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:378 msgid "You must specify an id and an ebook file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:383 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:383 msgid "ebook file must have an extension" msgstr "O ficheiro de libro electrónico debe ter unha extensión" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:391 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:391 msgid "" "\n" "%prog remove_format [options] id fmt\n" @@ -9492,11 +9945,11 @@ msgid "" "EPUB. If the logical book does not have fmt available, do nothing.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:408 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:408 msgid "You must specify an id and a format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:426 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:426 msgid "" "\n" "%prog show_metadata [options] id\n" @@ -9506,15 +9959,15 @@ msgid "" "id is an id number from the list command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:434 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:434 msgid "Print metadata in OPF form (XML)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:443 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:443 msgid "You must specify an id" msgstr "Debe especificar un id" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:456 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:456 msgid "" "\n" "%prog set_metadata [options] id /path/to/metadata.opf\n" @@ -9527,11 +9980,11 @@ msgid "" "show_metadata command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:472 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:472 msgid "You must specify an id and a metadata file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:492 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:492 msgid "" "%prog export [options] ids\n" "\n" @@ -9542,27 +9995,27 @@ msgid "" "an opf file). You can get id numbers from the list command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:500 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:500 msgid "Export all books in database, ignoring the list of ids." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:502 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:502 msgid "Export books to the specified directory. Default is" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:504 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:504 msgid "Export all books into a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:511 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:511 msgid "Specifying this switch will turn this behavior off." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:534 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:534 msgid "You must specify some ids or the %s option" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:547 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:547 msgid "" "%prog add_custom_column [options] label name datatype\n" "\n" @@ -9573,23 +10026,23 @@ msgid "" "datatype is one of: {0}\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:556 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:556 msgid "" "This column stores tag like data (i.e. multiple comma separated values). " "Only applies if datatype is text." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:560 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:560 msgid "" "A dictionary of options to customize how the data in this column will be " "interpreted." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:573 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:573 msgid "You must specify label, name and datatype" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:631 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:631 msgid "" "\n" " %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" @@ -9600,30 +10053,30 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:645 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:645 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:649 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:649 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:655 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:505 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:655 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:505 msgid "Show detailed output information. Useful for debugging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:668 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:668 msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:710 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:710 msgid "" "\n" " %prog set_custom [options] column id value\n" @@ -9635,17 +10088,17 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:721 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:721 msgid "" "If the column stores multiple values, append the specified values to the " "existing ones, instead of replacing them." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:732 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:732 msgid "Error: You must specify a field name, id and value" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:751 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:751 msgid "" "\n" " %prog custom_columns [options]\n" @@ -9654,19 +10107,19 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:758 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:758 msgid "Show details for each column." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:770 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:770 msgid "You will lose all data in the column: %r. Are you sure (y/n)? " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:772 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:772 msgid "y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:778 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:778 msgid "" "\n" " %prog remove_custom_column [options] label\n" @@ -9676,15 +10129,15 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:786 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:786 msgid "Do not ask for confirmation" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:796 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:796 msgid "Error: You must specify a column label" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:809 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:809 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -9696,123 +10149,123 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:71 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:71 msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:565 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:569 msgid "Main" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1790 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1799 msgid "

    Migrating old database to ebook library in %s

    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1819 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1828 msgid "Copying %s" msgstr "A copiar %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1836 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1845 msgid "Compacting database" msgstr "A compactar a base de datos" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1929 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1938 msgid "Checking SQL integrity..." msgstr "A comprobar a integridade SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1970 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1979 msgid "Checking for missing files." msgstr "A comprobar os ficheiros perdidos." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1992 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:2001 msgid "Checked id" msgstr "id comprobada" -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:122 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:122 msgid "Ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:24 msgid "The title" msgstr "O título" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:25 msgid "The authors" msgstr "Os/as autores/as" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:28 msgid "The tags" msgstr "As etiquetas" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:29 msgid "The series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:30 msgid "" "The series number. To get leading zeros use {series_index:0>3s} or " "{series_index:>3s} for leading spaces" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:33 msgid "The rating" msgstr "A nota" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:34 msgid "The ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:35 msgid "The publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:36 msgid "The date" msgstr "A data" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:37 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:37 msgid "The published date" msgstr "Data de publicación" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:38 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:38 msgid "The calibre internal id" msgstr "O id interno de Calibre" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:48 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:48 msgid "Options to control saving to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:54 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:54 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:57 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:57 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:60 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:60 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:63 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:63 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:66 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:66 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 " @@ -9820,7 +10273,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:71 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:71 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 " @@ -9828,7 +10281,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:78 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:78 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -9836,507 +10289,510 @@ msgid "" "saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:84 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:84 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:87 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:87 msgid "Convert paths to lowercase." msgstr "Converter as traxectorias a minúsculas." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:89 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:89 msgid "Replace whitespace with underscores." msgstr "Substituír os espazos por suliñados." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:258 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:263 msgid "Requested formats not available" msgstr "Os formatos requiridos non están dispoñíbeis" -#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:21 +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:21 msgid "Settings to control the calibre content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:25 +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:25 msgid "The port on which to listen. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:27 +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:27 msgid "The server timeout in seconds. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:29 +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:29 msgid "The max number of worker threads to use. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:31 +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:31 msgid "Set a password to restrict access. By default access is unrestricted." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:33 +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:33 msgid "Username for access. By default, it is: %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:37 +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:37 msgid "The maximum size for displayed covers. Default is %default." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:39 +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:39 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/server/__init__.py:43 +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:43 msgid "" "Group items in categories such as author/tags by first letter when there are " "more than this number of items. Default: %default. Set to a large number to " "disable grouping." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:93 +#: /home/kovid/work/trunk/src/calibre/library/server/base.py:94 msgid "Password to access your calibre library. Username is " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:28 +#: /home/kovid/work/trunk/src/calibre/library/server/main.py:28 msgid "" "[options]\n" "\n" "Start the calibre content server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:30 +#: /home/kovid/work/trunk/src/calibre/library/server/main.py:30 msgid "Path to the library folder to serve with the content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:32 +#: /home/kovid/work/trunk/src/calibre/library/server/main.py:32 msgid "Write process PID to the specified file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:127 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:127 msgid "%d items" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:144 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:144 msgid "RATING: %s
    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:147 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:147 msgid "TAGS: %s
    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:151 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:151 msgid "SERIES: %s [%s]
    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:231 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:231 msgid "Books in your library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:237 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:237 msgid "By " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:238 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:238 msgid "Books sorted by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:549 msgid "Newest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:49 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:34 msgid "%sUsage%s: %s\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:78 msgid "Created by " msgstr "Creado por " -#: /home/kovid/work/calibre/src/calibre/utils/config.py:94 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:79 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:678 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:663 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:680 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:665 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:682 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:667 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:684 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:669 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:686 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:671 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:688 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:673 msgid "The language in which to display the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:690 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:675 msgid "The default output format for ebook conversions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:694 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:679 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:696 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:681 msgid "Read metadata from files" msgstr "Ler os metadatos dos ficheiros" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:698 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:683 msgid "The priority of worker processes" msgstr "A prioridade dos procesos do traballador" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:700 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:685 msgid "Swap author first and last names when reading metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:702 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:687 msgid "Add new formats to existing book records" msgstr "Engadir formatos novos aos rexistros de libros existentes" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:707 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:692 msgid "List of named saved searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:708 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:693 msgid "User-created tag browser categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:710 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:695 msgid "How and when calibre updates metadata on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." msgstr "A esperar..." -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:51 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:51 msgid "Stopped" msgstr "Detido" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:53 msgid "Finished" msgstr "Rematado" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "A traballar..." -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:95 msgid "Brazilian Portuguese" msgstr "Portugués (brasileiro)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:96 msgid "English (UK)" msgstr "Inglés (Reino Unido)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:97 msgid "Simplified Chinese" msgstr "Chinés (simplificado)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:98 msgid "Chinese (HK)" msgstr "Chinés (Hong Kong)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:99 msgid "Traditional Chinese" msgstr "Chinés (tradicional)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:100 msgid "English" msgstr "Inglés" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:101 msgid "English (Australia)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:102 msgid "English (New Zealand)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:103 msgid "English (Canada)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:104 msgid "English (India)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:105 msgid "English (Thailand)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:106 msgid "English (Cyprus)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:107 msgid "English (Pakistan)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:108 msgid "English (Israel)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:109 msgid "English (Singapore)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:110 msgid "English (Yemen)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:111 msgid "English (Ireland)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:112 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:112 msgid "English (China)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:113 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:113 msgid "Spanish (Paraguay)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:114 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:114 msgid "German (AT)" msgstr "Alemán (Austria)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:115 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:115 msgid "Dutch (NL)" msgstr "Flamenco (Holanda)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:116 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:116 msgid "Dutch (BE)" msgstr "Flamenco (Bélxica)" -#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 +#: /home/kovid/work/trunk/src/calibre/utils/sftp.py:53 msgid "URL must have the scheme sftp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:57 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/utils/sftp.py:68 msgid "Failed to negotiate SSH session: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71 +#: /home/kovid/work/trunk/src/calibre/utils/sftp.py:71 msgid "Failed to authenticate with server: %s" msgstr "Erro ao se autenticar no servidor: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/trunk/src/calibre/utils/smtp.py:234 msgid "Control email delivery" msgstr "Controlar o envío de correo" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:118 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:140 +#: /home/kovid/work/trunk/src/calibre/web/feeds/__init__.py:118 +msgid "Unknown section" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/web/feeds/__init__.py:140 msgid "Unknown feed" msgstr "Fluxo descoñecido" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:158 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:183 +#: /home/kovid/work/trunk/src/calibre/web/feeds/__init__.py:158 +#: /home/kovid/work/trunk/src/calibre/web/feeds/__init__.py:183 msgid "Untitled article" msgstr "Artigo sen título" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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:44 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:46 msgid "Unknown News Source" msgstr "Fonte de Novas Descoñecida" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:609 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:708 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:708 msgid "Download finished" msgstr "Rematou a descarga" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:710 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:710 msgid "Failed to download the following articles:" msgstr "Produciuse un fallo na descarga dos seguintes artigos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:716 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:716 msgid "Failed to download parts of the following articles:" msgstr "Produciuse un fallo na descarga de partes do seguintes artigos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:718 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:718 msgid " from " msgstr " desde " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:720 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:720 msgid "\tFailed links:" msgstr "\tLigazóns erradas:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:809 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:809 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:830 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:830 msgid "Fetching feeds..." msgstr "A obter os fluxos..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:835 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:841 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:841 msgid "Trying to download cover..." msgstr "Tratando de descargar a capa..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:843 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:843 msgid "Generating masthead..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:924 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:924 msgid "Starting download [%d thread(s)]..." msgstr "A comezar a descarga [%d fío(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:940 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:940 msgid "Feeds downloaded to %s" msgstr "Fluxos descargados en %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:950 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:950 msgid "Could not download cover: %s" msgstr "Non se puido descargar a capa: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:962 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:962 msgid "Downloading cover from %s" msgstr "A descargar a capa desde %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1002 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1003 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1192 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1172 msgid "Untitled Article" msgstr "Artigo sen Título" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1263 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1243 msgid "Article downloaded: %s" msgstr "Artigo descargado: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1274 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1254 msgid "Article download failed: %s" msgstr "Erro ao descargar o artigo: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1291 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1271 msgid "Fetching feed" msgstr "A obter o fluxo" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1438 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1418 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1454 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1434 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/collection.py:47 msgid "You" 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:193 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/model.py:73 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/model.py:82 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/model.py:193 msgid "Scheduled" 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:194 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/model.py:84 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/model.py:194 msgid "Custom" msgstr "Personalizado" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:482 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:485 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:488 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:491 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:491 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:494 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:494 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:496 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:496 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:498 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:500 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:500 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:502 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:502 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 " @@ -10345,7 +10801,7 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:504 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:504 msgid "Do not download CSS stylesheets." msgstr "Non descargar follas de estilo CSS" @@ -10436,3 +10892,6 @@ msgstr "Non descargar follas de estilo CSS" #~ msgid " " #~ msgstr " " + +#~ msgid "Communicate with the Promedia eBook reader" +#~ msgstr "Conectar co lector Promedia eBook" diff --git a/src/calibre/translations/he.po b/src/calibre/translations/he.po index 5c0b4c8c56..f12f6e1ca2 100644 --- a/src/calibre/translations/he.po +++ b/src/calibre/translations/he.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-07-20 22:48+0000\n" -"PO-Revision-Date: 2010-07-22 21:18+0000\n" +"POT-Creation-Date: 2010-08-07 01:39+0000\n" +"PO-Revision-Date: 2010-08-07 01:24+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-07-23 04:04+0000\n" +"X-Launchpad-Export-Date: 2010-08-08 03:41+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,12 +27,12 @@ msgstr "×œ× ×¢×•×©×” דבר" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:499 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:398 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:506 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:405 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:428 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:402 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:335 @@ -40,16 +40,16 @@ 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:235 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:278 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:281 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:236 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:282 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:317 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:332 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -100,44 +100,44 @@ msgstr "×œ× ×¢×•×©×” דבר" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:240 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:234 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:236 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:814 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:829 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:855 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1149 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:355 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:367 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1039 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1640 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1642 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:356 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:368 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:976 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1045 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1646 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1648 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1770 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:199 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 @@ -252,11 +252,11 @@ msgstr "" "ציין ×ת סוג הקידוד של קובץ המקור. בחירה זו ×ª×‘×™× ×œ×‘×™×˜×•×œ הגדרת הקידוד מהקובץ. " "שימושי ×œ×ž×¡×ž×›×™× ×©×ין ×‘×”× ×”×’×“×¨×ª קידוד ×ו הגדרות קידוד שגויות" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:237 msgid "Conversion Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:251 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." @@ -277,7 +277,7 @@ msgstr "" "מקור המסמך." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:412 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:414 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "פרופיל ×–×” מיועד עבור SONY PRS line ×ž×“×’×ž×™× 500/505/600/700 ועוד." @@ -287,62 +287,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "פרופיל ×–×” מיועד עבור SONY PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:447 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:449 msgid "This profile is intended for the SONY PRS-900." msgstr "פרופיל ×–×” מיועד עבור SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:477 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 msgid "This profile is intended for the Microsoft Reader." msgstr "פרופיל ×–×” מיועד עבור Microsoft Reader" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:490 msgid "This profile is intended for the Mobipocket books." msgstr "פרופיל ×–×” מיועד עבור Mobipocket books." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "פרופיל ×–×” מיועד עבור Hanlin V3 ×•×ž×›×©×™×¨×™× ×“×•×ž×™×." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "פרופיל ×–×” מיועד עבור Hanlin V5 ×•×ž×›×©×™×¨×™× ×“×•×ž×™×" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:521 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:523 msgid "This profile is intended for the Cybook G3." msgstr "פרופיל ×–×” מיועד עבור Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:534 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 msgid "This profile is intended for the Cybook Opus." msgstr "פרופיל ×–×” מיועד עבור Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:545 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:547 msgid "This profile is intended for the Amazon Kindle." msgstr "פרופיל ×–×” מיועד עבור Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:580 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:584 msgid "This profile is intended for the Irex Illiad." msgstr "פרופיל ×–×” מיועד עבור Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:593 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 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:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:607 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:611 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "פרופיל ×–×” מיועד עבור IRex Digital Reader 800" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:621 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:625 msgid "This profile is intended for the B&N Nook." msgstr "פרופיל ×–×” מיועד עבור B&N Nook." @@ -359,24 +359,24 @@ msgstr "" "פרופיל ×–×” מנסה לת ברירות מחדל סבירות ×•×”×•× ×™×¢×™×œ במידה ו×תה רוצה להפיק מסמך " "שנועד ×œ×”×§×¨× ×‘×ž×—×©×‘ ×ו על מגוון מכשירי×." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:259 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "מיועד ל-iPad ×•×ž×›×©×™×¨×™× ×“×•×ž×™× ×¢× ×¨×–×•×œ×•×¦×™×” של 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 msgid "This profile is intended for the Kobo Reader." msgstr "פרופיל ×–×” מיועד ל-Kobo Reader" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:438 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440 msgid "This profile is intended for the SONY PRS-300." msgstr "פרופיל ×–×” מיועד למכשיר SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:456 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:458 msgid "This profile is intended for the 5-inch JetBook." msgstr "פרופיל ×–×” מיועד למכשיר 5-inch JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:465 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -384,39 +384,39 @@ msgstr "" "פרופיל ×–×” מיועד למכשיר מקו SONY PRS. ×”- 500/505/700 וכדומה בתצוגה " "×ופקית.שימושי במיוחד עבור קומיקס." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:566 msgid "This profile is intended for the Amazon Kindle DX." msgstr "פרופיל ×–×” מיועד למכשיר Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Installed plugins" msgstr "×ª×•×¡×¤×™× ×ž×•×ª×§× ×™×" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Mapping for filetype plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 msgid "Local plugin customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 msgid "Disabled plugins" msgstr "×ª×•×¡×¤×™× ×ž×‘×•×˜×œ×™×" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:37 msgid "Enabled plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:84 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:85 msgid "No valid plugin found in " msgstr "×œ× × ×ž×¦×ו ×ª×•×¡×¤×™× ×ª×§×™× ×™× ×‘- " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:478 msgid "Initialization of plugin %s failed with traceback:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 msgid "" " %prog options\n" "\n" @@ -424,29 +424,29 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:507 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 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:509 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:519 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "הסר רכיב מות×× ×œ×¤×™ ש×. ×œ×œ× ×”×©×¤×¢×” על ×”×¨×›×™×‘×™× ×”×ž×•×ª×§× ×™× ×‘×”×ª×§× ×” ר×שונית." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:521 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." msgstr "הת×מת רכיב. ציין ×©× ×¨×›×™×‘ ומחרוזת הת×מה ×ž×•×¤×¨×“×™× ×¢×œ ידי פסיק." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:523 msgid "List all installed plugins" msgstr "הצג ×ת כל ×”×¨×›×™×‘×™× ×”×ž×•×ª×§× ×™×." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:515 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:525 msgid "Enable the named plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:527 msgid "Disable the named plugin" msgstr "" @@ -454,13 +454,13 @@ msgstr "" msgid "Communicate with Android phones." msgstr "מתקשר ×¢× ×˜×œ×¤×•×Ÿ Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:48 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/android/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:90 msgid "Communicate with S60 phones." msgstr "" @@ -514,13 +514,13 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2471 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:807 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:813 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:851 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 #: /home/kovid/work/calibre/src/calibre/library/database2.py:187 #: /home/kovid/work/calibre/src/calibre/library/database2.py:200 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1524 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1530 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 msgid "News" msgstr "חדשות" @@ -581,7 +581,7 @@ msgid "Use an arbitrary folder as a device." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:14 msgid "Device Interface" msgstr "ממשק המכשיר" @@ -611,15 +611,15 @@ msgstr "מחליף × ×ª×•× ×™× ×¢× Hanvon N520 eBook reader." msgid "Communicate with The Book reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:52 msgid "Communicate with the SpringDesign Alex eBook reader." msgstr "מתקשר ×¢× SpringDesign Alex eBook reader." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:67 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:68 msgid "Communicate with the Azbooka" msgstr "מתקשר ×¢× ×ž×›×©×™×¨ Azbooka" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:80 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:81 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "מחליף × ×ª×•× ×™× ×¢× Elonex EB 511 eBook reader." @@ -629,7 +629,7 @@ msgstr "מחליף × ×ª×•× ×™× ×¢× IRex Iliad eBook reader." #: /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:38 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:42 msgid "John Schember" msgstr "John Schember" @@ -669,53 +669,64 @@ msgstr "" msgid "Communicate with the Kobo Reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:51 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:54 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:57 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:159 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:64 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:139 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:56 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:59 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:161 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:136 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 msgid "Getting list of books on device..." msgstr "×§×•×¨× ×ת רשימת ×”×¡×¤×¨×™× ×ž×”×”×ª×§×Ÿ..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:219 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:263 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:264 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:221 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:265 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:253 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 msgid "Removing books from device..." msgstr "מסיר ×¡×¤×¨×™× ×ž×”×ž×›×©×™×¨" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:269 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:278 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:283 msgid "Removing books from device metadata listing..." msgstr "מסיר ×¡×¤×¨×™× ×ž×¨×©×™×ž×ª ×”×¡×¤×¨×™× ×‘×ž×›×©×™×¨" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:279 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:313 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:210 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:240 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:281 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:247 msgid "Adding books to device metadata listing..." msgstr "מוסיף ×¡×¤×¨×™× ×œ×¨×©×™×ž×ª ×”×¡×¤×¨×™× ×‘×ž×›×©×™×¨" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:15 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:441 +msgid "Not Implemented" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:367 +msgid "" +"\".kobo\" files do not exist on the device as books instead, they are rows " +"in the sqlite database. Currently they cannot be exported or viewed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:35 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:37 msgid "Communicate with the Booq Avant" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:55 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:58 msgid "Communicate with the Sweex MM300" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:75 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:78 msgid "Communicate with the Pandigital Novel" msgstr "" @@ -757,7 +768,7 @@ msgid "" "device. Possibilities include: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:140 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:144 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "" @@ -778,47 +789,47 @@ msgstr "" msgid "Communicate with the iPapyrus reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:245 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "×œ× ×ž×¦×œ×™×— ×œ×ž×¦×•× ×ת כונן %s. נסה ל×תחל ×ת המכשיר." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:490 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500 msgid "Unable to detect the %s disk drive." msgstr "×œ× ×ž×¦×œ×™×— ×œ×ž×¦×•× ×ת כונן %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:583 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593 msgid "Could not find mount helper: %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:595 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." msgstr "×œ× ×ž×¦×œ×™×— ×œ×ž×¦×•× ×ת כונן %s. המעבד ×ž×™×¦× ×’×¨×¡×” נפרדת של SYSFS" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:603 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613 msgid "Unable to mount main memory (Error code: %d)" msgstr "×œ× ×ž×¦×œ×™×— להעלות זכרון ר×שי (קוד שגי××”: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:740 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752 msgid "The reader has no storage card in this slot." msgstr "למכשיר ×ין כרטיס זיכרון בחריץ." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754 msgid "Selected slot: %s is not supported." msgstr "החריץ הנבחר: %s ×œ× × ×ª×ž×š." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783 msgid "There is insufficient free space in main memory" msgstr "×ין מספיק ×ž×§×•× ×¤× ×•×™ על הזכרון הר×שי." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:777 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787 msgid "There is insufficient free space on the storage card" msgstr "×ין מספיק ×ž×§×•× ×¤× ×•×™ על כרטיס הזכרון." @@ -856,20 +867,20 @@ msgstr "תבנית לשליטה על ×פשרויות שמירת ספרי×." msgid "Extra customization" msgstr "הגדרות נוספות" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 msgid "Communicate with an eBook reader." msgstr "מחליף × ×ª×•× ×™× ×¢× eBook reader" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:57 msgid "Get device information..." msgstr "מקבל מידע ממכשיר..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:190 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:192 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:194 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:196 msgid "Transferring books to device..." msgstr "מעביר ×¡×¤×¨×™× ×œ×ž×›×©×™×¨" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:314 msgid "Sending metadata to device..." msgstr "שולח ×ž×˜× ×ª×’×™×•×ª למכשיר" @@ -957,22 +968,22 @@ msgstr "" msgid "Set font delta" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:178 msgid "Rendered %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:204 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:181 msgid "Failed %s" msgstr "%s נכשל" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:261 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:235 msgid "" "Failed to process comic: \n" "\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:253 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 " @@ -981,54 +992,54 @@ msgstr "" "מספר גווני ×פור להמרת התמונה. ברירת מחדל: %default. ×¢×¨×›×™× ×§×˜× ×™× ×ž-256 ×¢×œ×•×œ×™× " "×œ×’×¨×•× ×œ×ž×¨×™×—×” בקומיקס בפורמט EPUB." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:257 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "בטל נורמליזציה של ×ª×—×•× ×”×¦×‘×¢×™× (שיפור ניגודיות). ברירת מחדל: ל×" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "שמור על יחסי מידות התמונה. ברירת מחדל: מילוי המסך." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:262 msgid "Disable sharpening." msgstr "בטל חידוד התמונה." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:264 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:293 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:267 msgid "Don't split landscape images into two portrait images" msgstr "×ל תפצל תמונת \"נוף\" לשתי תמונות \"פורטרט\"" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:269 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:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:272 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:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "×פשר הורדת רעש בתמונה. עלול להגדיל בהרבה ×ת זמן העיבוד." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:305 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 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:309 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 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 " @@ -1036,16 +1047,16 @@ msgid "" msgstr "" "הפורמט ×ליו יומרו התמונות ב-eBook. ניתן לבדוק ×¤×•×¨×ž×˜×™× ×©×•× ×™× ×œ×ª×•×¦××” ×ופטימלית." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:313 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Apply no processing to the image" msgstr "×ל תפעיל עיבוד על התמונה." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "Do not convert the image to grayscale (black and white)" msgstr "×œ× ×œ×”×ž×™×¨ לגווני ×פור (המרה לשחור לבן)" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:463 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:437 msgid "Page" msgstr "עמוד" @@ -1827,7 +1838,7 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 @@ -1836,11 +1847,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:543 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:550 msgid "Title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 @@ -1848,18 +1859,18 @@ msgstr "" msgid "Author(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 #: /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:400 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 @@ -1871,9 +1882,9 @@ msgstr "" msgid "Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:408 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:409 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 @@ -1881,9 +1892,9 @@ msgstr "" msgid "Tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:410 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 @@ -1891,22 +1902,22 @@ msgstr "" msgid "Series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:412 msgid "Language" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:414 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:416 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 msgid "Published" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:418 msgid "Rights" msgstr "" @@ -2013,53 +2024,83 @@ msgstr "" msgid "No cover found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:15 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:27 msgid "Cover download" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:79 +msgid "Download covers from openlibrary.org" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:136 +msgid "ISBN: %s not found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:117 +msgid "Download covers from librarything.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 +msgid "LibraryThing.com timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:135 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 +msgid "LibraryThing.com server error. Try again later." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:50 msgid "Metadata download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 msgid "description/reviews" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 msgid "Download %s from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:155 msgid "Downloads metadata from Google Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:172 msgid "Downloads metadata from isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:184 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:200 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:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:210 msgid "Downloads social metadata from amazon.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:213 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:229 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" @@ -2093,24 +2134,10 @@ msgstr "" msgid "The publisher of the book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 -msgid "LibraryThing.com timed out. Try again later." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 -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:76 msgid " not found." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 -msgid "LibraryThing.com server error. Try again later." -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 msgid "" "\n" @@ -2405,7 +2432,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author" msgstr "" @@ -2520,7 +2547,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:200 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:194 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -2693,7 +2720,7 @@ msgid "Disable UI animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "" @@ -2705,7 +2732,7 @@ msgstr "" msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:397 msgid "Choose Files" msgstr "" @@ -2720,13 +2747,13 @@ msgid "User annotations generated from main library only" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:611 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:707 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:941 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1059 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:623 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:682 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:719 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1116 msgid "No books selected" msgstr "" @@ -2772,7 +2799,7 @@ msgid "Uploading books to device." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 msgid "Books" msgstr "" @@ -2838,137 +2865,142 @@ msgid "Failed to read metadata from the following" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 msgid "Add to library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:459 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1228 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1285 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:442 +msgid "" +"The following books are virtual and cannot be added to the calibre library:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 msgid "No book files found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:470 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:483 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:501 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:521 msgid "Cannot delete books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:522 msgid "No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:532 msgid "Main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:439 msgid "Storage Card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 msgid "Storage Card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:539 msgid "No books to delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:540 msgid "None of the selected books are on the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:612 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:578 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/actions.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:597 msgid "" "The selected books will be permanently deleted from your device. Are " "you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:610 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:622 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:638 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:642 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:654 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:666 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:655 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:667 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:659 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:595 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:962 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:681 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:718 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:730 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:742 msgid "Cannot merge books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:731 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:743 msgid "At least two books must be selected for merging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:747 msgid "" "All book formats and metadata from the selected books will be added to the " "first selected book.

    The second and subsequently selected " @@ -2976,7 +3008,7 @@ msgid "" "proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:746 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 msgid "" "All book formats and metadata from the selected books will be merged into " "the first selected book.

    After merger the second and " @@ -2986,99 +3018,111 @@ msgid "" "from your computer.

    Are you sure you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:770 msgid "" "You are about to merge more than 5 books. Are you sure you want to " "proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:924 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:927 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:566 +msgid "Not allowed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:934 +msgid "" +"You are tying to save files into the calibre library. This can cause " +"corruption of your library. Save to disk is meant to export files from your " +"calibre library elsewhere." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:968 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:912 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:969 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:920 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:976 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:977 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:921 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:999 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1016 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:964 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1021 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:965 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1022 msgid "" "No books to catalog\n" "Check exclude tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:975 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1032 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1035 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:979 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1036 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:995 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1052 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1066 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1058 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1115 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1087 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1144 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1321 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1209 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1266 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1274 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1218 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1275 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 " @@ -3086,11 +3130,11 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1227 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1284 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1322 msgid "%s has no available formats." msgstr "" @@ -3115,7 +3159,7 @@ msgid "The specified directory could not be processed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:804 msgid "No books" msgstr "" @@ -3186,7 +3230,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 @@ -3240,22 +3284,22 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 -#: /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:548 -#: /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:562 +#: /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:552 #: /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:566 -#: /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:610 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /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:570 +#: /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:614 #: /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:379 -#: /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:392 -#: /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:370 +#: /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:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 @@ -3494,8 +3538,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1487 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1505 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1493 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1511 msgid "Catalog" msgstr "" @@ -3931,38 +3975,38 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:111 msgid "Choose cover for " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118 msgid "Cannot read" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:119 msgid "You do not have permission to read the file: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:127 msgid "Error reading file" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 msgid "

    There was an error reading from file:
    " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 msgid " is not a valid picture" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /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:401 msgid "Book Cover" msgstr "" @@ -3971,28 +4015,28 @@ msgid "Use cover from &source file" 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:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 msgid "Change &cover image:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 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:172 -#: /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 msgid "&Title: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /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:363 msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 -#: /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:366 msgid "&Author(s): " msgstr "" @@ -4008,18 +4052,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 -#: /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:375 msgid "&Publisher: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /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:376 msgid "Ta&gs: " 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:169 -#: /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:377 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

    They can be any words or phrases, separated by commas." @@ -4027,7 +4071,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /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:380 msgid "&Series:" msgstr "" @@ -4035,13 +4079,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 -#: /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 +#: /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 "List of known series. You can add new series." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /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:387 msgid "Book " msgstr "" @@ -4540,231 +4584,231 @@ msgstr "" msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:162 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:278 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:289 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:299 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:308 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:313 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:369 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:379 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:413 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:419 msgid "Send to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:437 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:448 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:449 msgid "Send specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:485 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 msgid "Fetch annotations (experimental)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:603 msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:618 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:625 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:668 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:675 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 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/device.py:711 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:718 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:713 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:798 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:803 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:816 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:887 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:910 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1193 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:917 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1019 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1081 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:944 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:949 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1167 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1209 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:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1271 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1272 msgid "" "

    Cannot upload books to device there is no more free space available " msgstr "" @@ -4859,6 +4903,14 @@ msgstr "" msgid "The folder %s is not empty. Please choose an empty folder" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location selected" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 msgid "Choose your calibre library" msgstr "" @@ -5011,135 +5063,143 @@ msgstr "" msgid "Never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524 +msgid "Done" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525 +msgid "Confirmation dialogs have all been reset" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:530 msgid "System port selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:531 msgid "" "The value %d you have chosen for the content server port is a system " "port. Your operating system may not allow the server to run on this " "port. To be safe choose a port number larger than 1024." 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 "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:554 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:555 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:556 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:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 msgid "No valid plugin path" 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 "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:611 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:614 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:623 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:634 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:680 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:681 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:703 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:712 msgid "You must select a column to delete it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:717 msgid "The selected column is not a custom column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:718 #: /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/config/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:719 msgid "Do you really want to delete column %s and all its data?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:777 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:786 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:784 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:793 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:318 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:846 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:838 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:847 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:899 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:908 msgid "Must restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:900 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:909 msgid "" "The changes you made require that Calibre be restarted. Please restart as " "soon as practical." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:943 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:954 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:963 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:968 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:960 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:969 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 " @@ -5277,278 +5337,282 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:616 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 msgid "Preferences" 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:537 msgid "Show notification when &new version is available" 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:538 msgid "Download &social metadata (tags/ratings/etc.) by default" 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:539 msgid "&Overwrite author and title by default when fetching metadata" 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:540 msgid "Default network &timeout:" 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:541 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:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid " seconds" 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:543 msgid "Choose &language (requires restart):" 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:544 msgid "Normal" 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:545 msgid "High" 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:546 msgid "Low" 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:547 msgid "Job &priority:" 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:548 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 -msgid "Preferred &input format order:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 -msgid "Use &Roman numerals for series number" +msgid "Reset all disabled &confirmation dialogs" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 -msgid "Enable system &tray icon (needs restart)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 -msgid "Show ¬ifications in system tray" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 -msgid "Show &splash screen at startup" +msgid "Preferred &input format order:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 -msgid "Show cover &browser in a separate window (needs restart)" +msgid "Use &Roman numerals for series number" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 -msgid "Show &average ratings in the tags browser" +msgid "Enable system &tray icon (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 -msgid "Search as you type" +msgid "Show ¬ifications in system tray" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 -msgid "Automatically send downloaded &news to ebook reader" +msgid "Show &splash screen at startup" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 -msgid "&Delete news from library when it is automatically sent to reader" +msgid "Show cover &browser in a separate window (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 -msgid "&Number of covers to show in browse mode (needs restart):" +msgid "Show &average ratings in the tags browser" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 -msgid "Select visible &columns in library view" +msgid "Search as you type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +msgid "Automatically send downloaded &news to ebook reader" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 -msgid "Remove a user-defined column" +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:562 +msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 -msgid "Add a user-defined column" +msgid "Select visible &columns in library view" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 -msgid "Edit settings of a user-defined column" +msgid "Remove a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 -msgid "Use internal &viewer for:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +msgid "Add a user-defined column" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 -msgid "User Interface &layout (needs restart):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 -msgid "Disable all animations. Useful if you have a slow/old computer." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 -msgid "Disable &animations" +msgid "Edit settings of a user-defined column" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 -msgid "Show &donate button (restart)" +msgid "Use internal &viewer for:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 -msgid "&Toolbar" +msgid "User Interface &layout (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 -msgid "&Icon size:" +msgid "Disable all animations. Useful if you have a slow/old computer." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 -msgid "Show &text under icons:" +msgid "Disable &animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 -msgid "Add an email address to which to send books" +msgid "Show &donate button (restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 -msgid "&Add email" +msgid "&Toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 -msgid "Make &default" +msgid "&Icon size:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 -msgid "&Remove email" +msgid "Show &text under icons:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 +msgid "Add an email address to which to send books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +msgid "&Add email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 +msgid "Make &default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 +msgid "&Remove email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 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:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 #: /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:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 #: /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:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 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:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 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:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 msgid "Max. OPDS &ungrouped items:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 #: /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 " @@ -5559,33 +5623,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:604 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 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:605 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:610 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "&Add" msgstr "" @@ -5626,7 +5690,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Date" msgstr "" @@ -5674,41 +5738,41 @@ msgstr "" msgid "Yes/No" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 msgid "No column selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:70 msgid "No column has been selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:74 msgid "Selected column is not a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:105 msgid "No lookup name was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:107 msgid "" "The label must contain only letters, digits and underscores, and start with " "a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:116 msgid "No column heading was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:122 msgid "The lookup name %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:132 msgid "The heading %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:134 msgid "" "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" @@ -5836,7 +5900,7 @@ msgstr "" msgid "Delete from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author sort" msgstr "" @@ -5955,21 +6019,21 @@ msgid "Author s&ort: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 -#: /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:368 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:162 -#: /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:371 msgid "&Rating:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 -#: /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 +#: /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 msgid "Rating of this book. 0-5 stars" msgstr "" @@ -5978,7 +6042,7 @@ msgid "No change" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 -#: /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:374 msgid " stars" msgstr "" @@ -5988,8 +6052,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 -#: /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 +#: /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 "Open Tag Editor" msgstr "" @@ -6029,210 +6093,237 @@ msgid "Remove &stored conversion settings for the selected books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 msgid "&Basic metadata" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:94 +msgid "Last modified: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:135 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:150 +msgid "Specify title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 +msgid "You must specify a title and author before generating a cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:223 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:234 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:235 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:284 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:327 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:434 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:470 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:473 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:552 msgid "Cannot use tag editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "The tags editor cannot be used if you have modified the tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:601 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:555 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:602 msgid "Could not fetch cover.
    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:587 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:591 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:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:603 +msgid "" +"For the error message from each cover source, click Show details below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:610 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:644 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:674 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:637 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 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:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:750 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:751 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:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Edit Meta Information" msgstr "" -#: /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 msgid "Meta information" msgstr "" -#: /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:364 msgid "Swap the author and title" msgstr "" -#: /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:367 msgid "Author S&ort: " msgstr "" -#: /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:369 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:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "Remove unused series (Series that have no books)" 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:385 msgid "IS&BN:" 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:386 msgid "Publishe&d:" 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:389 msgid "dd MMM yyyy" 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:390 msgid "&Date:" msgstr "" -#: /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:391 msgid "&Comments" 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:392 msgid "&Fetch metadata from server" msgstr "" -#: /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:393 msgid "Available Formats" 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:394 msgid "Add a new format for this book to the database" 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:396 msgid "Remove the selected formats for this book from the database." msgstr "" -#: /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:398 msgid "Set the cover for the book from the selected format" msgstr "" -#: /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:400 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Download &cover" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +msgid "Generate a default cover based on the title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "&Generate cover" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 msgid "Password needed" msgstr "" @@ -6508,21 +6599,21 @@ msgstr "" msgid "Choose formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 msgid "Authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 msgid "Publishers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:114 msgid " (not on any book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:166 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" @@ -6576,7 +6667,7 @@ msgid "Select the content kind of the new category" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" msgstr "" @@ -6630,33 +6721,33 @@ msgstr "" msgid "%s (was %s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 msgid "Item is blank" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:91 msgid "No item selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:92 msgid "You must select one item from the list of Available items." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 msgid "No items selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 msgid "You must select at least one items from the list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:106 msgid "Are you certain you want to delete the following items?" msgstr "" @@ -7088,7 +7179,7 @@ msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:89 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:567 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:568 msgid "Card A" msgstr "" @@ -7097,7 +7188,7 @@ msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:91 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:569 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:570 msgid "Card B" msgstr "" @@ -7141,254 +7232,264 @@ msgid "Delete current saved search" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:302 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:108 msgid "%d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:334 -msgid "Connect to folder" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:340 -msgid "Connect to iTunes" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:360 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid "Email to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid " and delete from library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:373 -msgid "Setup email based sharing of books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "A" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "Add books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "E" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "Edit metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "C" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "Convert books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -msgid "V" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 -msgid "View" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:450 -msgid "Send to device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:305 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:468 msgid "Choose calibre library to work with" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 -msgid "F" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:336 +msgid "Connect to folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 -msgid "Fetch news" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:341 +msgid "Connect to iTunes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -msgid "S" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:356 +msgid "Start Content Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 -msgid "Save to disk" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:358 +msgid "Stop Content Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:455 -msgid "Connect/share" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid "Email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 -msgid "Del" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid " and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 -msgid "Remove books" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:389 +msgid "Setup email based sharing of books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "Browse the calibre User Manual" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "F1" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 -msgid "Help" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -msgid "Ctrl+P" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 -msgid "M" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 -msgid "Merge book records" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:461 -msgid "Open containing folder" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "Add books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 -msgid "Show book details" +msgid "E" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +msgid "Edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "C" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "Convert books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 -msgid "Books by same author" +msgid "V" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 -msgid "Books in this series" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:568 +msgid "View" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:466 +msgid "Send to device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 -msgid "Books by this publisher" +msgid "F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +msgid "Fetch news" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 +msgid "S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 +msgid "Save to disk" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 -msgid "Books with the same tags" +msgid "Connect/share" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:484 -msgid "Edit metadata individually" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 +msgid "Del" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 +msgid "Remove books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "Browse the calibre User Manual" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "F1" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "Help" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 +msgid "Ctrl+P" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 +msgid "M" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 +msgid "Merge book records" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:477 +msgid "Open containing folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:479 +msgid "Show book details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:481 +msgid "Books by same author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:483 +msgid "Books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:485 +msgid "Books by this publisher" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 -msgid "Edit metadata in bulk" +msgid "Books with the same tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:490 -msgid "Download metadata and covers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:493 -msgid "Download only metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:495 -msgid "Download only covers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:498 -msgid "Download only social metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:501 +msgid "Edit metadata individually" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 -msgid "Merge into first selected book - delete others" +msgid "Edit metadata in bulk" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 -msgid "Merge into first selected book - keep others" +msgid "Download metadata and covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:510 +msgid "Download only metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:512 +msgid "Download only covers" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 +msgid "Download only social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:521 +msgid "Merge into first selected book - delete others" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:524 +msgid "Merge into first selected book - keep others" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:532 msgid "Add books from a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 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/layout.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 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/layout.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:541 msgid "Add Empty book. (Book entry with no formats)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:553 msgid "Save to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:385 msgid "Save only %s format to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:542 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:388 msgid "Save only %s format to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 msgid "View specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:575 msgid "Remove selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:577 msgid "Remove files of a specific format from selected books.." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:580 msgid "Remove all formats from selected books, except..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:583 msgid "Remove covers from selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 msgid "Remove matching books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:603 msgid "Convert individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:605 msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:609 msgid "Create catalog of books in your calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:617 msgid "Run welcome wizard" msgstr "" @@ -7479,11 +7580,7 @@ msgstr "" msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:560 -msgid "Not allowed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:567 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -7580,7 +7677,7 @@ msgid "Do not check for updates" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:598 msgid "Calibre Library" msgstr "" @@ -7698,11 +7795,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:93 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:119 msgid "No matches found for this book" msgstr "" @@ -7948,69 +8045,69 @@ msgstr "" msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:367 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:363 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:368 msgid "Cannot configure before calibre is restarted." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:415 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:416 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:457 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:496 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:469 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:471 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:482 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:497 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:537 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. " "Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:563 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:566 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:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:570 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:625 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -8527,60 +8624,60 @@ msgstr "" msgid "Hide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:370 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:371 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:374 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:373 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:376 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:450 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:453 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:470 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:524 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525 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:533 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:536 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:590 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:665 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/finish_ui.py:42 #: /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 @@ -8588,7 +8685,7 @@ 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/finish_ui.py:43 #: /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 @@ -8609,19 +8706,19 @@ msgstr "" msgid "&Devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:44 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 msgid "" "

    User Manual

    A User Manual is also available online." @@ -9353,31 +9450,31 @@ msgstr "" msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:565 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:566 msgid "Main" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1790 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1796 msgid "

    Migrating old database to ebook library in %s

    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1819 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1825 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1836 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1929 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1935 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1970 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1976 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1992 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1998 msgid "Checked id" msgstr "" @@ -9503,7 +9600,7 @@ msgstr "" msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:258 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:263 msgid "Requested formats not available" msgstr "" @@ -9548,7 +9645,7 @@ msgid "" "disable grouping." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:93 +#: /home/kovid/work/calibre/src/calibre/library/server/base.py:94 msgid "Password to access your calibre library. Username is " msgstr "" @@ -9595,81 +9692,81 @@ msgstr "" msgid "Books sorted by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Newest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:49 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:34 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:78 msgid "Created by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:79 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:678 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:663 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:680 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:665 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:682 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:667 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:684 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:669 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:686 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:671 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:688 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:673 msgid "The language in which to display the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:690 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:675 msgid "The default output format for ebook conversions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:694 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:679 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:696 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:681 msgid "Read metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:698 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:683 msgid "The priority of worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:700 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:685 msgid "Swap author first and last names when reading metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:702 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:687 msgid "Add new formats to existing book records" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:707 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:692 msgid "List of named saved searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:708 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:693 msgid "User-created tag browser categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:710 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:695 msgid "How and when calibre updates metadata on the device." msgstr "" @@ -9798,6 +9895,9 @@ msgid "Control email delivery" msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:118 +msgid "Unknown section" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:140 msgid "Unknown feed" msgstr "" @@ -9830,11 +9930,11 @@ msgid "" "Do not download latest version of builtin recipes from the calibre server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:44 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:46 msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 msgid "The \"%s\" recipe needs a username and password." msgstr "" @@ -9894,33 +9994,33 @@ msgstr "" msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1002 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1003 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1192 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1172 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1263 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1243 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1274 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1254 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1291 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Fetching feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1438 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1418 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1454 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1434 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." diff --git a/src/calibre/translations/it.po b/src/calibre/translations/it.po index 17381b4153..8be9227515 100644 --- a/src/calibre/translations/it.po +++ b/src/calibre/translations/it.po @@ -8,172 +8,172 @@ msgid "" msgstr "" "Project-Id-Version: calibre_calibre-it\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-07-20 22:48+0000\n" -"PO-Revision-Date: 2010-07-22 21:11+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-08-11 15:31+0000\n" +"PO-Revision-Date: 2010-08-12 16:19+0000\n" +"Last-Translator: MeltingShell \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-07-23 04:05+0000\n" +"X-Launchpad-Export-Date: 2010-08-13 05:53+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" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" msgstr "Non fa assolutamente niente" -#: /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:75 -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 -#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:499 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:398 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:428 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:335 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 -#: /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:235 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:278 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:281 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:317 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:123 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:125 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:945 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057 -#: /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/txt.py:14 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:39 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:65 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 -#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 -#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 -#: /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:97 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:240 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:242 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:814 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:855 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1149 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:355 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:367 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1039 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1640 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1642 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 -#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:117 -#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46 -#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64 -#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:78 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:50 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/trunk/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:75 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/trunk/src/calibre/devices/prs500/books.py:267 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/sony_cache.py:506 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:405 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/input.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/input.py:100 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/metadata.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:402 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/input.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/input.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:335 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1896 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:24 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:236 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:282 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/book/base.py:20 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/book/base.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/ereader.py:36 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/ereader.py:61 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fb2.py:46 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:332 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:36 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:123 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:125 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/opf2.py:945 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/opf2.py:1057 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pdb.py:39 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pdf.py:28 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pml.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/txt.py:14 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:39 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:65 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:78 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:119 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:153 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:611 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:817 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/trunk/src/calibre/ebooks/odt/input.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/odt/input.py:51 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:911 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:916 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/reader.py:137 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/reader.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/jacket.py:108 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/writer.py:174 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/input.py:39 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/palmdoc/writer.py:29 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ztxt/writer.py:27 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:82 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:83 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:73 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:74 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:52 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:65 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:81 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:82 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/writer.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/writer.py:98 +#: /home/kovid/work/trunk/src/calibre/ebooks/rtf/input.py:234 +#: /home/kovid/work/trunk/src/calibre/ebooks/rtf/input.py:236 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:287 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:294 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:826 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:829 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/__init__.py:22 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:868 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:877 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1162 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:512 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:173 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:382 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:882 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1060 +#: /home/kovid/work/trunk/src/calibre/gui2/metadata.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/metadata.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:185 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:213 +#: /home/kovid/work/trunk/src/calibre/library/database.py:913 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:358 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:370 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:979 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1048 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1649 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1651 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1773 +#: /home/kovid/work/trunk/src/calibre/library/server/mobile.py:199 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:134 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:137 +#: /home/kovid/work/trunk/src/calibre/library/server/xml.py:68 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:117 +#: /home/kovid/work/trunk/src/calibre/utils/podofo/__init__.py:46 +#: /home/kovid/work/trunk/src/calibre/utils/podofo/__init__.py:64 +#: /home/kovid/work/trunk/src/calibre/utils/podofo/__init__.py:78 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/collection.py:47 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/collection.py:50 msgid "Unknown" msgstr "Sconosciuto" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "Base" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:172 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:172 msgid "File type" msgstr "Tipo di file" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:206 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:206 msgid "Metadata reader" msgstr "Lettore metadati" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:235 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:235 msgid "Metadata writer" msgstr "Scrittore metadati" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:263 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:263 msgid "Catalog generator" msgstr "Generatore del catalogo" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:16 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:16 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 " @@ -183,7 +183,7 @@ msgstr "" "tutti i file collegati. Questo plug-in viene eseguito ogni volta che si " "aggiunge un file HTML alla biblioteca." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:52 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:52 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -191,7 +191,7 @@ msgstr "" "Codifica dei caratteri nei file HTML in ingresso. Scelte comuni includono: " "cp1252, latin1, iso-8859-1 e utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:59 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:59 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 " @@ -201,57 +201,57 @@ msgstr "" "nella cartella pmlname_img o in images. Questo plug-in eseguito ogni volta " "che si aggiunge un documento PML alla biblioteca." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:93 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:93 msgid "Extract cover from comic files" msgstr "Estrae le copertine dai file dei fumetti" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:131 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:143 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:153 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:163 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:174 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:184 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:214 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:224 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:235 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:258 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:279 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:290 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:300 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:310 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:120 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:131 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:143 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:153 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:163 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:174 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:184 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:194 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:204 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:214 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:224 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:235 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:246 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:258 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:279 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:290 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:300 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:310 msgid "Read metadata from %s files" msgstr "Leggi i metadati dai file %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:269 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:269 msgid "Read metadata from ebooks in RAR archives" msgstr "Leggi i metadati dei libri negli archivi RAR" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:321 msgid "Read metadata from ebooks in ZIP archives" msgstr "Leggi i metadati dei libri negli archivi ZIP" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:334 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:344 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:354 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:397 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:334 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:344 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:354 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:376 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:387 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:397 msgid "Set metadata in %s files" msgstr "Imposta i metadati nei file %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:365 msgid "Set metadata from %s files" msgstr "imposta metadati da %s file" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 +#: /home/kovid/work/trunk/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "Input di conversione" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 +#: /home/kovid/work/trunk/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 " @@ -263,11 +263,11 @@ msgstr "" "stesso. Particolarmente utile per documenti in cui la codifica non è " "esplicitamente indicata o che hanno dichiarazioni di codifica errate." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241 +#: /home/kovid/work/trunk/src/calibre/customize/conversion.py:237 msgid "Conversion Output" msgstr "Output di conversione" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/trunk/src/calibre/customize/conversion.py:251 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." @@ -275,11 +275,11 @@ msgstr "" "Se specificato, il plugin tenta di creare un output il più possibile " "leggibile da occhi umani. Potrebbe non avere effetto per alcuni plugin." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:45 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:45 msgid "Input profile" msgstr "Profilo di input" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:49 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:49 msgid "" "This profile tries to provide sane defaults and is useful if you know " "nothing about the input document." @@ -287,83 +287,83 @@ msgstr "" "Questo profilo imposta valori predefiniti adeguati ed è utile quando non si " "sa nulla sul documento di origine." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:412 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:57 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:414 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" "Questo profilo è adatto per la linea SONY PRS. Ad esempio: 500/505/600/700 " "ecc." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:69 msgid "This profile is intended for the SONY PRS 300." msgstr "Questo profilo è adatto per il Sony PRS 300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:447 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:78 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:449 msgid "This profile is intended for the SONY PRS-900." msgstr "Questo profilo è adatto per il Sony PRS-900." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:477 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:86 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:479 msgid "This profile is intended for the Microsoft Reader." msgstr "Questo profilo è adatto per il Microsoft Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:97 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:490 msgid "This profile is intended for the Mobipocket books." msgstr "Questo profilo è adatto per i libri in formato Mobipocket." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:501 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:110 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:503 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Questo profilo è adatto per l'Hanlin V3 ed i suoi cloni." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:122 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Questo profilo è adatto per Hanlin V5 e i suoi cloni." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:521 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:132 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:523 msgid "This profile is intended for the Cybook G3." msgstr "Questo profilo è adatto per il Cybook G3." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:534 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:145 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:536 msgid "This profile is intended for the Cybook Opus." msgstr "Questo profilo è adatto per il Cybook Opus." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:545 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:157 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:547 msgid "This profile is intended for the Amazon Kindle." msgstr "Questo profilo è adatto per il Kindle di Amazon." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:580 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:169 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:584 msgid "This profile is intended for the Irex Illiad." msgstr "Questo profilo è adatto per l'Irex di Illiad." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:593 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:181 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:597 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Questo profilo è adatto per l'IRex Digital Reader 1000." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:607 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:611 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Questo profilo adatto per l'IRex Digital Reader 800." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:621 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:206 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:625 msgid "This profile is intended for the B&N Nook." msgstr "Questo profilo è adatto per il Nook B&N." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:228 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:228 msgid "Output profile" msgstr "Profilo di output" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:232 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:232 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 " @@ -373,26 +373,26 @@ msgstr "" "produrre un documento da poter leggere tramite computer o su vari " "dispositivi." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:259 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Questo profilo è adatto per l'iPad e dispositivi simili con una risoluzione " "di 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:427 msgid "This profile is intended for the Kobo Reader." msgstr "Questo profilo è adatto per il Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:438 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:440 msgid "This profile is intended for the SONY PRS-300." msgstr "Questo profilo è adatto per il Sony PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:456 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:458 msgid "This profile is intended for the 5-inch JetBook." msgstr "Questo profilo è adatto per il JetBook da 5 pollici." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:465 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:467 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -400,39 +400,39 @@ msgstr "" "Questo profilo è adatto per la linea SONY PRS. Il 500/505/700 ecc, in " "modalità panoramica. Utile principalmente per i fumetti." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:566 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Questo profilo è adatto per il Kindle DX di Amazon." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:33 msgid "Installed plugins" msgstr "Plugin installati" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:34 msgid "Mapping for filetype plugins" msgstr "Individuare plugins per i tipi di file" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:35 msgid "Local plugin customization" msgstr "Personalizzazione dei plug-in locali" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:36 msgid "Disabled plugins" msgstr "Plugin disabilitati" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:37 msgid "Enabled plugins" msgstr "Plugin attivati" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:84 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:85 msgid "No valid plugin found in " msgstr "Nessun plug-in valido trovato in " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:468 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:478 msgid "Initialization of plugin %s failed with traceback:" msgstr "Inizializzazione del plugin %s fallita con messaggio:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:511 msgid "" " %prog options\n" "\n" @@ -444,17 +444,17 @@ msgstr "" " Personalizza Calibre con l'utilizzo di plugin esterni\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:507 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:517 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "" "Aggiunge un plug-in specificando il percorso al file zip che lo contiene." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:509 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:519 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" "Rimuovi un plugin personalizzato dal nome. Non ha effetto sui plugin inclusi" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:521 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." @@ -462,23 +462,23 @@ msgstr "" "Personalizza un plug-in. Specificare il nome del plug-in e la stringa di " "personalizzazione separati da una virgola." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:513 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:523 msgid "List all installed plugins" msgstr "Elenca tutti i plug-in installati" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:515 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:525 msgid "Enable the named plugin" msgstr "Abilita il plug-in" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:527 msgid "Disable the named plugin" msgstr "Disabilita il plug-in" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 +#: /home/kovid/work/trunk/src/calibre/devices/android/driver.py:13 msgid "Communicate with Android phones." msgstr "Comunica con i telefoni Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:46 +#: /home/kovid/work/trunk/src/calibre/devices/android/driver.py:48 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -486,47 +486,47 @@ msgstr "" "Lista delle cartelle separate da virgole dei libri da inviare al " "dispositivo. Verrà usata la prima cartella esistente." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:88 +#: /home/kovid/work/trunk/src/calibre/devices/android/driver.py:90 msgid "Communicate with S60 phones." msgstr "Comunica con i telefoni S60." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:87 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:87 msgid "Communicate with iTunes/iBooks." msgstr "Comunica con iTunes/iBooks." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:93 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:93 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "Dispositivo Apple individuato, avvio di iTunes, attendere prego ..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:249 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:246 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:249 msgid "Updating device metadata listing..." msgstr "Aggiornamento dei metadati sul dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:323 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:362 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:921 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:957 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2802 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2841 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:323 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:362 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:921 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:957 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2822 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2861 msgid "%d of %d" msgstr "%d di %d" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:369 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:962 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2847 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:369 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:962 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2867 msgid "finished" msgstr "completato" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:544 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:544 msgid "Use Series as Category in iTunes/iBooks" msgstr "Usa le serie come categoria per iTunes/iBooks" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:546 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:546 msgid "Cache covers from iTunes/iBooks" msgstr "Conserva le copertine da iTunes/iBooks" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:558 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:558 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" @@ -536,7 +536,7 @@ msgstr "" "Eliminarli utilizzando l'app iBooks.\n" "Fare clic su 'Mostra dettagli' per una lista." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:886 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:886 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." @@ -544,91 +544,91 @@ msgstr "" "Alcune copertine non possono essere convertite.\n" "Fare clic su 'Mostra dettagli' per una lista." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2471 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:807 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:813 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:841 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1524 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2491 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:817 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:823 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:851 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:244 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:187 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:200 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1533 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:132 msgid "News" msgstr "Notizie" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2709 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2729 msgid "Communicate with iTunes." msgstr "Comunica con iTunes." -#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/binatone/driver.py:17 msgid "Communicate with the Binatone Readme eBook reader." msgstr "Comunica con il lettore Binatone Readme." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/trunk/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:14 -#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 +#: /home/kovid/work/trunk/src/calibre/devices/blackberry/driver.py:14 +#: /home/kovid/work/trunk/src/calibre/devices/nuut2/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" msgstr "Kovid Goyal" -#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +#: /home/kovid/work/trunk/src/calibre/devices/cybook/driver.py:22 msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Comunica con il lettore Cybook Gen 3 / Opus." -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 +#: /home/kovid/work/trunk/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Comunica con il lettore EB600." -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:193 +#: /home/kovid/work/trunk/src/calibre/devices/eb600/driver.py:193 msgid "Communicate with the Astak Mentor EB600" -msgstr "Comunica con l'Astak Mentor EB600" +msgstr "Comunica con l'Astak Mentor EB600." -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:216 +#: /home/kovid/work/trunk/src/calibre/devices/eb600/driver.py:216 msgid "Communicate with the PocketBook 301 reader." msgstr "Comunica con il lettore PocketBook 301." -#: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" -#: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/edge/driver.py:18 msgid "Communicate with the Entourage Edge." -msgstr "Comunica con Entourage Edge." +msgstr "Comunica con l'Entourage Edge." -#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/eslick/driver.py:16 msgid "Communicate with the ESlick eBook reader." msgstr "Comunica con il lettore ESlick." -#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:49 +#: /home/kovid/work/trunk/src/calibre/devices/eslick/driver.py:49 msgid "Communicate with the Sigmatek eBook reader." msgstr "Comunica con il lettore Sigmatek eBook." -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:16 -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:30 +#: /home/kovid/work/trunk/src/calibre/devices/folder_device/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/folder_device/driver.py:30 msgid "Use an arbitrary folder as a device." msgstr "Usa una cartella a scelta come dispositivo." -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/trunk/src/calibre/devices/folder_device/driver.py:26 +#: /home/kovid/work/trunk/src/calibre/devices/interface.py:14 msgid "Device Interface" msgstr "Interfaccia del Dispositivo" -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:19 msgid "Communicate with Hanlin V3 eBook readers." msgstr "Comunica con i lettori Hanlin V3." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:87 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:87 msgid "Communicate with Hanlin V5 eBook readers." msgstr "Comunica con i lettori Hanlin V5." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:106 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:106 msgid "Communicate with the BOOX eBook reader." -msgstr "Comunica con i lettori BOOX." +msgstr "Comunica con il lettore BOOX." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:123 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:123 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used." @@ -636,155 +636,169 @@ msgstr "" "Lista di cartelle separate da virgole per inviare gli e-books al " "dispositivo. Verrà utilizzata la prima esistente." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:18 msgid "Communicate with the Hanvon N520 eBook reader." msgstr "Comunica con il lettore Hanvon N520." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:40 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:40 msgid "Communicate with The Book reader." msgstr "Comunica con il lettore The Book." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:51 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:52 msgid "Communicate with the SpringDesign Alex eBook reader." msgstr "Comunica con il lettore SpringDesign Alex." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:67 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:68 msgid "Communicate with the Azbooka" -msgstr "Comunica con l'Azbooka" +msgstr "Comunica con l'Azbooka." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:80 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:81 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "Comunica con il lettore Elonex EB 511." -#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." msgstr "Comunica con il lettore IRex Iliad." -#: /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:38 +#: /home/kovid/work/trunk/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:42 msgid "John Schember" msgstr "John Schember" -#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." -msgstr "Comunica con il lettore IRex Digital Reader." +msgstr "Comunica con il lettore IRex Digital Reader 1000." -#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +#: /home/kovid/work/trunk/src/calibre/devices/irexdr/driver.py:42 msgid "Communicate with the IRex Digital Reader 800" msgstr "Comunica con il lettore IRex Digital Reader 800." -#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 +#: /home/kovid/work/trunk/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Comunica con il lettore Iriver Story." -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 +#: /home/kovid/work/trunk/src/calibre/devices/jetbook/driver.py:20 msgid "Communicate with the JetBook eBook reader." msgstr "Comunica con il lettore JetBook." -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:86 +#: /home/kovid/work/trunk/src/calibre/devices/jetbook/driver.py:86 msgid "Communicate with the MiBuk Wolder reader." msgstr "Comunica con il lettore MiBuk Wolder." -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:42 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:42 msgid "Communicate with the Kindle eBook reader." msgstr "Comunica con il lettore Kindle." -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:169 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:169 msgid "Communicate with the Kindle 2 eBook reader." msgstr "Comunica con il lettore Kindle 2." -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:210 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:210 msgid "Communicate with the Kindle DX eBook reader." msgstr "Comunica con il lettore Kindle DX." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:22 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:22 msgid "Communicate with the Kobo Reader" -msgstr "Comunica con il Kobo Reader" +msgstr "Comunica con il Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:51 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:54 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:57 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:159 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:64 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:139 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:53 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:56 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:59 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:161 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:68 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:74 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:136 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:166 msgid "Getting list of books on device..." msgstr "Recupero della lista dei libri sul dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:219 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:263 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:264 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:221 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:265 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:253 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:271 msgid "Removing books from device..." msgstr "Rimozione dei libri dal dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:276 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:269 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:276 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:278 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:283 msgid "Removing books from device metadata listing..." msgstr "Cancellazione libri dalla lista metadati del dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:279 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:313 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:210 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:240 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:281 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:217 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:247 msgid "Adding books to device metadata listing..." msgstr "Aggiunta dei libri alla lista metadati del dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:15 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:366 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:441 +msgid "Not Implemented" +msgstr "Non Implementato" + +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:367 +msgid "" +"\".kobo\" files do not exist on the device as books instead, they are rows " +"in the sqlite database. Currently they cannot be exported or viewed." +msgstr "" +"I file \".kobo\" non esistono sul dispositivo come libri, sono invece " +"presenti nel database sqlite. Attualmente non possono essere esportati o " +"visualizzati." + +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" -msgstr "Comunica con il Palm Pre" +msgstr "Comunica con il Palm Pre." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:35 +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:37 msgid "Communicate with the Booq Avant" -msgstr "Comunica con il Booq Avant" +msgstr "Comunica con il Booq Avant." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:55 +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:58 msgid "Communicate with the Sweex MM300" -msgstr "Comunica con il Sweex MM300" +msgstr "Comunica con il Sweex MM300." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:75 +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:78 msgid "Communicate with the Pandigital Novel" -msgstr "Comunica con il Pandigital Novel" +msgstr "Comunica con il Pandigital Novel." -#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." -msgstr "Comunica con il Nokia 770 Internet Tablet." +msgstr "Comunica con l'internet tablet Nokia 770." -#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +#: /home/kovid/work/trunk/src/calibre/devices/nokia/driver.py:40 msgid "Communicate with the Nokia 810 internet tablet." -msgstr "Comunica con il Nokia 810 internet Tablet." +msgstr "Comunica con l'internet tablet Nokia 810." -#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:74 +#: /home/kovid/work/trunk/src/calibre/devices/nokia/driver.py:74 msgid "Communicate with the Nokia E52" -msgstr "Comunica con il Nokia E52" +msgstr "Comunica con il Nokia E52." -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:20 msgid "The Nook" msgstr "Il lettore Nook" -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:21 msgid "Communicate with the Nook eBook reader." msgstr "Comunica con il lettore Nook." -#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Comunica con il lettore Nuut2." -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 +#: /home/kovid/work/trunk/src/calibre/devices/prs500/driver.py:89 msgid "Communicate with the Sony PRS-500 eBook reader." msgstr "Comunica con il lettore Sony PRS-500." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:22 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/driver.py:22 msgid "Communicate with all the Sony eBook readers." msgstr "Comunica con tutti i lettori Sony." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:61 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/driver.py:61 msgid "" "Comma separated list of metadata fields to turn into collections on the " "device. Possibilities include: " @@ -792,45 +806,45 @@ msgstr "" "Lista di metadati separati da virgole da convertire in collezioni sul " "dispositivo. Le possibilità sono: " -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:140 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/sony_cache.py:144 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "Senza nome" -#: /home/kovid/work/calibre/src/calibre/devices/sne/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/sne/driver.py:17 msgid "Communicate with the Samsung SNE eBook reader." msgstr "Comunica con il lettore Samsung SNE." -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:11 +#: /home/kovid/work/trunk/src/calibre/devices/teclast/driver.py:11 msgid "Communicate with the Teclast K3 reader." msgstr "Comunica con il lettore Teclast K3." -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:37 +#: /home/kovid/work/trunk/src/calibre/devices/teclast/driver.py:37 msgid "Communicate with the Newsmy reader." msgstr "Comunica con il lettore Newsmy." -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:49 +#: /home/kovid/work/trunk/src/calibre/devices/teclast/driver.py:49 msgid "Communicate with the iPapyrus reader." msgstr "Comunica con il lettore iPapyrus." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:245 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "Impossibile individuare il disco %s. Provare a riavviare." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:435 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" "Impossibile individuare il %s mount Point. Provo ad effettuare un reboot" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:490 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:500 msgid "Unable to detect the %s disk drive." msgstr "Impossibile rilevare il disco %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:583 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:593 msgid "Could not find mount helper: %s." msgstr "Non è stato possibile trovare l'assistente di installazione: %s" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:595 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:605 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." @@ -838,149 +852,149 @@ msgstr "" "mpossibile rilevare il disco %s. Il kernel in uso sta probabilmente " "esportando una versione obsoleta di SYSFS." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:603 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:613 msgid "Unable to mount main memory (Error code: %d)" msgstr "Impossibile montare la memoria principale (Codice errore: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:740 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:742 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:750 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:752 msgid "The reader has no storage card in this slot." msgstr "Il reader non contiene una scheda di memoria in questo slot." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:744 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:754 msgid "Selected slot: %s is not supported." msgstr "Lo slot selezionato: %s non è supportato." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:783 msgid "There is insufficient free space in main memory" msgstr "Non c'è spazio sufficiente nella memoria principale" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:777 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:785 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:787 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/deviceconfig.py:12 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" msgstr "Configura dispositivo" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:37 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:37 msgid "settings for device drivers" msgstr "Impostazioni per il driver del dispositivo" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:39 msgid "Ordered list of formats the device will accept" msgstr "Lista ordinata dei formati che il dispositivo può accettare." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:41 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:41 msgid "Place files in sub directories if the device supports them" msgstr "Metti i file in sotto cartelle se il dispositivo le supporta" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:43 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:81 msgid "Read metadata from files on device" msgstr "Legge i metadati dai file sul dispositivo" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:45 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:45 msgid "Use author sort instead of author" -msgstr "" +msgstr "Usa classificazione autore invece dell'autore" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:47 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:47 msgid "Template to control how books are saved" msgstr "Modello per controllare come i libri vengono salvati" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:84 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:84 msgid "Extra customization" msgstr "Ulteriori personalizzazioni" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:41 msgid "Communicate with an eBook reader." msgstr "Comunicare con un lettore di eBook." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:53 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:57 msgid "Get device information..." msgstr "Recupero informazioni del dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:190 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:192 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:194 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:196 msgid "Transferring books to device..." msgstr "Trasferimento dei libri nel dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:307 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:314 msgid "Sending metadata to device..." msgstr "Invio dei metadati al dispositivo..." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:41 msgid "%prog [options] mybook.chm" msgstr "%prog [opzioni] mybook.chm" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:42 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:42 msgid "Output directory. Defaults to current directory" msgstr "Cartella di output . Per defaults è la cartella corrente" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:45 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:45 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:589 msgid "Set the book title" msgstr "Imposta il titolo del libro" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:47 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:47 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:591 msgid "Set sort key for the title" msgstr "Imposta la chiave per la classificazione del titolo" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:49 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:593 msgid "Set the author" msgstr "Imposta l'autore" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:51 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:595 msgid "Set sort key for the author" msgstr "Imposta la chiave per la classificazione dell'autore" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:53 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:53 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:597 msgid "The category this book belongs to. E.g.: History" msgstr "La categoria a cui questo libro appartiene. Es: Storia" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:600 msgid "Path to a graphic that will be set as this files' thumbnail" msgstr "" "Percorso a un'immagine che verrà impostata come miniatura di questo file" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:59 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:59 msgid "Path to a txt file containing a comment." msgstr "Percorso ad un file txt che contiene un commento." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:62 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:607 msgid "Extract thumbnail from LRF file" msgstr "Estrae la miniatura da un file LRF" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:63 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:608 msgid "Set the publisher" msgstr "Imposta il pubblisher" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:609 msgid "Set the book classification" msgstr "Imposta la classificazione del libro" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:65 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:65 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:610 msgid "Set the book creator" msgstr "Imposta il creatore del libro" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:611 msgid "Set the book producer" msgstr "Imposta il produttore del libro" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:68 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:68 +#: /home/kovid/work/trunk/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." @@ -989,34 +1003,34 @@ msgstr "" "copertina definita, quindi viene usato un algoritmo euristico per provare ad " "indovinare la copertina." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:615 msgid "Set book ID" msgstr "Imposta l'ID del libro" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:72 msgid "Set font delta" msgstr "Imposta delta Carattere" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:201 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:178 msgid "Rendered %s" msgstr "Trasformato %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:204 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:181 msgid "Failed %s" msgstr "Fallito %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:261 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:235 msgid "" "Failed to process comic: \n" "\n" "%s" msgstr "" -"Impossibile processare il fumetto: \n" +"Elaborazione del fumetto fallita: \n" "\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:253 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 " @@ -1026,24 +1040,24 @@ msgstr "" "Predefinito: %default. Valori inferiori a 256 potrebbero generare testo " "sfocato sul dispositivo in caso di fumetti in formato EPUB." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:257 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Disabilita la normalizzazione dell'intervallo dei colori per le immagini " "(migliora il contrasto). Predefinito: falso." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:260 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Mantieni le proporzioni dell'immagine. Predefinito: riempimento dello " "schermo." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:262 msgid "Disable sharpening." msgstr "Disabilita maschera di nitidezza." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:264 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -1052,11 +1066,11 @@ msgstr "" "fumetti la rimozione dei margini potrebbere rimuovere parte del contenuto " "oltre che i bordi." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:267 msgid "Don't split landscape images into two portrait images" msgstr "Non dividere le immagini orizzontali in due immagini verticali" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:269 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -1064,7 +1078,7 @@ msgstr "" "Mantieni le proporzioni e scala l'immagine usando l'altezza dello schermo " "come larghezza dell'immagine per la visualizzazione in orizzontale." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:272 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -1073,15 +1087,15 @@ msgstr "" "divisione di una pagina orizzontale in due pagine verticali orientate da " "destra a sinistra." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:276 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" "Abilita Despeckle. Riduce il rumore speckle. Può aumentare di molto il tempo " -"di processamento." +"di elaborazione." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:305 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:279 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -1089,7 +1103,7 @@ msgstr "" "Non ordinare i file trovati nel fumetto alfabeticamente per nome. Usa invece " "l'ordine in cui sono stati aggiunti al fumetto." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:309 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:283 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 " @@ -1099,20 +1113,20 @@ msgstr "" "sperimentare vari formati per trovare la dimensione e l'aspetto ottimale per " "il dispositivo in uso." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:313 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:287 msgid "Apply no processing to the image" msgstr "Non applica alcuna elaborazione all'immagine" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:289 msgid "Do not convert the image to grayscale (black and white)" msgstr "Non convertire l'immagine in scala di grigi (bianco e nero)" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:463 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:426 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:437 msgid "Page" msgstr "Pagina" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:19 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:19 msgid "" "input_file output_file [options]\n" "\n" @@ -1137,7 +1151,7 @@ msgid "" "\n" "For full documentation of the conversion system see\n" msgstr "" -"input_file output_file [options]\n" +"input_file output_file [opzioni]\n" "\n" "Converte un ebook da un formato all'altro.\n" "\n" @@ -1151,7 +1165,7 @@ msgstr "" "iniziare con un trattino. Infine, se output_file non ha estensione è " "trattato come una cartella ed in questa cartella è creato un \"open ebook\" " "(OEB) composto da file HTML. Questi file sono quelli che sarebbero stati " -"normalmente inviati al plugin di output per essere processati.\n" +"normalmente inviati al plugin di output per essere elaborati.\n" "\n" "Dopo aver specificato l'input e l'output è possibile impostare diverse " "opzioni di conversione. Le opzioni disponibili dipendono dai tipi di file in " @@ -1160,31 +1174,31 @@ msgstr "" "\n" "Per una documentazione completa sul sistema di conversione vedi\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:97 msgid "INPUT OPTIONS" msgstr "OPZIONI DI INPUT" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:98 msgid "Options to control the processing of the input %s file" -msgstr "Opzioni per controllare la trasformazione dei file di input %s." +msgstr "Opzioni per controllare l'elaborazione dei file di input %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:104 msgid "OUTPUT OPTIONS" msgstr "OPZIONI DI OUTPUT" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:105 msgid "Options to control the processing of the output %s" -msgstr "Opzioni per controllare gli output %s" +msgstr "Opzioni per controllare l'elaborazione dell'output %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:119 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:119 msgid "Options to control the look and feel of the output" msgstr "Opzioni per controllare l'aspetto dell'output" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:135 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:135 msgid "Control auto-detection of document structure." msgstr "Controlla il rilevamento automatico della struttura del documento." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:145 +#: /home/kovid/work/trunk/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 " @@ -1194,28 +1208,28 @@ msgstr "" "sorgente ha un indice, questo sarà preferito a quello generato " "automaticamente." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:155 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:155 msgid "Options to set metadata in the output" msgstr "Opzioni per impostare i metadati in output" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:158 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:158 msgid "Options to help with debugging the conversion" msgstr "Opzioni per aiutare a individuare problemi con la conversione" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:183 msgid "List builtin recipes" msgstr "Creare lista delle formule del sistema" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:256 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:256 msgid "Output saved to" msgstr "Output salvato in" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:95 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:95 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "" "Livello di dettagli dell'output. Specificare più volte per maggiori dettagli." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:102 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:102 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 " @@ -1225,7 +1239,7 @@ msgstr "" "specificata. Utile se non si conosce in quale stadio del processo di " "conversione si verifica l'errore." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:111 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:111 msgid "" "Specify the input profile. The input profile gives the conversion system " "information on how to interpret various information in the input document. " @@ -1237,7 +1251,7 @@ msgstr "" "input. Per esempio lunghezze dipendenti dalla risoluzione (es. lunghezze in " "pixel). Le scelte sono:" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:122 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:122 msgid "" "Specify the output profile. The output profile tells the conversion system " "how to optimize the created document for the specified device. In some " @@ -1250,7 +1264,7 @@ msgstr "" "per produrre documenti leggibili da un determinato dispositivo. Per esempio " "EPUB su un lettore SONY. Le opzioni sono:" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:133 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:133 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 " @@ -1263,7 +1277,7 @@ msgstr "" "e viceversa. Per default, la dimensione base dei caratteri è scelta in base " "al profilo scelto." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:143 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:143 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-" @@ -1278,11 +1292,11 @@ msgstr "" "questi riferimenti per ridimensionare i caratteri. Il valore predefinito è " "di utilizzare un modello basato sul tipo di output scelto." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:155 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:155 msgid "Disable all rescaling of font sizes." msgstr "Disabilita il ridimensionamento delle dimensioni dei Font" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:162 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:162 msgid "" "The line height in pts. Controls spacing between consecutive lines of text. " "By default no line height manipulation is performed." @@ -1290,7 +1304,7 @@ msgstr "" "Altezza della linea in pts. Controlla lo spazio fra due linee di testo " "consecutive. Per default, nessuna variazione dell'altezza viene eseguita." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:170 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:170 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 " @@ -1302,7 +1316,7 @@ msgstr "" "presentano testi non allineati nella pagina ed altri difetti grafici. Questa " "opzione estrae il contenuto dalle tabelle e lo presenta in maniera lineare." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:180 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:180 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 " @@ -1312,7 +1326,7 @@ msgstr "" "all'indice al primo livello. Se viene specificata, prende la precedenza " "sulle altre forme di autorilevamento." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:189 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:189 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 " @@ -1322,7 +1336,7 @@ msgstr "" "all'indice al secondo livello. Ogni elemento viene aggiunto sotto l'elemento " "di primo livello precedente." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:197 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:197 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 " @@ -1332,7 +1346,7 @@ msgstr "" "all'indice al terzo livello. Ogni elemento viene aggiunto sotto l'elemento " "di secondo livello precedente." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:205 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:205 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 " @@ -1342,11 +1356,11 @@ msgstr "" "preferenza rispetto a quello auto-generato. Con questa opzione, verrà sempre " "usato l'indice auto-generato." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:213 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:213 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "Non aggiungere i capitoli rilevati automaticamente all'indice." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:220 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:220 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" @@ -1354,7 +1368,7 @@ msgstr "" "Se viene rilevato un numero di capitoli inferiore a questo, i collegamenti " "saranno aggiunti all'indice. Predefinito: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:227 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:227 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 " @@ -1364,7 +1378,7 @@ msgstr "" "disabilitarlo. Il default è %default. I link sono aggiunti all'indice " "soltanto se non è già stato raggiunto il numero di capitoli impostati." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:235 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:235 msgid "" "Remove entries from the Table of Contents whose titles match the specified " "regular expression. Matching entries and all their children are removed." @@ -1373,7 +1387,7 @@ msgstr "" "specificata. Le voci che corrispondono saranno rimosse insieme alle voci " "\"figlie\"." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:246 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:246 msgid "" "An XPath expression to detect chapter titles. The default is to consider " "

    or

    tags that contain the words \"chapter\",\"book\",\"section\" or " @@ -1390,7 +1404,7 @@ msgstr "" "capitoli usare l'espressione \"/\". Per maggiori informazioni riferirsi alla " "guida su XPath nel manuale di Calibre." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:260 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:260 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 " @@ -1403,7 +1417,7 @@ msgstr "" "marcatura dei capitoli e il valore \"both\" userà sia l'interruzione di " "pagina che la linea per marcare i capitoli." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:270 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:270 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 " @@ -1413,42 +1427,42 @@ msgstr "" "Il CSS verrà aggiunto agli stili del documento sorgente e pertanto può " "essere usato per ridefinire gli stili esistenti." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:279 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:279 msgid "" "An XPath expression. Page breaks are inserted before the specified elements." msgstr "" "Una espression XPath. Interruzioni di pagina sono inserite prima degli " "elementi specificati." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:285 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:285 msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Imposta il margine superiore in punti. Il default è %default. Nota: 72 punti " "equivalgono a 1 pollice (circa 2,54 cm)" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:290 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:290 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Imposta il margine inferiore in punti. Il default è %default. Nota: 72 punti " "equivalgono a 1 pollice (circa 2,54 cm)" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:295 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:295 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Imposta il margine sinistro in punti. Il default è %default. Nota: 72 punti " "equivalgono a 1 pollice (circa 2,54 cm)" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:300 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:300 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Imposta il margine destro in punti. Il default è %default. Nota: 72 punti " "equivalgono a 1 pollice (circa 2,54 cm)" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:306 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:306 msgid "" "Change text justification. A value of \"left\" converts all justified text " "in the source to left aligned (i.e. unjustified) text. A value of " @@ -1462,7 +1476,7 @@ msgstr "" "Impostato a \"originale\" (predefinito) l'allineamento non verrà cambiato. " "Notare che solo alcuni formati di output supportano il testo giustificato." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:316 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 " @@ -1472,7 +1486,7 @@ msgstr "" "1.5em. La rimozione degli spazi non funzionerà se il documento sorgente non " "usa la notazione per i paragrafi del tipo

    o

    ." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:323 msgid "" "When calibre removes inter paragraph spacing, it automatically sets a " "paragraph indent, to ensure that paragraphs can be easily distinguished. " @@ -1482,7 +1496,7 @@ msgstr "" "automaticamente un rientro di paragrafo, per assicurarsi che i paragrafi " "siano ben distinti. Questa opzione controlla l'ampiezza del rientro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:330 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:330 msgid "" "Use the cover detected from the source file in preference to the specified " "cover." @@ -1490,7 +1504,7 @@ msgstr "" "Usare la copertina rilevata dal file di origine al posto di quella " "specificata." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:336 msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (

    or

    tags)." @@ -1498,7 +1512,7 @@ msgstr "" "Inserisce una linea vuota tra i paragrafi. Non funzionerà se il file " "sorgente non usa i paragrafi ( tag

    o

    )" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:343 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:343 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." @@ -1506,7 +1520,7 @@ msgstr "" "Rimuovi la prima immagine dall'ebook di input. Utile se la prima immagine " "del file sorgente è una copertina e si sta indicando una copertina esterna." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:351 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:351 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." @@ -1514,7 +1528,7 @@ msgstr "" "Inserisce i metadati del libro all'inizio. Utile se il dispositivo non " "supporta la visualizzazione/ricerca di metadati direttamente." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:359 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." @@ -1523,24 +1537,24 @@ msgstr "" "problemi nel file sorgente. Usare con cautela perché potrebbe peggiorare la " "situazione." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:367 msgid "Use a regular expression to try and remove the header." msgstr "" "Utilizza una espressione regolare per provare e rimuovere l'intestazione." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:374 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:374 msgid "The regular expression to use to remove the header." msgstr "L'espressione regolare da usare per rimuovere l'intestazione." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:380 msgid "Use a regular expression to try and remove the footer." msgstr "Utilizza una espressione regolare per provare a rimuovere il piede." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:387 msgid "The regular expression to use to remove the footer." msgstr "L'espressione regolare da usare per rimuovere il piede di pagina." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:394 msgid "" "Read metadata from the specified OPF file. Metadata read from this file will " "override any metadata in the source file." @@ -1548,7 +1562,7 @@ msgstr "" "Legge i metadati dal file OPF specificato. I metadati letti da questo file " "sovrascrivono qualunque altro metadato presente nel file sorgente." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:401 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1565,7 +1579,7 @@ msgstr "" "la rappresentazione usata dal maggior numero di persone (es. il cinese " "nell'esempio precedente)." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:416 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:416 msgid "" "Preserve ligatures present in the input document. A ligature is a special " "rendering of a pair of characters like ff, fi, fl et cetera. Most readers do " @@ -1581,131 +1595,131 @@ msgstr "" "automaticamente un legame nei corrispondenti due caratteri. Questa opzione " "manterrà i legami nel documento generato." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:428 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:428 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:38 msgid "Set the title." msgstr "Imposta il titolo." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:432 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:432 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" "Imposta gli Autori. Autori multipli devono essere separati da \"&\" senza " "virgolette." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:437 msgid "The version of the title to be used for sorting. " msgstr "La versione del titolo da usare per l'ordinamento. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:441 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:441 msgid "String to be used when sorting by author. " msgstr "Stringa da usare nell'ordinamento per autore. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:445 msgid "Set the cover to the specified file or URL" msgstr "Seleziona la copertina da un file o da un URL" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:449 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:54 msgid "Set the ebook description." msgstr "Imposta la descrizione dell'ebook" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:453 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:56 msgid "Set the ebook publisher." msgstr "Imposta il publisher dell'ebook" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:457 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:457 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:60 msgid "Set the series this ebook belongs to." msgstr "Imposta la serie alla quale l'ebook appartiene" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:461 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:461 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." msgstr "Imposta l'indice analitico del libro in questa serie" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:465 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:465 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:64 msgid "Set the rating. Should be a number between 1 and 5." msgstr "Imposta il rating. Deve essere un numero compreso tra 1 e 5" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:469 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:469 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:66 msgid "Set the ISBN of the book." msgstr "Imposta il codice ISBN del libro" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:473 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:68 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:473 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:68 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" "Imposta i tag per il libro. Deve essere una lista separata da virgole." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:477 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:477 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:70 msgid "Set the book producer." msgstr "Imposta il produttore del libro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:481 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:481 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:72 msgid "Set the language." msgstr "Imposta la lingua." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:485 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:485 msgid "Set the publication date." msgstr "Imposta la data di pubblicazione" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:489 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:489 msgid "Set the book timestamp (used by the date column in calibre)." msgstr "" "Imposta la data del libro (usata nella colonna della data in calibre)" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:589 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:589 msgid "Could not find an ebook inside the archive" msgstr "Impossibile trovare un libro dentro l'archivio" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:647 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:647 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" "I valori della serie e la valutazione devono essere numerici. Ignorato" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:654 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:654 msgid "Failed to parse date/time" msgstr "Errore nell'interpretare la data/orario" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:809 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:809 msgid "Converting input to HTML..." msgstr "Conversione dell'input in HTML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:836 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:836 msgid "Running transforms on ebook..." msgstr "Transcodifica di un ebook in corso..." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:923 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:923 msgid "Creating" msgstr "Creazione in corso" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/__init__.py:18 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/__init__.py:18 msgid "ePub Fixer" msgstr "ePub Fixer" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/epubcheck.py:18 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/epubcheck.py:18 msgid "Workaround epubcheck bugs" msgstr "Soluzione ai bug di epubcheck" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/epubcheck.py:22 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/epubcheck.py:22 msgid "" "Workarounds for bugs in the latest release of epubcheck. epubcheck reports " "many things as errors that are not actually errors. epub-fix will try to " "detect these and replace them with constructs that epubcheck likes. This may " "cause significant changes to your epub, complain to the epubcheck project." msgstr "" -"Alternativa per i bug dell'ultima versione di epubcheck. epubcheck segnala " -"molte cose come errori anche se non lo sono. epub-fix tenterà di " -"individuarli e di sostituirli con una forma accettata da epubcheck. Questo " -"può causare cambiamenti significativi al documento epub, i problemi sono " -"però causati dal progetto epubcheck." +"Aggira gli errori dell'ultima versione di epubcheck. epubcheck segnala " +"troppe cose come errori anche se non lo sono. epub-fix tenterà individuarli " +"e sostituirli con una forma accettata da epubcheck. Questo può causare " +"cambiamenti rilevanti nell'epub, il problema è però causato unicamente dal " +"progetto epubcheck." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:19 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/main.py:19 msgid "" "%prog [options] file.epub\n" "\n" @@ -1724,25 +1738,27 @@ msgstr "" "messaggi per ogni errore individuato. Usare le opzioni per controllare quali " "errori correggere automaticamente." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:50 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/main.py:50 msgid "You must specify an epub file" msgstr "Specificare un file epub" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:17 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/unmanifested.py:17 msgid "Fix unmanifested files" -msgstr "" +msgstr "Corregge file non manifestati" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/unmanifested.py:21 msgid "" "Fix unmanifested files. epub-fix can either add them to the manifest or " "delete them as specified by the delete unmanifested option." msgstr "" +"Corregge file non manifestati. epub-fix può aggiungerli al manifesto o " +"eliminarli come specificato nell'opzione elimina non manifestati." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/unmanifested.py:32 msgid "Delete unmanifested files instead of adding them to the manifest" -msgstr "" +msgstr "Elimina file non manifestati invece di aggiungerli al manifesto" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:56 msgid "" "Extract the contents of the generated EPUB file to the specified directory. " "The contents of the directory are first deleted, so be careful." @@ -1751,7 +1767,7 @@ msgstr "" "Usare con cautela, il contenuto della directory sarà cancellato preima di " "ricevere i dati." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:62 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 " @@ -1767,7 +1783,7 @@ msgstr "" "interruzioni di pagina, è consigliato disattivare la suddivisione alle " "interruzioni di pagina." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:73 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:73 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 " @@ -1778,7 +1794,7 @@ msgstr "" "grandi dimensioni. Il default di %defaultKB è la dimensione richiesta per " "Adobe Digital Editions." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:80 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:80 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 " @@ -1788,7 +1804,7 @@ msgstr "" "specificata una, viene generata una copertina di default con il titolo, " "l'autore, etc. Questa opzione disabilita la generazione di questa copertina." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:86 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:86 msgid "" "Do not use SVG for the book cover. Use this option if your EPUB is going to " "be used on a device that does not support SVG, like the iPhone or the " @@ -1800,7 +1816,7 @@ msgstr "" "il JetBook Lite. Senza questa opzione, alcuni dispositivi visualizzeranno " "cme copertina una pagina bianca." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:94 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:94 msgid "" "When using an SVG cover, this option will cause the cover to scale to cover " "the available screen area, but still preserve its aspect ratio (ratio of " @@ -1814,29 +1830,29 @@ msgstr "" "copertina, ma questa non verrà distorta. Senza questa opzione l'immagine " "potrebbe essere sproporzionata anche se non avrà bordi bianchi." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:169 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:169 msgid "Start" msgstr "Avvio" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 -#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/trunk/src/calibre/ebooks/rb/rbml.py:102 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "Indice:" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/input.py:32 msgid "Do not insert a Table of Contents at the beginning of the book." msgstr "Non inserire un indice all'inizio del libro." -#: /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 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/output.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/output.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/pml/output.py:37 +#: /home/kovid/work/trunk/src/calibre/ebooks/rb/output.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/output.py:35 msgid "Add Table of Contents to beginning of the book." msgstr "Inserire un indice all'inizio del libro." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:248 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:248 msgid "" "Traverse links in HTML files breadth first. Normally, they are traversed " "depth first." @@ -1844,7 +1860,7 @@ msgstr "" "Seguire i collegamenti nelle pagine HTML per ampiezza. Normalmente sono " "seguiti prima in profonditá" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:255 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:255 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. " @@ -1855,7 +1871,7 @@ msgstr "" "nessun collegamento nel documento HTML verrà seguito. Il valore predefinito " "è %default." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:264 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:264 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 " @@ -1867,7 +1883,7 @@ msgstr "" "solamente se si è sicuri di quello che si sta facendo poiché potrebbe " "causare effetti collaterali nella sequenza di conversione." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:272 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:272 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." @@ -1877,75 +1893,75 @@ msgstr "" "documento PDF. %default è il valore predefinito per disabilitare questa " "funzione." -#: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 +#: /home/kovid/work/trunk/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." msgstr "Creazione di file LIT da EPUB in corso..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:320 msgid "\tBook Designer file detected." msgstr "\tFile di Book Designer individuato" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:322 msgid "\tParsing HTML..." msgstr "\tAnalisi HTML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:345 msgid "\tBaen file detected. Re-parsing..." msgstr "\tFile di Baen individuato. Rianalizzo..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:361 msgid "Written preprocessed HTML to " msgstr "HTML preprocessato scritto in " -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:379 msgid "Processing %s" -msgstr "Sto processando %s" +msgstr "Elaborazione %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:393 msgid "\tConverting to BBeB..." msgstr "\tConversione in 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 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:552 msgid "Could not parse file: %s" msgstr "Impossibile analizzare il file: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:544 msgid "%s is an empty file" msgstr "%s è un file vuoto" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:564 msgid "Failed to parse link %s %s" msgstr "Analisi fallita del link %s %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" msgstr "Impossibile aggiungere il link %s alla TOC" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" -msgstr "Impossibile processare l'immagine %s. Errore: %s" +msgstr "Impossibile elaborare l'immagine %s. Errore: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" -msgstr "Impossibile processare la PNG interlacciata %s" +msgstr "Impossibile elaborare l'immagine PNG interlacciata %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1017 msgid "" "Could not process image: %s\n" "%s" msgstr "" -"Impossibile processare l'immagine: %s\n" +"Impossibile elaborare l'immagine: %s\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1772 msgid "" "An error occurred while processing a table: %s. Ignoring table markup." msgstr "" -"Si è verificato un errore nel processamento della tabella: %s. Ignoro il " -"codice della tabella" +"Si è verificato un errore nell'elaborazione di una tabella: %s. Codice della " +"tabella ignorato." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1774 msgid "" "Bad table:\n" "%s" @@ -1953,23 +1969,23 @@ msgstr "" "Tabella malformata:\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1796 msgid "Table has cell that is too large" msgstr "La tabella ha celle troppo larghe" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1862 msgid "Could not read cover image: %s" msgstr "Impossibile leggere l'immagine di copertina: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Cannot read from: %s" msgstr "Impossibile leggere da: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1994 msgid "Failed to process opf file" -msgstr "Processamento del file OPF fallito" +msgstr "Elaborazione del file opf fallita" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:136 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:136 msgid "" "%prog book.lrf\n" "Convert an LRF file into an LRS (XML UTF-8 encoded) file" @@ -1977,31 +1993,31 @@ msgstr "" "%prog libro.lrf\n" "Converte un file LRF in un file LRS (XML codificato UTF-8)" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:137 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:137 msgid "Output LRS file" msgstr "Restituisce un file LRS" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:139 msgid "Do not save embedded image and font files to disk" msgstr "Non salvare le immagini incorporate e i font sul disco" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:158 msgid "Parsing LRF..." msgstr "Analisi LRF..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:161 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:161 msgid "Creating XML..." msgstr "Creazione XML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:163 msgid "LRS written to " msgstr "LRS scritto in " -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:267 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:267 msgid "Could not read from thumbnail file:" msgstr "Impossibile leggere dal file della miniatura:" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:287 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:287 msgid "" "%prog [options] file.lrs\n" "Compile an LRS file into an LRF file." @@ -2009,24 +2025,24 @@ msgstr "" "%prog [opzioni] file.lrs\n" "Compila un file LRS dentro un file LRF" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:288 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:288 msgid "Path to output file" msgstr "Percorso del file in uscita" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:114 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:290 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:114 msgid "Verbose processing" msgstr "Elaborazione dettagliata" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:292 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:292 msgid "Convert LRS to LRS, useful for debugging." msgstr "Converte LRS in LRS, utile per il debugging" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:457 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:457 msgid "Invalid LRF file. Could not set metadata." msgstr "File LRF non valido. Impossibile inviare metadati." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:582 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:582 msgid "" "%prog [options] mybook.lrf\n" "\n" @@ -2040,29 +2056,29 @@ msgstr "" "Mostra/modifica i metadati in un file LRF\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:603 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:603 msgid "" "Path to a txt file containing the comment to be stored in the lrf file." msgstr "" "Percorso a un file TXT contenente il commento che verrà incluso nel file LRF" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:90 msgid "Enable autorotation of images that are wider than the screen width." msgstr "" "Abilita la rotazione automatica delle immagini che sono più larghe dello " "schermo" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:94 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:94 msgid "Set the space between words in pts. Default is %default" msgstr "" "Imposta lo spazio tra le parole in punti. Il valore predefinito è %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:97 msgid "Add a header to all the pages with title and author." msgstr "" "Aggiunge a tutte le pagine un'intestazione contenente il titolo e l'autore" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:100 +#: /home/kovid/work/trunk/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" @@ -2070,13 +2086,13 @@ msgstr "" "Imposta il formato dell'intestazione. %a verrà rimpiazzato dall'autore e %t " "dal titolo. L'impostazione predefinita è %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:104 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:104 msgid "Add extra spacing below the header. Default is %default pt." msgstr "" "Aggiunge spazio extra sotto l'intestazione. Il valore di default è %default " "punti." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:107 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:107 msgid "" "Minimum paragraph indent (the indent of the first line of a paragraph) in " "pts. Default: %default" @@ -2084,7 +2100,7 @@ msgstr "" "Indentazione minima paragrafo (l'indentazione della prima riga di un " "paragrafo) in pt. Predefinita: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:112 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:112 msgid "" "Render tables in the HTML as images (useful if the document has large or " "complex tables)" @@ -2092,7 +2108,7 @@ msgstr "" "Trasforma in immagini le tabelle di HTML (utile se il documento ha tabelle " "grandi o complesse)" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:117 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:117 msgid "" "Multiply the size of text in rendered tables by this factor. Default is " "%default" @@ -2100,110 +2116,110 @@ msgstr "" "Moltiplica la dimensione del testo nelle tabelle trasformate di questo " "fattore. Predefinito: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:121 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:121 msgid "The serif family of fonts to embed" msgstr "La famiglia di caratteri con grazie da includere" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:124 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:124 msgid "The sans-serif family of fonts to embed" msgstr "La famiglia di caratteri senza grazie da includere" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:127 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:127 msgid "The monospace family of fonts to embed" msgstr "La famiglia di caratteri a spaziatura fissa da includere" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:152 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:152 msgid "Comic" msgstr "Comic" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:396 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:543 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:359 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:887 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:550 msgid "Title" msgstr "Titolo" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:888 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:364 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:888 msgid "Author(s)" msgstr "Autore(i)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:399 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "Editore" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:400 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Produttore" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1079 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:401 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:210 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:211 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:318 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1079 msgid "Comments" msgstr "Commenti" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:408 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:143 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:409 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:306 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1075 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:143 msgid "Tags" msgstr "Tag" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:410 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:91 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:323 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1084 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:91 msgid "Series" msgstr "Serie" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:412 msgid "Language" msgstr "Lingua" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:414 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1067 msgid "Timestamp" msgstr "Timestamp" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:416 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:70 msgid "Published" msgstr "Pubblicato" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:417 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:418 msgid "Rights" msgstr "Privilegi" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:85 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/amazon.py:85 msgid "EDITORIAL REVIEW" msgstr "Rassegna Editoriale" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/archive.py:41 msgid "" "Extract common e-book formats from archives (zip/rar) files. Also try to " "autodetect if they are actually cbz/cbr files." @@ -2211,11 +2227,11 @@ msgstr "" "Estrae i formati comuni di e-book da un archivio (zip/rar). Cerca anche di " "identificare se essi sono file cbz o cbr" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:20 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:20 msgid "options" msgstr "opzioni" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:21 msgid "" "\n" "Read/Write metadata from/to ebook files.\n" @@ -2240,7 +2256,7 @@ msgstr "" "alcuni metadati in un file che non li supporta, i metadati saranno\n" "ignorati.\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:40 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:40 msgid "" "Set the authors. Multiple authors should be separated by the & character. " "Author names should be in the order Firstname Lastname." @@ -2248,7 +2264,7 @@ msgstr "" "Imposta gli autori. Multilpli autori devono essere divisi dal carattere &. I " "nomi degli autori devono essere nell'ordine Nome Cognome." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:44 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:44 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." @@ -2256,7 +2272,7 @@ msgstr "" "La versione del titolo da usare per l'ordinamento. Se non specificata, la " "versione verrà generata automaticamente dal titolo." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:48 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:48 msgid "" "String to be used when sorting by author. If unspecified, and the author(s) " "are specified, it will be auto-generated from the author(s)." @@ -2264,30 +2280,30 @@ msgstr "" "La stringa che verrà usata nell'ordinamento per autore. Se non specificata, " "essa verrà generata automaticamente dal nome dell'autore." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:52 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:52 msgid "Set the cover to the specified file." msgstr "Imposta la copertina per il file specificato" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:58 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:58 msgid "Set the book category." msgstr "Imposta la categoria del libro" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:74 msgid "Set the published date." msgstr "Imposta la data di pubblicazione" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:77 msgid "Get the cover from the ebook and save it at as the specified file." msgstr "Estrae la copertina dall'ebook e la salva in un file specificato." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:80 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:80 msgid "" "Specify the name of an OPF file. The metadata will be written to the OPF " "file." msgstr "" "Specifica il nome di un file OPF. I metadati saranno scritti in questo file." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:83 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:83 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 " @@ -2297,71 +2313,103 @@ msgstr "" "nell'ebook. I metadati specificati dalla linea di comando sovrascriveranno i " "metadati letti dal file OPF" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:88 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:88 msgid "Set the BookID in LRF files" msgstr "Imposta il BookID nel file LRF" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:153 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:153 msgid "No file specified" msgstr "Nessun file specificato" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:168 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:168 msgid "Original metadata" msgstr "Metadati originali" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:185 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:185 msgid "Changed metadata" msgstr "Metadati cambiati" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:197 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:197 msgid "OPF created in" msgstr "Creato OPF in" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:203 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:203 msgid "Cover saved to" msgstr "Copertina salvata in" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:205 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:205 msgid "No cover found" msgstr "Nessuna copertina trovata" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:15 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:27 msgid "Cover download" msgstr "Scarica cover" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:79 +msgid "Download covers from openlibrary.org" +msgstr "Scarica copertine da openlibrary.org" + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:136 +msgid "ISBN: %s not found" +msgstr "ISBN: %s non trovato" + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:117 +msgid "Download covers from librarything.com" +msgstr "Scarica copertine da librarything.com" + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:128 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:68 +msgid "LibraryThing.com timed out. Try again later." +msgstr "Connessione con LibraryThing.com scaduta. Riprovare più tardi." + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:135 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:75 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" +"Impossibile scaricare la copertina perché il server è sovraccarico. " +"Ritentare più tardi" + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:79 +msgid "LibraryThing.com server error. Try again later." +msgstr "Errore server LibraryThing.com. Riprovare più tardi." + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" msgstr "Scarica i metadati da Douban.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:50 msgid "Metadata download" msgstr "Scarica i metadati" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:127 msgid "ratings" msgstr "Valutazioni" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:127 msgid "tags" msgstr "tag" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:128 msgid "description/reviews" msgstr "Descrizione/Rassegne" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:129 msgid "Download %s from %s" msgstr "Scarica %s da %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:155 msgid "Downloads metadata from Google Books" msgstr "Scarica i metadati da Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:172 msgid "Downloads metadata from isbndb.com" msgstr "Scarica i metadati da isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:184 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:200 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2369,15 +2417,15 @@ msgstr "" "Per utilizzare isbndb.com è necessario registrarsi per un %saccount " "gratuito%s ed inserire qui sotto il codice di accesso ottenuto." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:194 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:210 msgid "Downloads social metadata from amazon.com" msgstr "Scaricare i metadati sociali da amazon.com." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:213 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:229 msgid "Downloads series/tags/rating information from librarything.com" msgstr "Scarica informazioni su serie/tag/valutazione da librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:95 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:95 msgid "" "\n" "%prog [options] key\n" @@ -2402,43 +2450,27 @@ msgstr "" "gratuitamente su isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:106 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:106 msgid "The ISBN ID of the book you want metadata for." msgstr "Il codice ISBN del libro di cui si vogliono i metadati." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:108 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:108 msgid "The author whose book to search for." msgstr "L'autore del libro da cercare" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:110 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:110 msgid "The title of the book to search for." msgstr "Il titolo del libro da cercare" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:112 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:112 msgid "The publisher of the book to search for." msgstr "L'editore del libro da cercare" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 -msgid "LibraryThing.com timed out. Try again later." -msgstr "Connessione con LibraryThing.com scaduta. Riprovare più tardi." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 -msgid "" -"Could not fetch cover as server is experiencing high load. Please try again " -"later." -msgstr "" -"Impossibile scaricare la copertina perché il server è sovraccarico. " -"Ritentare più tardi" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:76 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:76 msgid " not found." msgstr " non trovato" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 -msgid "LibraryThing.com server error. Try again later." -msgstr "Errore server LibraryThing.com. Riprovare più tardi." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:86 msgid "" "\n" "%prog [options] ISBN\n" @@ -2452,21 +2484,21 @@ msgstr "" "Recupera un'immagine di copertina/metadato sociale per il libro identificato " "con da ISBN da LibraryThing.com\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1226 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/opf2.py:1226 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1399 msgid "Cover" msgstr "Copertina" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:22 msgid "Modify images to meet Palm device size limitations." msgstr "" "Modificare le immagini per i limiti di grandezza dei dispositivi Palm" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:26 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:26 msgid "When present, use author sort field as author." msgstr "Quando disponibile, utilizzare l'autore per ordinare la lista." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:30 +#: /home/kovid/work/trunk/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." @@ -2474,139 +2506,139 @@ msgstr "" "Non aggiungere un indice alla fine del libro. Opzione utile se il libro " "contiene già il suo indice." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:33 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:33 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/htmltoc.py:56 msgid "Title for any generated in-line table of contents." msgstr "Titolo per ogni indice in-line generato." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:37 msgid "Disable compression of the file contents." msgstr "Disabilita la compressione dei file di contenuto" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:40 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:40 msgid "Tag marking book to be filed with Personal Docs" msgstr "Il tag marca il libro come Documento Personale" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:108 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:108 msgid "All articles" msgstr "Tutti gli articoli" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:259 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Questo è un libro Amazon Topaz. Non può essere elaborato." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1400 msgid "Title Page" msgstr "Pagina iniziale" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:194 msgid "Table of Contents" msgstr "Indice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1402 msgid "Index" msgstr "Indice analitico" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1403 msgid "Glossary" msgstr "Glossario" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1404 msgid "Acknowledgements" msgstr "Ringraziamenti" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1405 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1406 msgid "Colophon" msgstr "Colophon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1407 msgid "Copyright" msgstr "Diritti d'autore" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1408 msgid "Dedication" msgstr "Dedica" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1409 msgid "Epigraph" msgstr "Epigrafe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1410 msgid "Foreword" msgstr "Premessa" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1411 msgid "List of Illustrations" msgstr "Indice delle figure" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1412 msgid "List of Tables" msgstr "Indice delle tabelle" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1413 msgid "Notes" msgstr "Note" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1414 msgid "Preface" msgstr "Prefazione" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1415 msgid "Main Text" msgstr "Corpo del testo" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/iterator.py:41 msgid "%s format books are not supported" msgstr "I libri nel formato %s non sono supportati" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 msgid "HTML TOC generation options." msgstr "Opzioni per creazione della TOC (indice contenuti) da HTML" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:113 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/jacket.py:113 msgid "Book Jacket" msgstr "Copertina del libro" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 +#: /home/kovid/work/trunk/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 "" "Impossibile trovare un buon punto dove dividere: %s Dimensione sotto-albero: " "%d KB" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/writer.py:32 msgid "OPF/NCX/etc. generation options." msgstr "Opzioni per creare OPF/NCX/etc." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:35 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/writer.py:35 msgid "OPF version to generate. Default is %default." msgstr "Versione OPF da creare. Il valore predefinito è %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:37 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/writer.py:37 msgid "" "Generate an Adobe \"page-map\" file if pagination information is available." msgstr "" "Crea un documento Adobe \"page-map\" se le preferenze di impaginazione sono " "disponibili." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/reader132.py:128 msgid "Footnotes" msgstr "Note" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/reader132.py:135 msgid "Sidebar" msgstr "Menu a lato" -#: /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:24 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/trunk/src/calibre/ebooks/tcr/input.py:23 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:24 msgid "" "Normally calibre treats blank lines as paragraph markers. With this option " "it will assume that every line represents a paragraph instead." @@ -2615,9 +2647,9 @@ msgstr "" "paragrafi. Con questa opzione si assumerà che ogni linea rappresenti un " "paragrafo." -#: /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:28 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/trunk/src/calibre/ebooks/tcr/input.py:27 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:28 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+ " @@ -2629,11 +2661,11 @@ msgstr "" "(uso del TAB o più di 2 spazi) siano considerate paragrafi. I paragrafi " "finiscono alla successivo rientro." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/output.py:23 msgid "Format to use inside the pdb container. Choices are:" msgstr "Formattazione da usare nel pdb. Le opzioni sono:" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:27 +#: /home/kovid/work/trunk/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." @@ -2642,11 +2674,11 @@ msgstr "" "predefinito è CP1252. Nota: Questa opzione non è rispettata da tutti i " "formati." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/input.py:24 msgid "Do not extract images from the document" msgstr "Non estrarre le immagini dal documento" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 +#: /home/kovid/work/trunk/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 " @@ -2656,11 +2688,11 @@ msgstr "" "linea. Valori accettati sono numeri decimali tra 0 e 1. Il valore " "predefinito è 0.5 che è la lunghezza mediana di linea." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/input.py:30 msgid "Use the new PDF conversion engine." msgstr "Usa il nuovo motore di conversione PDF." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/cli.py:31 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/cli.py:31 msgid "" "command ...\n" "\n" @@ -2680,7 +2712,7 @@ msgstr "" "\n" "Manipolare un PDF.\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:29 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:29 msgid "" "[options] file.pdf\n" "\n" @@ -2690,44 +2722,44 @@ msgstr "" "\n" "Sagoma un documento 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 -#: /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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:38 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:36 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:33 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:41 msgid "" "Path to output file. By default a file is created in the current directory." msgstr "" "Percorso del file in uscita. Per impostazione predefinita viene creato nella " "cartella corrente." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:41 msgid "Number of pixels to crop from the left most x (default is %s)" msgstr "" "Numero di pixel per sagomare dal punto x più a sinistra (il valore " "predefinito è %s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:44 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:44 msgid "Number of pixels to crop from the left most y (default is %s)" msgstr "" "Numero di pixel per sagomare dal punto y più a sinistra (il valore " "predefinito è %s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:47 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:47 msgid "Number of pixels to crop from the right most x (default is %s)" msgstr "" "Numero di pixel per sagomare dal punto x più a destra (il valore predefinito " "è %s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:50 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:50 msgid "Number of pixels to crop from the right most y (default is %s)" msgstr "" "Numero di pixel per sagomare dal punto y più a destra (il valore predefinito " "è %s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:53 +#: /home/kovid/work/trunk/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`" @@ -2736,21 +2768,21 @@ msgstr "" "individuali con il comando `gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox " "file.pdf 2> bounding`" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:73 msgid "Crop Options:" msgstr "Opzioni di rifilamento" -#: /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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:73 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Options to control the transformation of pdf" msgstr "Opzioni per controllare la trasformazione di PDF" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:23 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:23 msgid "" "[options] file.pdf password\n" "\n" @@ -2760,11 +2792,11 @@ msgstr "" "\n" "Decifra il PDF.\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 msgid "Decrypt Options:" msgstr "Opzioni di decifrazione" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 msgid "" "[options] file.pdf password\n" "\n" @@ -2774,11 +2806,11 @@ msgstr "" "\n" "Cifra il PDF.\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 msgid "Encrypt Options:" msgstr "Opzioni di crittogafia" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:21 msgid "" "file.pdf ...\n" "\n" @@ -2788,33 +2820,33 @@ msgstr "" "\n" "Ottieni i dettagli del PDF.\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author" msgstr "Autore" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:47 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:47 msgid "Subject" msgstr "Soggetto" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:48 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:48 msgid "Creator" msgstr "Creatore" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:50 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:50 msgid "Pages" msgstr "Pagine" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:51 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:51 msgid "File Size" msgstr "Grandezza del file" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:52 msgid "PDF Version" msgstr "Versione PDF" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:25 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:25 msgid "" "[options] file1.pdf file2.pdf ...\n" "\n" @@ -2828,11 +2860,11 @@ msgstr "" "\n" " Unisce i diversi documenti PDF.\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:56 msgid "Merge Options:" msgstr "Opzioni di unione" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:25 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:25 msgid "" "[options] file.pdf\n" "\n" @@ -2842,11 +2874,11 @@ msgstr "" "\n" "Inverte il PDF.\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:54 msgid "Reverse Options:" msgstr "Opzioni di rovesciamento" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:24 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:24 msgid "" "file.pdf degrees\n" "\n" @@ -2856,11 +2888,11 @@ msgstr "" "\n" "Ruotare le pagine del PDF in senso orario.\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:53 msgid "Rotate Options:" msgstr "Opzioni di rotazione" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:25 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:25 msgid "" "\n" "%prog %%name [options] file.pdf page_to_split_on ...\n" @@ -2886,11 +2918,11 @@ msgstr "" "\n" "Dividi il PDF.\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Split Options:" msgstr "Opzioni di divisione" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:31 +#: /home/kovid/work/trunk/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!" @@ -2898,7 +2930,7 @@ msgstr "" "L'unità di misura. Il valore predefinito è il pollice. Le opzioni sono %s. " "Nota: questa opzione non influenza l'unità per i margini!" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:36 +#: /home/kovid/work/trunk/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" @@ -2906,7 +2938,7 @@ msgstr "" "La grandezza del foglio. Questa grandezza sarà ignorata quando si usa un " "output personalizzato. Il valore predefinito è lettera. Le opzioni sono %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:40 +#: /home/kovid/work/trunk/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." @@ -2916,13 +2948,13 @@ msgstr "" "sovrascrive e ha precedenza su ogni altra opzione che specifica le " "dimensioni di pagina." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:45 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/output.py:45 msgid "The orientation of the page. Default is portrait. Choices are %s" msgstr "" "L'orientamento della pagina. Il valore predefinito è ritratto. Le opzioni " "sono %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/output.py:49 msgid "" "Preserve the aspect ratio of the cover, instead of stretching it to fill the " "ull first page of the generated pdf." @@ -2930,18 +2962,18 @@ msgstr "" "Conserva le proporzioni della copertina, invece di espanderla per ricoprire " "la prima pagina del pdf generato." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/pdftohtml.py:55 msgid "Could not find pdftohtml, check it is in your PATH" msgstr "Impossibile trovare pdftohtml, verificare che sia nel proprio PATH" -#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:33 +#: /home/kovid/work/trunk/src/calibre/ebooks/pml/output.py:33 msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "" "Specifica la codifica dei caratteri nel documento di output. Il valore " "predefinito è CP1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:200 +#: /home/kovid/work/trunk/src/calibre/ebooks/rtf/input.py:194 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -2951,14 +2983,14 @@ msgstr "" "Provate a convertire il documento in HTML e riprovate.\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 +#: /home/kovid/work/trunk/src/calibre/ebooks/tcr/output.py:23 msgid "" "Specify the character encoding of the output document. The default is utf-8." msgstr "" "Specifica la codifica dei caratteri nel documento di output. Il valore " "predefinito è UTF-8." -#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27 +#: /home/kovid/work/trunk/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 " @@ -2968,7 +3000,7 @@ msgstr "" "1 è il valore più basso di compressione, ma il più veloce, e 10 è il più " "alto valore di compressione, ma il più lento." -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:34 msgid "" "Normally extra spaces are condensed into a single space. With this option " "all spaces will be displayed." @@ -2976,19 +3008,19 @@ msgstr "" "Normalmente gli spazi multipli vengono trasformati in uno unico. Con questa " "opzioni vergono visualizzati tutti gli spazi." -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:37 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:37 msgid "" "Run the text input through the markdown pre-processor. To learn more about " "markdown see" msgstr "" -"Analizzare il testo sorgente utilizzando il pre-processore markdown. Per " -"maggiori informazioni su markdown vedere" +"Analizza il testo sorgente utilizzando il pre-processore markdown. Per " +"maggiori informazioni sul markdown visitare" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:40 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:40 msgid "Do not insert a Table of Contents into the output text." msgstr "Non inserire un indice nel testo di output." -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 +#: /home/kovid/work/trunk/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'. " @@ -2999,7 +3031,7 @@ msgstr "" "precedenti. Per Mac OS X usare 'unix'. 'system' è il valore predefinito per " "il tipo di interruzioni di linea usato da questo sistema operativo." -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:30 +#: /home/kovid/work/trunk/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." @@ -3008,7 +3040,7 @@ msgstr "" "predefinito è UTF-8. Nota: Questa opzione non è rispettata da tutti i " "formati." -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 +#: /home/kovid/work/trunk/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 " @@ -3021,7 +3053,7 @@ msgstr "" "esiste un minimo di 25 caratteri. Usare 0 per disattivare il troncamento di " "linea." -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 +#: /home/kovid/work/trunk/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" @@ -3030,336 +3062,343 @@ 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:33 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:33 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:35 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:35 msgid "Confirm before deleting" msgstr "Chiedi conferma prima di eliminare" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Geometria della finestra principale" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/trunk/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:41 +#: /home/kovid/work/trunk/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:43 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by name, popularity, or rating" msgstr "Ordina i tag per nome, popolarità o valutazione" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/trunk/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:47 +#: /home/kovid/work/trunk/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:49 +#: /home/kovid/work/trunk/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:52 +#: /home/kovid/work/trunk/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:54 +#: /home/kovid/work/trunk/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:55 +#: /home/kovid/work/trunk/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:56 +#: /home/kovid/work/trunk/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:57 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Mostra l'icona nell'area di notifica" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Invia le notizie scaricate al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" "Elimina i libri dalla biblioteca dopo averli caricati sul dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -"Mostra la vetrina delle copertine in una finestra separata invece della " -"finestra principale di Calibre." +"Visualizza le copertine in una finestra separata invece che nella finestra " +"principale di calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/trunk/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:67 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Azione predefinita da eseguire quando viene cliccato il pulsante di invio al " "dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" -msgstr "Limite masimo di processi in attesa" +msgstr "Numero massimo di lavori in attesa" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Scarica metadati sociali (tag/valutazioni/etc.)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:93 msgid "Overwrite author and title with new metadata" msgstr "Usa i nuovi metadati per cambiare l'autore e il titolo" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 +#: /home/kovid/work/trunk/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." +msgstr "Limita il massimo numero di lavori simultanei al numero delle CPU." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:97 msgid "tag browser categories not to display" msgstr "categorie del browser di tag da non visualizzare" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:99 msgid "The layout of the user interface" msgstr "L'aspetto dell'interfaccia grafica" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:101 msgid "Show the average rating per item indication in the tag browser" msgstr "Visualizza la valutazione media per elemento nel browser dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:103 msgid "Disable UI animations" msgstr "Disattiva animazioni interfaccia" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:151 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "Copiato" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:185 msgid "Copy" msgstr "Copia" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:185 msgid "Copy to Clipboard" msgstr "Copia negli appunti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:396 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:397 msgid "Choose Files" msgstr "Seleziona documenti" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:245 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:245 msgid "Use library only" msgstr "Usare solo la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:246 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:246 msgid "User annotations generated from main library only" msgstr "Annotazioni utente generate solo dalla biblioteca principale" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:611 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:707 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:941 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1059 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:623 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:682 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:719 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:740 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:925 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:998 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1116 msgid "No books selected" msgstr "Nessun libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:76 msgid "No books selected to fetch annotations from" msgstr "Nessun libro selezionato da cui prendere annotazioni" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:101 msgid "Merging user annotations into database" msgstr "Fondi le annotazioni utente nel database" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:129 msgid "%s
    Last Page Read: %d (%d%%)" msgstr "%s
    Ultima Pagina Letta: %d (%d%%)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:135 msgid "%s
    Last Page Read: Location %d (%d%%)" msgstr "%s
    Ultima Pagina Letta: Posizione %d (%d%%)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:154 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:154 msgid "Location %d • %s
    %s
    " msgstr "Posizione %d • %s
    %s
    " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:163 msgid "Page %d • %s
    " msgstr "Pagina %d • %s
    " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:168 msgid "Location %d • %s
    " msgstr "Posizione %d • %s
    " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:291 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:291 msgid "How many empty books?" msgstr "Quanti libri vuoti?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:292 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:292 msgid "How many empty books should be added?" msgstr "quanti libri vuoti si desidera aggiungere?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:390 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:339 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:390 msgid "Uploading books to device." msgstr "Invio dei libri al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:350 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:164 msgid "Books" msgstr "Libri" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:351 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:351 msgid "EPUB Books" msgstr "Libri EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:352 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:352 msgid "LRF Books" msgstr "Libri LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:353 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:353 msgid "HTML Books" msgstr "Libri HTML" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:354 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:354 msgid "LIT Books" msgstr "Libri LIT" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:355 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:355 msgid "MOBI Books" msgstr "Libri MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:356 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:356 msgid "Topaz books" msgstr "Libri Topaz" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:357 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:357 msgid "Text books" msgstr "Libri TXT" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:358 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:358 msgid "PDF Books" msgstr "Libri PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:359 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:359 msgid "Comics" msgstr "Fumetti" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:360 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:360 msgid "Archives" msgstr "Archivi" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:364 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:364 msgid "Supported books" msgstr "Libri supportati" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:399 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:399 msgid "Merged some books" msgstr "Uniti alcuni libri" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:400 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:400 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "Alcune copie sono state trovate e unite con i seguenti libri:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:409 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:409 msgid "Failed to read metadata" msgstr "Impossibile leggere i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:410 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:410 msgid "Failed to read metadata from the following" msgstr "Impossibile leggere i metadati dai seguenti" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:429 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:448 msgid "Add to library" msgstr "Aggiungi alla biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:459 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1228 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:429 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:473 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1260 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1285 msgid "No book selected" msgstr "Nessun libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:442 +msgid "" +"The following books are virtual and cannot be added to the calibre library:" +msgstr "" +"I seguenti libri sono virtuali e non possono essere aggiunti alla biblioteca " +"calibre:" + +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:448 msgid "No book files found" msgstr "Nessun libro trovato" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:456 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:470 msgid "Cannot delete" msgstr "Non si può cancellare" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:469 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:483 msgid "Choose formats to be deleted" msgstr "Seleziona i formati da cancellare" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:487 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:501 msgid "Choose formats not to be deleted" msgstr "Seleziona i formati da non cancellare" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:507 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:521 msgid "Cannot delete books" msgstr "Impossibile eliminare i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:508 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:522 msgid "No device is connected" msgstr "Nessun dispositivo collegato" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:518 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:532 msgid "Main memory" msgstr "Memoria principale" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:533 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:436 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:445 msgid "Storage Card A" msgstr "Scheda di memoria A" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:534 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:438 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:447 msgid "Storage Card B" msgstr "Scheda di memoria B" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:525 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:539 msgid "No books to delete" msgstr "Nessun libro da eliminare" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:526 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:540 msgid "None of the selected books are on the device" msgstr "Nessuno dei libri selezionati è sul device" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:600 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:557 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:612 msgid "Deleting books from device." msgstr "Cancellazione dei libri dal dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:564 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:578 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -3367,7 +3406,7 @@ msgstr "" "I libri selezionati saranno cancellati permanentemente e i file " "rimossi dal computer. Confermare?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:585 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:597 msgid "" "The selected books will be permanently deleted from your device. Are " "you sure?" @@ -3375,61 +3414,61 @@ msgstr "" "I libri selezionati verranno cancellati definitivamente

    dal " "dispositivo. Confermare?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:610 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:622 msgid "Cannot download metadata" msgstr "Impossibile scaricare i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:638 msgid "social metadata" msgstr "metadati sociali" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:640 msgid "covers" msgstr "copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:640 msgid "metadata" msgstr "metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:630 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:642 msgid "Downloading %s for %d book(s)" msgstr "Scaricamento %s per %d libro" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:654 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:666 msgid "Failed to download some metadata" msgstr "Impossibile scaricare alcuni metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:655 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:667 msgid "Failed to download metadata for the following:" msgstr "Impossibile a scaricare i metadati per i seguenti:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:658 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:670 msgid "Failed to download metadata:" msgstr "Impossibile scaricare i metadati:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:659 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:595 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:671 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:608 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:990 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Errore" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:706 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:681 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:718 msgid "Cannot edit metadata" msgstr "Impossibile modificare i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:730 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:739 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:742 msgid "Cannot merge books" msgstr "Impossibile unire i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:731 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:743 msgid "At least two books must be selected for merging" msgstr "Devono essere selezionati almeno due libri per essere uniti" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:735 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:747 msgid "" "All book formats and metadata from the selected books will be added to the " "first selected book.

    The second and subsequently selected " @@ -3440,7 +3479,7 @@ msgstr "" "primo libro selezionato.

    Gli altri libri non verranno " "cancellati o modificati.

    Procedere con l'operazione?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:746 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:758 msgid "" "All book formats and metadata from the selected books will be merged into " "the first selected book.

    After merger the second and " @@ -3456,51 +3495,66 @@ msgstr "" "verràpermantentemente cancellato dal computer.

    Procedere " "l'operazione?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:770 msgid "" "You are about to merge more than 5 books. Are you sure you want to " "proceed?" msgstr "Verranno uniti più di 5 libri. Confermare l'unione?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:875 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:924 msgid "Cannot save to disk" msgstr "Impossibile salvare sul disco" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:878 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:927 msgid "Choose destination directory" msgstr "Scegliere la cartella di destinazione" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:933 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:566 +msgid "Not allowed" +msgstr "Non permesso" + +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:934 +msgid "" +"You are trying to save files into the calibre library. This can cause " +"corruption of your library. Save to disk is meant to export files from your " +"calibre library elsewhere." +msgstr "" +"Si sta tentando di salvare dei file nella biblioteca di calibre. Questo può " +"danneggiare la biblioteca. Il salvataggio su disco è pensato per esportare i " +"file dalla biblioteca di calibre in un altro posto." + +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:968 msgid "Error while saving" msgstr "Errore durante il salvataggio" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:912 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:969 msgid "There was an error while saving." msgstr "Si è verificato un errore durante il salvataggio." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:920 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:976 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:977 msgid "Could not save some books" msgstr "Impossibile salvare alcuni libri" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:921 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:978 msgid "Click the show details button to see which ones." msgstr "Fare clic sul pulsante dettagli per vedere quali." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:942 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:999 msgid "No books selected to generate catalog for" msgstr "Nessun libro selezionato per la generazione del catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:959 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1016 msgid "Generating %s catalog..." msgstr "Generando %s catalogo..." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:964 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1021 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "Nessun libro trovato" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:965 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1022 msgid "" "No books to catalog\n" "Check exclude tags" @@ -3508,49 +3562,49 @@ msgstr "" "Nessun libro da catalogare\n" "Controlla i tag esclusi" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:975 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1032 msgid "Catalog generated." msgstr "Catalogo generato" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1035 msgid "Export Catalog Directory" msgstr "Esporta il catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:979 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1036 msgid "Select destination for %s.%s" msgstr "Selezionare una destinazione per %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:995 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1052 msgid "Fetching news from " msgstr "Recupero notizie da " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1009 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1066 msgid " fetched." msgstr " preso." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1058 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1115 msgid "Cannot convert" msgstr "Impossibile convertire" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1087 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1144 msgid "Starting conversion of %d book(s)" msgstr "Conversione di %d libri avviata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1264 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1260 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1321 msgid "Cannot view" msgstr "Impossibile leggere" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1209 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1266 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "Scegliere il formato da leggere" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1217 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1274 msgid "Multiple Books Selected" msgstr "Più libri selezionati" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1218 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1275 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 " @@ -3562,48 +3616,48 @@ msgstr "" "computer. Una volta avviato il processo questo non può essere fermato fino " "al completamento. Continuare comunque?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1227 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1284 msgid "Cannot open folder" msgstr "Impossibile aprire la cartella" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1265 +#: /home/kovid/work/trunk/src/calibre/gui2/actions/__init__.py:1322 msgid "%s has no available formats." msgstr "%s non ha formati disponibili" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:54 msgid "Searching in" msgstr "Cercando in" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:232 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:232 msgid "Adding..." msgstr "Sto aggiungendo...." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:245 msgid "Searching in all sub-directories..." msgstr "Cercando in tutte le sotto cartelle" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:258 msgid "Path error" msgstr "Errore di percorso" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:259 msgid "The specified directory could not be processed." msgstr "Impossibile elaborare la cartella indicata." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:263 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:810 msgid "No books" msgstr "Nessun libro." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:330 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:330 msgid "Added" msgstr "Aggiunto" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:343 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:343 msgid "Adding failed" msgstr "Aggiunta fallita" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:344 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:344 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." @@ -3612,11 +3666,11 @@ msgstr "" "di far ripartire Calibre e aggiungere i libri in incrementi più piccoli, " "fino a quando si indentifica il libro che causa il problema." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:356 msgid "Duplicates found!" msgstr "Scoperti duplicati!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:357 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:357 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -3624,73 +3678,73 @@ msgstr "" "Dei libri con lo stesso titolo sono già presenti nel database. Aggiungerli " "comunque?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:360 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:360 msgid "Adding duplicates..." msgstr "Aggiunta dei duplicati..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:427 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:427 msgid "Saving..." msgstr "Salvataggio..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:480 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:480 msgid "Saved" msgstr "Salvato" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:57 msgid "Searching for sub-folders" msgstr "Ricerca di sottocartelle" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:62 msgid "Searching for books" msgstr "Ricerca di libri" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:74 msgid "Looking for duplicates based on file hash" msgstr "Cerca i duplicati in base all'hash" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:109 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:65 msgid "Choose root folder" msgstr "Selezionare la cartella principale" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:137 msgid "Invalid root folder" msgstr "Cartella principale non valida" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:138 msgid "is not a valid root folder" msgstr "non è una cartella principale valida" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:148 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:148 msgid "Add books to calibre" msgstr "Aggiungi libri a calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/scan_ui.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/kindle_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/library_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/stanza_ui.py:41 msgid "WizardPage" msgstr "Pagina dell'assistente" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:22 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/scan_ui.py:22 msgid "Scanning root folder for books" msgstr "Ricerca di libri nella cartella principale" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:23 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/scan_ui.py:23 msgid "This may take a few minutes" msgstr "Questo richiederà alcuni minuti" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:58 msgid "Choose the location to add books from" msgstr "Selezionare la posizione dalla quale aggiungere i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:59 msgid "Select a folder on your hard disk" msgstr "Selezionare una cartella sul disco" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:60 msgid "" "

    calibre can scan your computer for existing books automatically. These " "books will then be copied into the calibre library. This wizard will " @@ -3710,11 +3764,11 @@ msgstr "" "

    Assicurarsi che la cartella selezionata per la biblioteca di calibre " "non sia all'interno della cartella principale selezionata.

    " -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:63 msgid "&Root folder:" msgstr "&Cartella principale" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:64 msgid "" "This folder and its sub-folders will be scanned for books to import into " "calibre's library" @@ -3722,57 +3776,57 @@ msgstr "" "In questa cartella e le sue sottocartelle saranno cercati i libri da " "importare nella biblioteca di calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:66 -#: /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:125 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 -#: /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:548 -#: /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:562 -#: /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:566 -#: /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:610 -#: /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:365 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 -#: /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:392 -#: /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:399 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:166 -#: /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/tag_list_editor_ui.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 -#: /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/shortcuts_ui.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:612 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:614 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:616 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:618 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:619 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:668 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:406 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:156 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:159 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:267 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:269 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:186 msgid "..." msgstr "..." -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:67 msgid "Handle multiple files per book" msgstr "Gestisce più file per libro" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:68 msgid "" "&One book per folder, assumes every ebook file in a folder is the same book " "in a different format" @@ -3780,194 +3834,194 @@ msgstr "" "&Un libro per cartella, si presume che ogni file in una cartella sia lo " "stesso libro ma con un diverso formato" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:69 msgid "" "&Multiple books per folder, assumes every ebook file is a different book" msgstr "" "&Più libri per cartella, si presume che ogni file sia un libro diverso" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:54 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1065 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:23 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:311 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1065 msgid "Path" msgstr "Percorso" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:24 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:312 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:100 msgid "Formats" msgstr "Formati" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:891 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1068 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:25 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:891 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1068 msgid "Collections" msgstr "Raccolte" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:56 msgid "Click to open" msgstr "Fare clic per aprire" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:305 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:317 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1078 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:274 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:305 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:311 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:317 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1074 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1078 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:274 msgid "None" msgstr "Nessuno" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:310 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:310 msgid "Click to open Book Details window" msgstr "Fare clic per visualizzare i dettagli del libro" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex.py:16 msgid "BibTeX Options" msgstr "Opzioni BibTeX" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output.py:17 msgid "Options specific to" msgstr "Opzioni specifiche per" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output.py:17 msgid "output" msgstr "output" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:66 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 -#: /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:77 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:107 msgid "Form" msgstr "Formato" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 msgid "Bib file encoding:" msgstr "Codifica file Bib:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 msgid "Fields to include in output:" msgstr "Campi da includere nell'output" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 msgid "ascii/LaTeX" msgstr "ascii/LaTeX" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 msgid "Encoding configuration (change if you have errors) :" msgstr "Configurazione di codifica (cambiare se ci sono errori) :" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 msgid "strict" msgstr "strict" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 msgid "replace" msgstr "sostituisci" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 msgid "ignore" msgstr "ignora" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 msgid "backslashreplace" msgstr "backslashreplace" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 msgid "BibTeX entry type:" msgstr "Tipo elemento BibTeX:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 msgid "mixed" msgstr "mixed" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 msgid "misc" msgstr "varie" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 msgid "book" msgstr "libro" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 msgid "Create a citation tag?" msgstr "Creare un nuovo tag citazione?" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 msgid "Expression to form the BibTeX citation tag:" msgstr "Espressione per formare il tag di citazione BibTeX:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 msgid "" "Some explanation about this template:\n" " -The fields availables are 'author_sort', 'authors', 'id',\n" @@ -3985,38 +4039,38 @@ msgstr "" " il primo elemento verrà selezionato.\n" " -Per i campi di tempo, verrà usata solo la data. " -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" msgstr "Opzioni CSV/XML" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 msgid "E-book options" msgstr "Opzioni per il libro elettronico" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1487 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1505 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:550 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1496 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1514 msgid "Catalog" msgstr "Catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Don't include this book' tag:" msgstr "Tag per 'Non usare questo libro':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "'Mark this book as read' tag:" msgstr "Tag per 'Marca questo libro come letto':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 msgid "Additional note tag prefix:" msgstr "Tag per note aggiuntive:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 msgid "Regex pattern describing tags to exclude as genres:" msgstr "Espressione regolare per definire i tag da escludere come generi:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 msgid "" "Regex tips:\n" "- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " @@ -4030,23 +4084,23 @@ msgstr "" "- Un espressione con un singolo punto esclude tutti i tag di genere, " "generando quindi una Sezione senza Genere" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 msgid "Include 'Titles' Section" msgstr "Includi la sezione 'Titolo'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 msgid "Include 'Recently Added' Section" msgstr "Includi Sezione 'Ultimi Aggiunti'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 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 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "Esempio paginazione per il catalog.ui" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 +#: /home/kovid/work/trunk/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 " @@ -4056,112 +4110,112 @@ msgstr "" "salvati in una conversione precedente (se esistente) invece di usare i " "valori predefiniti nelle Preferenze" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/bulk.py:67 msgid "Bulk Convert" msgstr "Conversione in gruppo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Opzioni specifiche per i formati di output" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input.py:15 msgid "Comic Input" msgstr "Fumetti" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input.py:13 msgid "input" msgstr "input" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "&Numero di colori:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Disabilita normali&zzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Ma&ntieni proporzioni" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Disabilita masc&hera di nitidezza" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Disabilita &Rifilatura" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Largo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "&Orizzontale" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "&Da destra a sinistra" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "&Non ordinare" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "De&speckle" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:99 msgid "&Disable comic processing" -msgstr "&Disabilita l'analisi di fumetti" +msgstr "&Disabilita l'elaborazione di fumetti" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:115 msgid "&Output format:" msgstr "&Formati output" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:101 msgid "Disable conversion of images to &black and white" msgstr "Disabilita la conversione delle immagini in bianco e nero" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "Debug" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:21 msgid "Debug the conversion process." msgstr "Debug del processo di conversione." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:51 msgid "Choose debug folder" msgstr "Selezionare una cartella per il rilevamento errori" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:57 msgid "Invalid debug directory" msgstr "Cartella di debug non valida" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:58 msgid "Failed to create debug directory" msgstr "Impossibile creare la cartella di debug" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 +#: /home/kovid/work/trunk/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 " @@ -4174,7 +4228,7 @@ msgstr "" "conversione e trovare i parametri di conversione corretti per l'indice e " "l'identificazione automatica dei capitoli." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +#: /home/kovid/work/trunk/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 " @@ -4184,58 +4238,58 @@ msgstr "" "fasi del processo di conversione. Questo codice HTML può essere un ottimo " "punto di partenza per adattare manualmente il processo di conversione." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output.py:15 msgid "EPUB Output" msgstr "Output EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:49 msgid "Do not &split on page breaks" msgstr "Non ÷re nelle interruzioni di pagina" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:50 msgid "No default &cover" msgstr "Nessuna &copertina predefinita" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:51 msgid "No &SVG cover" msgstr "Nessuna copertina &SVG" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:52 msgid "Preserve cover &aspect ratio" msgstr "Mantieni le &proporzioni della copertina" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:53 msgid "Split files &larger than:" msgstr "Dividere documenti più &grandi di:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:54 msgid " KB" msgstr " KB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input.py:12 msgid "FB2 Input" msgstr "Input FB2" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input_ui.py:29 msgid "Do not insert a &Table of Contents at the beginning of the book." msgstr "Non inserire un &indice all'inizio del libro." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output.py:14 msgid "FB2 Output" msgstr "Output 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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output_ui.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output_ui.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output_ui.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:47 msgid "&Inline TOC" -msgstr "&Tavola dei contenuti nel testo" +msgstr "&Indice nel testo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:99 msgid "Font rescaling wizard" msgstr "Assistente per ingradimento degli stili di caratteri" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 +#: /home/kovid/work/trunk/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 " @@ -4264,104 +4318,104 @@ msgstr "" "ebook.com/user_manual/conversion.html#font-size-rescaling\">manuale " "d'uso per capire come funziona il ridimensionamento dei caratteri.

    " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:103 msgid "&Output document" msgstr "&Output documento" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:104 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:109 msgid "&Base font size:" -msgstr "&Base Grandezza dei caratteri" +msgstr "Grandezza caratteri di &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:123 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:105 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:123 msgid "Font size &key:" -msgstr "Grandezza dei caratteri &key:" +msgstr "Grandezza caratteri &chiave:" -#: /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:122 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py: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:121 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:112 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:127 msgid " pt" msgstr " pt" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:107 msgid "Use &default values" -msgstr "Usare i valori predefiniti &default" +msgstr "Usare valori &predefiniti" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:108 msgid "&Input document" msgstr "&Input documento" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:111 msgid "&Font size: " msgstr "&Font grandezza " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:113 msgid " will map to size: " msgstr " sarà utilizzato come dimensione: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:114 msgid "0.0 pt" msgstr "0.0 pt" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:16 msgid "Look & Feel" msgstr "Visualizzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:18 msgid "Control the look and feel of the output" msgstr "Controlla l'aspetto dell'output" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:30 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:30 msgid "Original" msgstr "Originale" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:31 msgid "Left align" msgstr "Allinea a sinistra" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:32 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:32 msgid "Justify text" msgstr "Testo giustificato" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:120 msgid "&Disable font size rescaling" msgstr "&Disattiva l'aggiustamento proporzionale dei caratteri" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:121 msgid "Base &font size:" -msgstr "&Grandezza caratteri di base:" +msgstr "Grandezza caratteri di &base:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:124 msgid "Wizard to help you choose an appropriate font size key" msgstr "Procedura per scegliere la dimensione dei caratteri appropriata" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:126 msgid "Line &height:" msgstr "&Altezza delle righe:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:128 msgid "Input character &encoding:" -msgstr "&Encoding dei caratteri di input" +msgstr "&Codifica dei caratteri di input:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Remove &spacing between paragraphs" msgstr "Rimuovi gli spa&zi tra i paragrafi" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:130 msgid "Indent size:" msgstr "Ampiezza del rientro:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:131 msgid "" "

    When calibre removes inter paragraph spacing, it automatically sets a " "paragraph indent, to ensure that paragraphs can be easily distinguished. " @@ -4371,94 +4425,94 @@ msgstr "" "automaticamente un rientro di paragrafo, per assicurarsi che i paragrafi " "siano ben distinti. Questa opzione controlla l'ampiezza del rientro." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:132 msgid " em" msgstr " em" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:133 msgid "Text justification:" msgstr "Giustificazione testo:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "&Linearize tables" msgstr "&Linearizza le tabelle" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:135 msgid "Extra &CSS" msgstr "&CSS addizionale" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "&Transliterate unicode characters to ASCII" msgstr "&Transcodifica i caratteri unicode in ASCII" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:137 msgid "Insert &blank line" msgstr "Inserimento di righe &vuote" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:138 msgid "Keep &ligatures" msgstr "Mantieni &legami" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output.py:19 msgid "LRF Output" msgstr "Formato LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:116 msgid "Enable &autorotation of wide images" msgstr "Abilitare rotazione &automatica delle immagini larghe" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:117 msgid "&Wordspace:" msgstr "&Spazio tra le parole:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:119 msgid "Minimum para. &indent:" msgstr "&Rientro minimo del paragrafo:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:121 msgid "Render &tables as images" msgstr "Trasforma le &tabelle in immagini" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:122 msgid "Text size multiplier for text in rendered tables:" msgstr "" "Moltiplicatore della grandezza del testo per la presentazione di tabelle:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:123 msgid "Add &header" msgstr "Aggiungi &intestazione" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:124 msgid "Header &separation:" msgstr "&Spazio dall'intestazione:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:126 msgid "Header &format:" msgstr "&Formato dell'intestazione:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:127 msgid "&Embed fonts" msgstr "Caratteri &Embed" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:128 msgid "&Serif font family:" msgstr "Famiglia di caratteri &Serif:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:129 msgid "S&ans-serif font family:" msgstr "Famiglia di caratteri S&ans-Serif:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:130 msgid "&Monospaced font family:" msgstr "Famiglia di caratteri &Monospaced:" -#: /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:195 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:195 msgid "Metadata" msgstr "Metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:43 msgid "" "Set the metadata. The output file will contain as much of this metadata as " "possible." @@ -4466,78 +4520,78 @@ msgstr "" "Specificare i metadati. Il documento di output conterrà quanti più metadati " "possibili." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:111 msgid "Choose cover for " msgstr "Seleziona copertina per " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:118 msgid "Cannot read" msgstr "Impossibile leggere" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:119 msgid "You do not have permission to read the file: " msgstr "Non si hanno i permessi per leggere il file: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:180 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:127 msgid "Error reading file" msgstr "Errore nella lettura del file" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:128 msgid "

    There was an error reading from file:
    " msgstr "

    Si è verificato un errore nella lettura del file:
    " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:188 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:136 msgid " is not a valid picture" msgstr " non è un'immagine valida" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:167 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:401 msgid "Book Cover" msgstr "Copertina del libro" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:168 msgid "Use cover from &source file" msgstr "Usa copertina del file di &origine" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:169 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:402 msgid "Change &cover image:" msgstr "Ca&mbia l'immagine di copertina:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:403 msgid "Browse for an image to use as the cover of this book." msgstr "" "Sfoglia per trovare un'immagine da usare come copertina per questo libro" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:362 msgid "&Title: " msgstr "&Titolo: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:173 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:363 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:174 -#: /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:361 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid "&Author(s): " msgstr "A&utore(i): " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:175 msgid "Author So&rt:" msgstr "Classifica&zione autore:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:176 msgid "" "Change the author(s) of this book. Multiple authors should be separated by a " "comma" @@ -4545,20 +4599,20 @@ msgstr "" "Cambia l'autore di questo libro. Autori multipli devono essere separati da " "una virgola" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:177 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "&Publisher: " msgstr "&Editore: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:178 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:376 msgid "Ta&gs: " msgstr "T&ag: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

    They can be any words or phrases, separated by commas." @@ -4567,211 +4621,211 @@ msgstr "" "ricerche.

    Possono essere qualsiasi parola o frase, separati da " "virgole." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:180 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:380 msgid "&Series:" msgstr "&Serie:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:182 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:382 msgid "List of known series. You can add new series." msgstr "Lista di serie conosciute. È possibile aggiungere nuove serie" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:183 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid "Book " msgstr "Libro " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "Outup MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:42 msgid "Default" msgstr "Predefinito" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:67 msgid "&Title for Table of Contents:" msgstr "&Titolo per l'indice:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:68 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:69 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:69 msgid "Use author &sort for author" msgstr "Usa autore &sort per autore." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:70 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:71 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:71 msgid "Do not add Table of Contents to book" msgstr "Non aggiungere un indice al libro" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:72 msgid "Kindle options" msgstr "Opzioni Kindle" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:73 msgid "Periodical masthead font:" msgstr "Carattere Testata Periodica:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:74 msgid "Personal Doc tag:" msgstr "Tag Documenti Personali:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Imposta pagina" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:116 msgid "&Output profile:" msgstr "Personalizzazione &Output:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:117 msgid "Profile description" msgstr "Descrizione del profilo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:118 msgid "&Input profile:" msgstr "Personalizzazione &Input:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:119 msgid "Margins" msgstr "Margini" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:120 msgid "&Left:" msgstr "&Sinistra:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:122 msgid "&Top:" msgstr "&Alto:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:124 msgid "&Right:" msgstr "&Destra:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:126 msgid "&Bottom:" msgstr "&Basso:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input.py:12 msgid "PDB Input" msgstr "Input 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:47 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input_ui.py:32 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:47 msgid "Treat each &line as a paragraph" msgstr "Considera ogni linea come un paragrafo" -#: /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:48 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input_ui.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:48 msgid "Assume print formatting" msgstr "Individuare il formato di stampa" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output.py:16 msgid "PDB Output" msgstr "Output PDB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output_ui.py:36 msgid "&Format:" msgstr "&Formato:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input.py:12 msgid "PDF Input" msgstr "Input PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:39 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input_ui.py:39 msgid "Line &Un-Wrapping Factor:" msgstr "Fattore di &suddivisione delle linee:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:40 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input_ui.py:40 msgid "No &Images" msgstr "Nessuna &immagine" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output.py:17 msgid "PDF Output" msgstr "Output PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:43 msgid "&Paper Size:" msgstr "Formato &pagina:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:44 msgid "&Orientation:" msgstr "&Orientamento:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:45 msgid "Preserve &aspect ratio of cover" msgstr "Mantieni le &proporzioni della copertina" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output.py:14 msgid "RB Output" msgstr "Output RB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:83 msgid "No formats available" msgstr "Non sono disponibili formati" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:84 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:84 msgid "Cannot build regex using the GUI builder without a book." msgstr "" "Impossibile creare un'espressione regolare usando l'editor con interfaccia " "grafica senza un libro." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:103 msgid "Open book" msgstr "Libro aperto" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:52 msgid "Regex Builder" msgstr "Editore di Regex" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:53 msgid "Preview" msgstr "Anteprima" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:54 msgid "Regex:" msgstr "Regex:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:55 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:117 msgid "Test" msgstr "Test" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single.py:171 msgid "Convert" msgstr "Converti" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single.py:196 msgid "Options specific to the input format." msgstr "Opzioni specifiche per la formattazione dell'input." -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:112 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" msgstr "Finestra di dialogo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:113 msgid "&Input format:" msgstr "Formato di &input:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:114 msgid "Use &saved conversion settings for individual books" msgstr "Usare le &saved impostazioni di conversione individuale per i libri." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" "Detection" @@ -4779,128 +4833,126 @@ msgstr "" "Rilevamento\n" "della struttura" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:19 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:19 msgid "" "Fine tune the detection of chapter headings and other document structure." msgstr "" "Rilevamento approfondito dei capitoli e del resto della struttura del " "documento." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:34 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:34 msgid "Detect chapters at (XPath expression):" msgstr "Individuare i capitoli con (espressione XPath):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:35 msgid "Insert page breaks before (XPath expression):" msgstr "Inserire interruzioni di pagina prima di (espressione XPath)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:37 msgid "Header regular expression:" msgstr "Espressione regolare per l'intestazione:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:40 msgid "Footer regular expression:" msgstr "Espressione regolare per il piè di pagina." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:76 msgid "Invalid regular expression" msgstr "Espressione regolare non valida" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:77 msgid "Invalid regular expression: %s" msgstr "Espressione regolare non valida: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:38 msgid "Invalid XPath" msgstr "XPath non valido" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:39 msgid "The XPath expression %s is invalid." msgstr "L'espressione XPath %s non è valida." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:61 msgid "Chapter &mark:" msgstr "&Marcatore capitoli:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:62 msgid "Remove first &image" msgstr "Rimuovi la prima &immagine" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:63 msgid "Insert &metadata as page at start of book" msgstr "Inserire i &metadati come prima pagina del libro" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:64 msgid "&Preprocess input file to possibly improve structure detection" msgstr "" -"&Preprocess il documento sorgente per migliorare il rilevamento della " +"&Preprocessa il documento sorgente per migliorare il rilevamento della " "struttura" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:65 msgid "Remove F&ooter" msgstr "Rimuovi il f&ooter" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:66 msgid "Remove H&eader" msgstr "Rimuovi l'&intestazione" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:16 msgid "" "Table of\n" "Contents" -msgstr "" -"Indice dei\n" -"Contenuti" +msgstr "Indice" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:18 msgid "Control the creation/conversion of the Table of Contents." msgstr "Controllo della creazione/conversione dell'indice." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:29 msgid "Level &1 TOC (XPath expression):" -msgstr "Livello &1 tavola dei contenuti (espressione XPath)" +msgstr "Livello &1 indice (espressione XPath):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:30 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:30 msgid "Level &2 TOC (XPath expression):" -msgstr "Livello &2 tavola dei contenuti (espressione XPath)" +msgstr "Livello &2 indice (espressione XPath):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:31 msgid "Level &3 TOC (XPath expression):" -msgstr "Livello &3 tavola dei contenuti (espressione XPath)" +msgstr "Livello &3 indice (espressione XPath):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:63 msgid "Do not add &detected chapters to the Table of Contents" msgstr "N&on aggiungere all'indice i capitoli rilevati." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:64 msgid "Number of &links to add to Table of Contents" msgstr "N&umero di link da aggiungere all'indice" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:65 msgid "Chapter &threshold" msgstr "I&nizio capitolo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:66 msgid "&Force use of auto-generated Table of Contents" msgstr "&Forza l'uso dell'indice generato automaticamente." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:67 msgid "TOC &Filter:" msgstr "&Filtro dell'indice:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input.py:12 msgid "TXT Input" msgstr "Input TXT" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:49 msgid "Process using markdown" msgstr "Analizzare utilizzando markdown" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:50 msgid "" "

    Markdown is a simple markup language for text files, that allows for " "advanced formatting. To learn more visit markdown." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:51 msgid "Do not insert Table of Contents into output text when using markdown" msgstr "" "Non inserire l'indice nel testo di output quando si utilizza il markdown." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:52 msgid "Preserve &spaces" msgstr "Mantieni gli &spazi" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" msgstr "Output TXT" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:46 msgid "&Line ending style:" msgstr "Tipo di interruzione di &linea:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:48 msgid "&Maximum line length:" msgstr "Lunghezza di linea &massima:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:49 msgid "Force maximum line lenght" msgstr "Forzare la lunghezza massima di riga" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_format_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress_ui.py:50 msgid "TextLabel" msgstr "EtichettaDiTesto" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:52 msgid "Use a wizard to help construct the XPath expression" msgstr "Utilizza il wizard di aiuto per create le espressioni XPath" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:68 msgid "Match HTML &tags with tag name:" msgstr "Far corrispondere i &tag HTML con il nome del tag:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:69 msgid "*" msgstr "*" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:70 msgid "a" msgstr "a" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:71 msgid "br" msgstr "br" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:72 msgid "div" msgstr "div" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:73 msgid "h1" msgstr "h1" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:74 msgid "h2" msgstr "h2" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:75 msgid "h3" msgstr "h3" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:76 msgid "h4" msgstr "h4" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:77 msgid "h5" msgstr "h5" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:78 msgid "h6" msgstr "h6" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:79 msgid "hr" msgstr "hr" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:80 msgid "span" msgstr "span" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:81 msgid "Having the &attribute:" msgstr "Con il seguente &attributo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:82 msgid "With &value:" msgstr "Con &value" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:83 msgid "(A regular expression)" msgstr "(Una espressione regolare)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 +#: /home/kovid/work/trunk/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 " @@ -5031,172 +5083,172 @@ msgstr "" "XPath consultare il Tutorial di XPath." -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/cover_flow.py:127 msgid "Cover browser could not be loaded" msgstr "Impossibile caricare il browser di copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/cover_flow.py:179 msgid "Browse by covers" msgstr "Sfoglia per copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:264 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:130 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:205 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:238 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:242 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:139 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:264 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:238 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:242 msgid "Undefined" msgstr "Non definito" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:133 msgid "Yes" msgstr "Sì" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:134 msgid "No" msgstr "No" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:116 msgid "star(s)" msgstr "stelle" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:117 msgid "Unrated" msgstr "Non votato" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:150 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:150 msgid "Set '%s' to today" msgstr "Imposta '%s' ad oggi" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:260 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:260 msgid " index:" msgstr " indice:" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:443 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:443 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 msgid "Automatically number books in this series" msgstr "Numera automaticamente i libri in questa serie" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:486 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:486 msgid "Remove all tags" msgstr "Elimina tutti i tag" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:507 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:507 msgid "tags to add" msgstr "tag da aggiungere" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:512 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:512 msgid "tags to remove" msgstr "tag da eliminare" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:49 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:49 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Nessun dettaglio disponibile." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:166 msgid "Device no longer connected." msgstr "Dispositivo non più collegato." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:271 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:284 msgid "Get device information" msgstr "Recupera informazioni sul dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:295 msgid "Get list of books on device" msgstr "Recupera la lista dei libri del dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:292 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:305 msgid "Get annotations from device" msgstr "Ricevi annotazioni dal dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:314 msgid "Send metadata to device" msgstr "Invia metadati al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:306 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:319 msgid "Send collections to device" msgstr "Invia collezioni al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:343 msgid "Upload %d books to device" msgstr "Invia %d libri al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:358 msgid "Delete books from device" msgstr "Cancella i libri dal dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:375 msgid "Download books from device" msgstr "Scarica libri dal dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:372 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:385 msgid "View book on device" msgstr "Visualizza libro sul dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:419 msgid "Set default send to device action" msgstr "Imposta azione predefinita di invio" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:425 msgid "Send to main memory" msgstr "Invia alla memoria principale" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:427 msgid "Send to storage card A" msgstr "Invia alla scheda di memoria A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:429 msgid "Send to storage card B" msgstr "Invia alla scheda di memoria B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:443 msgid "Main Memory" msgstr "Memoria principale" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:454 msgid "Send and delete from library" msgstr "Invia ed elimina dalla biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:442 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:455 msgid "Send specific format" msgstr "Invia uno specifico formato" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:491 msgid "Eject device" msgstr "Espelli dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:499 msgid "Fetch annotations (experimental)" msgstr "Preleva annotazioni (sperimentale)" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:596 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:609 msgid "Error communicating with device" msgstr "Errore di comunicazione col dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:618 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:631 msgid "Select folder to open as device" msgstr "Selezionare la cartella da aprire come dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:675 msgid "Failed" msgstr "Fallito" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:668 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:681 msgid "Error talking to device" msgstr "Errore di comunicazione col dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:682 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -5204,127 +5256,127 @@ msgstr "" "Si è verificato un errore di comunicazione temporaneo col dispositivo. " "Disconnettere e riconnettere il dispositivo e/o riavviare." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:711 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:724 msgid "Device: " msgstr "Dispositivo: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:713 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:726 msgid " detected." msgstr " individuato." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:798 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:811 msgid "selected to send" msgstr "Selezione per l'invio" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:803 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:816 msgid "Choose format to send to device" msgstr "Selezionare il formato da inviare al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:825 msgid "No device" msgstr "Nessun dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:826 msgid "Cannot send: No device is connected" msgstr "Impossibile inviare: nessun dispositivo connesso" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:816 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:829 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:833 msgid "No card" msgstr "Nessuna scheda" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:830 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:834 msgid "Cannot send: Device has no storage card" msgstr "Impossibile inviare: il dispositivo non ha schede di memoria" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:875 msgid "E-book:" msgstr "Libro elettronico" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:878 msgid "Attached, you will find the e-book" msgstr "Troverete allegato il libro elettronico" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:879 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:181 msgid "by" msgstr "di" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:880 msgid "in the %s format." msgstr "nel formato %s" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:893 msgid "Sending email to" msgstr "Spedizione di un messaggio elettronico a" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:910 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1193 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:923 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:931 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1025 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1087 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1206 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1214 msgid "No suitable formats" msgstr "Nessun formato adatto" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:911 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:924 msgid "Auto convert the following books before sending via email?" msgstr "" "Convertire automaticamente i libri selezionati prima di inviare con posta " "eletrronica?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:932 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" "Impossibile inviare i libri seguenti via email poiché non sono stati trovati " "formati adatti:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:950 msgid "Failed to email books" msgstr "Impossibile inviare via email i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:951 msgid "Failed to email the following books:" msgstr "Impossibile inviare via email i seguenti libri:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:942 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:955 msgid "Sent by email:" msgstr "Inviato per posta elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:984 msgid "News:" msgstr "Notizie:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:985 msgid "Attached is the" msgstr "Allegato c'é" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:996 msgid "Sent news to" msgstr "Notizie inviate a" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1194 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1026 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1088 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1207 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Convertire automaticamente i libri seguenti prima di inviarli al dispositivo?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1056 msgid "Sending catalogs to device." msgstr "Inviando i cataloghi al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1107 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1120 msgid "Sending news to device." msgstr "Invio delle notizie al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1173 msgid "Sending books to device." msgstr "Invio dei libri al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1215 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." @@ -5333,168 +5385,176 @@ msgstr "" "trovato un formato adeguato. È prima necessario convertire i libri in un " "formato supportato dal dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1264 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1277 msgid "No space on device" msgstr "Spazio sul dispositivo insufficiente" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1265 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1278 msgid "" "

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

    Impossibile inviare i libri al dispositivo poiché non c'è spazio " "sufficiente " -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:78 msgid "Select available formats and their order for this device" msgstr "" "Selezionare i formati disponibili e il loro ordine per questo dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:82 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:82 msgid "Use sub directories" msgstr "Utilizza sotto cartelle" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:83 msgid "Use author sort for author" -msgstr "" +msgstr "Usa classificazione autore come autore" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:85 msgid "Save &template:" msgstr "Salva &template" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:68 msgid "Fit &cover to view" msgstr "Ridimensiona &copertina per la visualizzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "&Precedente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "&Successivo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog.py:38 msgid "My Books" msgstr "I miei libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:289 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:289 msgid "Generate catalog" msgstr "Crea catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:70 msgid "Generate catalog for {0} books" msgstr "Genera catalogo per {0} libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:71 msgid "Catalog &format:" msgstr "Catalogo &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:72 msgid "" "Catalog &title (existing catalog with the same title will be replaced):" msgstr "" "Catalogo &title (cataloghi esistenti con lo stesso nome verranno " "sovrascritti):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:73 msgid "&Send catalog to device automatically" msgstr "&Send catalogo al dispositivo automaticamente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:74 msgid "Catalog options" msgstr "Opzioni catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "Scegliere il formato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:38 msgid "Choose location for calibre library" msgstr "Selezionare la posizione per la biblioteca calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:45 msgid "Same as current" msgstr "Come l'attuale" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:46 msgid "The location %s contains the current calibre library" msgstr "La posizione %s contiene la biblioteca calibre attuale" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:51 msgid "No existing library found" msgstr "Nessuna biblioteca trovata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:52 msgid "There is no existing calibre library at %s" msgstr "Non è presente alcuna biblioteca calibre in %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:56 msgid "Not empty" msgstr "Non vuoto" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:57 msgid "The folder %s is not empty. Please choose an empty folder" msgstr "La cartella %s non è vuota. Selezionare una cartella vuota" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location" +msgstr "Nessuna posizione" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location selected" +msgstr "Nessuna posizione selezionata" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:66 msgid "Choose your calibre library" msgstr "Selezionare una biblioteca calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:67 msgid "Your calibre library is currently located at {0}" msgstr "La biblioteca calibre attuale è posizionata in {0}" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:68 msgid "New &Location:" msgstr "Nuova &posizione:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:69 msgid "Use &existing library at the new location" msgstr "Usa biblioteca &esistente nella nuova posizione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:70 msgid "&Create an empty library at the new location" msgstr "&Crea una biblioteca vuota alla nuova posizione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:71 msgid "&Move current library to new location" msgstr "&Sposta la biblioteca attuale alla nuova posizione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf.py:33 msgid "Set defaults for conversion of comics (CBR/CBZ files)" msgstr "" "Imposta i parametri predefiniti per la conversione di fumetti (file CBR/CBZ)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf.py:48 msgid "Set options for converting %s" msgstr "mposta le opzioni per convertire %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:92 msgid "&Title:" msgstr "&Titolo:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:93 msgid "&Author(s):" msgstr "&Autore(i):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:95 msgid "&Profile:" msgstr "&Profilo:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comments_dialog_ui.py:41 msgid "Edit Comments" msgstr "Modifica Commenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:174 msgid "%(plugin_type)s %(plugins)s" msgstr "%(plugin_type)s %(plugins)s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:175 msgid "plugins" msgstr "plugins" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:184 msgid "" "\n" "Customization: " @@ -5502,19 +5562,19 @@ msgstr "" "\n" "Personalizzazione: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:199 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:199 msgid "General" msgstr "Generale" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:200 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:200 msgid "Interface" msgstr "Interfaccia" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:201 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:201 msgid "Conversion" msgstr "Conversione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:202 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:202 msgid "" "Email\n" "Delivery" @@ -5522,15 +5582,15 @@ msgstr "" "Invio per \n" "email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:203 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:203 msgid "Add/Save" msgstr "Aggiungi/Salva" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:204 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:204 msgid "Advanced" msgstr "Avanzate" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:205 msgid "" "Content\n" "Server" @@ -5538,23 +5598,23 @@ msgstr "" "Server dei\n" "contenuti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:206 msgid "Plugins" msgstr "Plug-in" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:230 msgid "Auto send" msgstr "Invio automatico" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:230 msgid "Email" msgstr "Posta elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:235 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:235 msgid "Formats to email. The first matching format will be sent." msgstr "Formati per email. Verrà inviato il primo formato compatibile." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:236 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:236 msgid "" "If checked, downloaded news will be automatically mailed
    to this email " "address (provided it is in one of the listed formats)." @@ -5563,47 +5623,55 @@ msgstr "" "questo indirizzo di posta elettronica (presupposto che ce ne sia uno " "indicato nella lista delle opzioni)." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:310 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:310 msgid "new email address" msgstr "nuovo indirizzo di posta elettronica." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:492 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:492 msgid "Wide" msgstr "Largo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:493 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:493 msgid "Narrow" msgstr "Stretto" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:502 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:502 msgid "Medium" msgstr "Media" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:502 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:502 msgid "Small" msgstr "Piccola" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:503 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:503 msgid "Large" msgstr "Grande" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:509 msgid "Always" msgstr "Sempre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:509 msgid "Automatic" msgstr "Automatico" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:510 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:510 msgid "Never" msgstr "Mai" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:521 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:534 +msgid "Done" +msgstr "Completato" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:535 +msgid "Confirmation dialogs have all been reset" +msgstr "I dialoghi di conferma sono stati ripristinati" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:540 msgid "System port selected" msgstr "Porta di sistema selezionata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:541 msgid "" "The value %d you have chosen for the content server port is a system " "port. Your operating system may not allow the server to run on this " @@ -5614,111 +5682,124 @@ msgstr "" "server di funzionare su questa porta. Per essere sicuri selezionare un " "numero di porta maggiore di 1024." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Failed to install command line tools." msgstr "Impossibile installare gli strumenti a riga di comando." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:545 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:564 msgid "Command line tools installed" msgstr "Strumenti per i comandi di linea installati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:546 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:565 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:547 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:566 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Se calibre.app viene spostato, sarà necessario reinstallare anche gli " "strumenti a riga di comando." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:598 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:617 msgid "No valid plugin path" msgstr "Percorso del plugin non valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:599 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:618 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:602 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:621 msgid "Choose plugin" msgstr "Selezionare plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:614 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:633 msgid "Plugin cannot be disabled" msgstr "Il plugin non può essere disattivato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:615 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:634 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:624 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:643 msgid "Plugin not customizable" msgstr "Plugin non personalizzabile" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:625 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:644 msgid "Plugin: %s does not need customization" msgstr "Plugin: %s non richiede personalizzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:652 msgid "Customize" msgstr "Personalizzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:671 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:690 msgid "Cannot remove builtin plugin" msgstr "Impossibile rimuovere un plugin incorporato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:691 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " Impossibile rimuoverlo. Questo è un plugin incorporato. Provare invece a " "disattivarlo." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:703 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:707 +msgid "Invalid tweaks" +msgstr "Miglioramenti non validi" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:708 +msgid "" +"The tweaks you entered are invalid, try resetting the tweaks to default and " +"changing them one by one until you find the invalid setting." +msgstr "" +"I miglioramenti inseriti non sono validi, provare a ripristinare quelli " +"predefiniti e cambiarli uno per volta fino a trovare l'impostazione non " +"valida." + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:738 msgid "You must select a column to delete it" msgstr "Selezionare una colonna da eliminare" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:743 msgid "The selected column is not a custom column" msgstr "La colonna selezionata non è una colonna personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:744 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" msgstr "Si è sicuri?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:745 msgid "Do you really want to delete column %s and all its data?" msgstr "Eliminare veramente la colonna %s e tutti i sui dati?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:777 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:812 msgid "Error log:" msgstr "Log degli errori:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:784 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:819 msgid "Access log:" msgstr "File di log degli accessi:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:312 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:847 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:318 msgid "Failed to start content server" msgstr "Avvio del server dei contenuti fallito" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:837 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:872 msgid "Invalid size" msgstr "Dimensione non valida" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:838 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:873 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:899 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:936 msgid "Must restart" msgstr "Necessario riavviare" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:900 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:937 msgid "" "The changes you made require that Calibre be restarted. Please restart as " "soon as practical." @@ -5726,19 +5807,19 @@ msgstr "" "Le modifiche effettuate richiedono il riavvio di Calibre. Riavviare il prima " "possibile." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:971 msgid "Checking database integrity" msgstr "Controllo d'integrità del database" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:954 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:991 msgid "Failed to check database integrity" msgstr "Controllo d'integrità del database fallito" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:959 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:996 msgid "Some inconsistencies found" msgstr "Sono stati trovati problemi di consistenza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:960 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:997 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 " @@ -5750,11 +5831,11 @@ msgstr "" "controllarli manualmente. Questo problema può sorgere se i documenti nella " "cartella della biblioteca vengono modificati direttamente." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:133 msgid "TabWidget" msgstr "Assistente per i TAB" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:134 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 " @@ -5764,11 +5845,11 @@ msgstr "" "vengono aggiunti. calibre può leggere i metadati dai contenuti del documento " "o dal suo nome." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:135 msgid "Read metadata only from &file name" msgstr "Leggi i metadati solo dal nome del &file" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:136 msgid "" "Swap the firstname and lastname of the author. This affects only metadata " "read from file names." @@ -5776,11 +5857,11 @@ msgstr "" "Inverti nome e cognome dell'autore. Questo influisce esclusivamente sui " "metadati letti dai nomi dei files." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:137 msgid "&Swap author firstname and lastname" msgstr "&Inverti i nomi e i cognomi dell'autore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:138 msgid "" "If an existing book with a similar title and author is found that does not " "have the format being added, the format is added\n" @@ -5798,7 +5879,7 @@ msgstr "" "Il contronto del titolo ignora gli articoli (\"il\", \"un\", \"una\"), la " "punteggiatura, la dimensione, ecc. L'autore viene confrontato interamente." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:142 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:142 msgid "" "If books with similar titles and authors found, &merge the new files " "automatically" @@ -5806,15 +5887,15 @@ msgstr "" "Se vengono trovati libri con titoli e autori simili, &unisci i nuovi file " "automaticamente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:143 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:143 msgid "&Configure metadata from file name" msgstr "&Configura i metadati dal nome del documento" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:144 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:144 msgid "&Adding books" msgstr "&Aggiunta libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:145 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:145 msgid "" "Here you can control how calibre will save your books when you click the " "Save to Disk button:" @@ -5822,60 +5903,60 @@ msgstr "" "Qui è possibile controllare come calibre salva i libri quando si fa clic su " "pulsante «Salva su disco»:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:146 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:146 msgid "Save &cover separately" msgstr "Salva la &copertina separatamente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:147 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:147 msgid "Update &metadata in saved copies" msgstr "Aggiorna &metadati nelle copie salvate" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:148 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:148 msgid "Save metadata in &OPF file" msgstr "Salva i metadati nei file &OPF" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:149 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:149 msgid "Convert non-English characters to &English equivalents" msgstr "" "Conversione dei caratteri non anglofoni nei loro corrispondenti &inglesi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:150 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:150 msgid "Format &dates as:" msgstr "Formattato &date:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:151 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:151 msgid "File &formats to save:" msgstr "&Formato dei documenti da salvare:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:152 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:152 msgid "Replace space with &underscores" msgstr "Sostituire gli spazi con &sottolineature" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:153 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:153 msgid "Change paths to &lowercase" msgstr "Cambiare percorsi in &minuscolo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:154 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:154 msgid "&Saving books" msgstr "&Salvataggio libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:155 msgid "Metadata &management:" msgstr "Gestione &metadati:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:156 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:156 msgid "Manual management" msgstr "Gestione manuale" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:157 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:157 msgid "Only on send" msgstr "Solo all'invio" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:158 msgid "Automatic management" msgstr "Gestione automatica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:159 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:159 msgid "" "

  • Manual Management: Calibre updates the metadata and adds " "collections only when a book is sent. With this option, calibre will never " @@ -5894,7 +5975,7 @@ msgstr "" "sincronizzati i metadata sul dispositivo con la biblioteca di calibre ad " "ogni collegamento
  • " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:162 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 " @@ -5905,34 +5986,34 @@ msgstr "" "sovrascritte per ogni dispositivo personalizzando il plugin di controllo dei " "dispositivi in Preferenze->Plugins" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:163 msgid "Sending to &device" msgstr "Invio al &dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:599 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:584 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:474 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:616 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:201 msgid "Preferences" msgstr "Preferenze" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:585 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:535 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:586 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "Scarica i metadati &sociali (tag, valutazioni, etc.) automaticamente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:587 msgid "&Overwrite author and title by default when fetching metadata" msgstr "&Sovrascrivi autore e titolo quando si scaricano i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:588 msgid "Default network &timeout:" msgstr "&Timeout predefinito della rete:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:589 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -5940,148 +6021,150 @@ 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:539 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:590 msgid " seconds" msgstr " secondi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:591 msgid "Choose &language (requires restart):" msgstr "Ling&ua (richiede riavvio):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:592 msgid "Normal" msgstr "Normale" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:593 msgid "High" msgstr "Massima" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:594 msgid "Low" msgstr "Minima" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:595 msgid "Job &priority:" msgstr "&Priorità dei lavori:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:596 msgid "Preferred &output format:" msgstr "Formato preferito per l'&output:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:597 +msgid "Reset all disabled &confirmation dialogs" +msgstr "Ripristina tutti i dialoghi di &conferma disattivati" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:598 msgid "Preferred &input format order:" msgstr "Ordine dei formati preferiti per l'&input:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:601 msgid "Use &Roman numerals for series number" msgstr "&Usa numeri romani per i numeri di serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:602 msgid "Enable system &tray icon (needs restart)" -msgstr "Abilita l'icona nell'area di notifica (richiede riavvio)" +msgstr "Visualizza l'&icona nell'area di notifica (richiede riavvio)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "Show ¬ifications in system tray" msgstr "Visualizza le ¬ifiche nella barra di sistema" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:604 msgid "Show &splash screen at startup" msgstr "Visualizza lo &splash screen all'avvio" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:605 msgid "Show cover &browser in a separate window (needs restart)" -msgstr "" -"Visualizza il &browser di copertine in una finestra separata (richiede " -"riavvio)" +msgstr "Visualizza le &copertine in una finestra separata (richiede riavvio)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:606 msgid "Show &average ratings in the tags browser" msgstr "Visualizza la &media delle valutazioni nel browser dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:607 msgid "Search as you type" msgstr "Cerca mentre si scrive" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:608 msgid "Automatically send downloaded &news to ebook reader" -msgstr "Invia automaticamente le noti&zie scaricate al lettore di libri" +msgstr "Invia automaticamente le noti&zie scaricate al lettore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" "&Rimuovi le notizie dalla biblioteca dopo averle inviate automaticamente al " "dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:610 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "&Numero di copertine da visualizzare in modalità sfoglia (richiede riavvio):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:611 msgid "Select visible &columns in library view" -msgstr "&Selezionare le colonne visibili nella vista biblioteca" +msgstr "Selezionare le &colonne visibili nella vista biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Remove a user-defined column" msgstr "Elimina una colonna personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "Add a user-defined column" msgstr "Aggiungi una colonna personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:617 msgid "Edit settings of a user-defined column" msgstr "Modifica le opzioni di una colonna personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:620 msgid "Use internal &viewer for:" -msgstr "Utilizza il &visualizzatore interno per:" +msgstr "Utilizzare il &visualizzatore interno per:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:621 msgid "User Interface &layout (needs restart):" msgstr "&Aspetto interfaccia grafica (richiede riavvio):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:622 msgid "Disable all animations. Useful if you have a slow/old computer." msgstr "Disattiva tutte le animazioni. Utile per i computer più lenti." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:623 msgid "Disable &animations" -msgstr "Disattiva &animazioni" +msgstr "Disattiva le &animazioni" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:624 msgid "Show &donate button (restart)" msgstr "Mostra pulsante &donazioni (richiede riavvio)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:625 msgid "&Toolbar" msgstr "&Barra degli Strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:626 msgid "&Icon size:" -msgstr "Dimensione &icona:" +msgstr "Dimensione &icone:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:627 msgid "Show &text under icons:" msgstr "Mostra &testo sotto le icone:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:628 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:577 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:629 msgid "&Add email" msgstr "&Aggiungi email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:630 msgid "Make &default" msgstr "Crea &default" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:631 msgid "&Remove email" msgstr "&Elimina email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:632 msgid "" "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-" @@ -6091,33 +6174,61 @@ msgstr "" "email saranno automaticamente inviate per ogni notizia scaricata a tutti gli " "indirizzi email a cui hai abilitato l'invio automatico" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:633 msgid "&Maximum number of waiting worker processes (needs restart):" -msgstr "Numero &massimo di processi in attesa (richiede riavvio):" +msgstr "Numero &massimo di lavori in attesa (richiede riavvio):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 -msgid "&Check database integrity" -msgstr "&Controllo d'integrità del database" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 -msgid "&Install command line tools" -msgstr "&Installa gli strumenti per i comandi di linea" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 -msgid "Open calibre &configuration directory" -msgstr "Apri la cartella per la &configurazione di Calibre" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:634 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -"Limita il massimo numero di job simultanei al numero dei &processori " +"Limita il massimo numero di lavori simultanei al numero dei &processori " "disponibili" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:635 msgid "Debug &device detection" msgstr "&Debug e riconoscimento dei dispositivi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:636 +msgid "&Check database integrity" +msgstr "&Controllo d'integrità del database" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:637 +msgid "Open calibre &configuration directory" +msgstr "Apri la cartella per la &configurazione di Calibre" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:638 +msgid "&Install command line tools" +msgstr "&Installa gli strumenti per i comandi di linea" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:639 +msgid "&Miscellaneous" +msgstr "&Varie" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:640 +msgid "" +"Values for the tweaks are shown below. Edit them to change the behavior of " +"calibre" +msgstr "" +"I valori per i miglioramenti sono mostrati di seguito. Modificarli per " +"cambiare il comportamento di calibre" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:641 +msgid "All available tweaks" +msgstr "Tutti i miglioramenti disponibili" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:642 +msgid "&Current tweaks" +msgstr "Miglioramenti &attuali" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:643 +msgid "&Restore to defaults" +msgstr "&Ripristina predefiniti" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:644 +msgid "&Tweaks" +msgstr "&Miglioramenti" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:645 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 " @@ -6127,25 +6238,25 @@ msgstr "" "usando un browser in qualunque parte del mondo. Qualsiasi cambiamento nella " "configurazione verrà attivato solo dopo il riavvio del server." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:646 msgid "Server &port:" msgstr "&Porta del server:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:647 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:212 +#: /home/kovid/work/trunk/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:590 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:648 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:213 +#: /home/kovid/work/trunk/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:591 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:649 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -6153,7 +6264,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:592 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:650 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -6161,46 +6272,46 @@ 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:593 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:651 msgid "Max. &cover size:" msgstr "Dimensi&one massima copertina:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:652 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "&Mostra password" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:653 msgid "Max. &OPDS items per query:" msgstr "Massimo elementi &OPDS per richiesta:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:654 msgid "Max. OPDS &ungrouped items:" msgstr "Elementi OPDS &sparsi massimi:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:655 msgid "&Start Server" -msgstr "A&vvia il server" +msgstr "&Avvia il server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:656 msgid "St&op Server" msgstr "&Ferma il server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:657 msgid "&Test Server" msgstr "&Test sul server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:658 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:601 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:659 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:602 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:660 +#: /home/kovid/work/trunk/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" @@ -6216,7 +6327,7 @@ msgstr "" "come un nuovo catalogo sull'iPhone. In questo caso myhostname è l'host o " "l'indirizzo IP del computer su cui calibre è attivo." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:662 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -6224,133 +6335,133 @@ msgstr "" "Qui è 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:605 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:663 msgid "Enable/&Disable plugin" -msgstr "Attivare/&Disattiva il plugin" +msgstr "Attiva/Disattiva il &plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:664 msgid "&Customize plugin" msgstr "&Configura il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:665 msgid "&Remove plugin" msgstr "&Rimuovi il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:666 msgid "Add new plugin" msgstr "Aggiungi un nuovo plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:667 msgid "Plugin &file:" msgstr "Plugin &file:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:669 msgid "&Add" msgstr "&Aggiungi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:125 msgid "Create Tag-based Column" msgstr "Crea colonne basate sui tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:126 msgid "Lookup name" msgstr "Parola chiave" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:127 msgid "Column heading" msgstr "Titolo colonna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:128 msgid "Column type" msgstr "Tipo di colonna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:129 msgid "Use brackets" msgstr "Usa parentesi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:130 msgid "Values can be edited" msgstr "I valori possono essere modificati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:135 msgid "Text" msgstr "Testo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:136 msgid "Number" msgstr "Numero" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:889 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:549 msgid "Date" msgstr "Data" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:138 msgid "Tag on book" msgstr "Tag del libro" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:139 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:139 msgid "Explanation text added in create_ct_column.py" msgstr "Testo di spiegazione aggiunto in create_ct_column.py" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:140 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:140 msgid "Create and edit tag-based columns" msgstr "Crea e modifica colonne basate sul tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:19 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:19 msgid "Text, column shown in the tag browser" msgstr "Testo, colonna visualizzata nel browser dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:22 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:22 msgid "Comma separated text, like tags, shown in the tag browser" msgstr "" "Testo separato da vrigole, come i tag, visualizzato nel browser dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:25 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:25 msgid "Long text, like comments, not shown in the tag browser" msgstr "Testo esteso, come i commenti, non visualizzato nel browser dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:28 msgid "Text column for keeping series-like information" msgstr "Colonna testuale per mantenere informazioni sulle serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:33 msgid "Floating point numbers" msgstr "Numeri in virgola mobile" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:35 msgid "Integers" msgstr "Interi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:37 msgid "Ratings, shown with stars" msgstr "Votazione, visualizza con le stelle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:40 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:40 msgid "Yes/No" msgstr "Sì/no" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:69 msgid "No column selected" msgstr "Nessuna colonna selezionata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:70 msgid "No column has been selected" msgstr "Non è stata selezionata nessuna colonna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:74 msgid "Selected column is not a user-defined column" msgstr "La colonna selezionata non è una colonna personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:105 msgid "No lookup name was provided" msgstr "Non è stata fornita alcuna parola chiave" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:107 msgid "" "The label must contain only letters, digits and underscores, and start with " "a letter" @@ -6358,60 +6469,60 @@ msgstr "" "L'etichetta può contenere sono lettere, numeri e underscore, e deve iniziare " "con una lettera" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:116 msgid "No column heading was provided" msgstr "Nessun titolo per la colonna specificato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:122 msgid "The lookup name %s is already used" msgstr "La parola chiave %s è già in uso" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:132 msgid "The heading %s is already used" msgstr "Il titolo %s è già in uso" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:134 msgid "" "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" "La parola chiave deve essere composta da lettere minuscole e non può " "contentere \":\" o spazi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:117 msgid "Create or edit custom columns" msgstr "Crea o modifica colonne personalizzate" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:102 msgid "&Lookup name" msgstr "&Parola chiave" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:103 msgid "Column &heading" msgstr "&Titolo colonna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:104 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:104 msgid "" "Used for searching the column. Must contain only digits and lower case " "letters." msgstr "" "Usato per cercare la colonna. Può contere solo numberi e lettere minuscole." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:105 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:105 msgid "" "Column heading in the library view and category name in the tag browser" msgstr "" "Titolo colonne nella vista biblioteca e nome categoria nel browser dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:106 msgid "Column &type" msgstr "&Tipo di colonna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:107 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:107 msgid "What kind of information will be kept in the column." msgstr "Che tipo di informazione verrà mantenuto nella colonna." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:108 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:108 msgid "" "

    Date format. Use 1-4 'd's for day, 1-4 'M's for month, and 2 or 4 'y's " "for year.

    \n" @@ -6429,43 +6540,43 @@ msgstr "" "
  • dd MMMM yy diventa 05 Gen 10
  • \n" " " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:114 msgid "Use MMM yyyy for month + year, yyyy for year only" msgstr "Usare MMM yyyy per il mese + anno, yyyy solamente per l'anno" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:115 msgid "Default: dd MMM yyyy." msgstr "Predefinito: dd MMM yyyy." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:116 msgid "Format for &dates" msgstr "Formato per le &date" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/device_debug.py:21 msgid "Getting debug information" msgstr "Ottieni le informazioni di debug" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:22 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/device_debug.py:22 msgid "Copy to &clipboard" msgstr "&Copia negli appunti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:24 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/device_debug.py:24 msgid "Debug device detection" msgstr "Debug riconoscimento dispositivi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template.py:44 msgid "Invalid template" msgstr "Modello non valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template.py:45 msgid "The template %s is invalid:" msgstr "Il modello %s non è valido:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template_ui.py:42 msgid "Save &template" msgstr "Salva &template" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +#: /home/kovid/work/trunk/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 " @@ -6479,23 +6590,23 @@ msgstr "" "Se un libro non avesse metadati, le variabili verrannon sostituite da una " "stringa vuota." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template_ui.py:44 msgid "Available variables:" msgstr "Variabili disponibili:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/social.py:34 msgid "Downloading social metadata, please wait..." msgstr "Scaricamento dei metadati sociali, attendere..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 msgid "&Show this warning again" msgstr "&Visualizza ancora questa avvertenza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/conversion_error_ui.py:42 msgid "ERROR" msgstr "ERRORE" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:67 msgid "" "All checked books will be permanently deleted from your device. " "Please verify the list." @@ -6503,72 +6614,94 @@ msgstr "" "Tutti i libri selezionati verranno definitivamente eliminati dal " "dispositivo. Controllare la lista." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 msgid "Location" msgstr "Posizione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1064 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1064 msgid "Format" msgstr "Formato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 msgid "Delete from device" msgstr "Elimina dal dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author sort" msgstr "Ordinamento per autore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:66 msgid "Manage authors" msgstr "Gestione autori" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:67 +msgid "Sort by author" +msgstr "Ordina per autore" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:68 +msgid "Sort by author sort" +msgstr "Ordina per ordine autore" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:69 +msgid "" +"Reset all the author sort values to a value automatically generated from the " +"author. Exactly how this value is automatically generated can be controlled " +"via Preferences->Advanced->Tweaks" +msgstr "" +"Ripristina tutti i valori di ordinamento autore ad un valore generato " +"automaticamente dall'autore. La generazione di questo valore può essere " +"controllata da «Preferenze->Avanzate->Miglioramenti»" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:70 +msgid "Recalculate all author sort values" +msgstr "Ricalcola tutti i valori di ordinamento autore" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:60 msgid "Author Sort" msgstr "Classificazione autore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:62 msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:162 msgid "Finding metadata..." msgstr "Ricerca metadati..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:176 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:176 msgid "Could not find metadata" msgstr "Impossibile trovare i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:177 msgid "The metadata download seems to have stalled. Try again later." msgstr "" "Sembra che lo scaricamento dei metadati si sia bloccato. Riprovare più tardi." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:186 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:186 msgid "Warning" msgstr "Avvertenza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:187 msgid "Could not fetch metadata from:" msgstr "Impossibile recuperare i metadati da:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:191 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:191 msgid "No metadata found" msgstr "Nessun metadato trovato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:192 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:192 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:85 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "Fetch metadata" msgstr "Scarica metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 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 " @@ -6580,129 +6713,130 @@ msgstr "" "registrarsi per un account gratuito e " "immettere la vostra chiave d'accesso qui sotto." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "&Access Key:" msgstr "&Chiave d'accesso:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Fetch" msgstr "Scarica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "Matches" msgstr "Corrispondenze" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 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:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Scaricare i &social metadati (tag, valutazioni, etc) per il libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:92 msgid "Overwrite author and title with author and title of selected book" msgstr "" "Sovrascrivi autore e titolo con l'autore e il titolo del libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Dettagli del lavoro" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/jobs_ui.py:44 msgid "Active Jobs" msgstr "Lavori attivi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/jobs_ui.py:45 msgid "&Stop selected job" msgstr "&Interrompi il lavoro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/jobs_ui.py:46 msgid "Show job &details" msgstr "Mostra i &dettagli del lavoro" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/jobs_ui.py:47 msgid "Stop &all non device jobs" -msgstr "Ferma &tutti i processi non legati al dispositivo" +msgstr "Ferma &tutti i lavori non legati al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:24 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk.py:24 msgid "Editing meta information for %d books" msgstr "Modifica metadati per %d libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 msgid "Edit Meta information" msgstr "Modifica metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 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:160 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "Author s&ort: " msgstr "Author s&ort: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:368 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" -"Specifica come deve essere classificato l'autore di questo libro. Ad " -"esempio, Charles Dickens deve essere classificato come Dickens, Charles." +"Specificare come deve essere classificato l'autore di questo libro. Ad " +"esempio, Alessandro Manzoni deve essere classificato come Manzoni, " +"Alessandro." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:162 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "&Rating:" msgstr "&Valutazione:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:373 msgid "Rating of this book. 0-5 stars" msgstr "Valutazione di questo libro. 0-5 stelle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:165 msgid "No change" msgstr "Nessuna modifica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid " stars" msgstr " stelle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:168 msgid "Add ta&gs: " msgstr "Aggiungi ta&gs: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "Open Tag Editor" msgstr "Apri l'editor dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:172 msgid "&Remove tags:" msgstr "&Rimuovi tag:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:173 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:173 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:177 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:177 msgid "Remove &format:" msgstr "Cancella for&mato:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 msgid "&Swap title and author" msgstr "&Scambia titolo e autore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 msgid "" "Selected books will be automatically numbered,\n" "in the order you selected them.\n" @@ -6714,7 +6848,7 @@ msgstr "" "Quindi se è stato selezionato prima A e poi B,\n" "il libro A avrà numero di serie 1 e B numero di serie 2." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -6725,373 +6859,404 @@ msgstr "" "Per le prossime conversioni di questi libri verranno usate le impostazioni " "predefinite." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:187 msgid "Remove &stored conversion settings for the selected books" msgstr "Elimina le impostazioni di &conversione per i libri selezionati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:410 msgid "&Basic metadata" msgstr "Metadati &principali" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "&Custom metadata" msgstr "Metadati &aggiuntivi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:94 +msgid "Last modified: %s" +msgstr "Ultima modifica: %s" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:135 msgid "Not a valid picture" msgstr "L'immagine non ee valida" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:150 +msgid "Specify title and author" +msgstr "Specificare titolo e autore" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:151 +msgid "You must specify a title and author before generating a cover" +msgstr "" +"È necessario specificare un titolo e un autore prima di generare una " +"copertina" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:163 msgid "Choose formats for " msgstr "Selezionare formati per: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:194 msgid "No permission" msgstr "Non ci sono privilegi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:195 msgid "You do not have permission to read the following files:" msgstr "Non hai privilegi per leggere i documenti indicati:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:222 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:223 msgid "No format selected" msgstr "Nessun formato selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:234 msgid "Could not read metadata" msgstr "Impossibile leggere i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:235 msgid "Could not read metadata from %s format" msgstr "Impossibile leggere i metadati dai formati %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:260 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:283 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:289 msgid "Could not read cover" msgstr "Impossibile visualizzare la copertina" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:255 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:284 msgid "Could not read cover from %s format" msgstr "Impossibile visualizzare la copertina con formato %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "The cover in the %s format is invalid" msgstr "La copertina nel formato %s non è valida." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:327 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:434 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:439 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:465 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:470 msgid "This ISBN number is valid" msgstr "Questo numero ISBN è valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:442 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:473 msgid "This ISBN number is invalid" msgstr "Questo numero ISBN è valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:552 msgid "Cannot use tag editor" msgstr "Impossibile utilizzare l'editor di tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "The tags editor cannot be used if you have modified the tags" msgstr "Non si può utilizzare l'editor di tag se i tag sono stati modificati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "Downloading cover..." msgstr "Scaricamento della copertina..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:585 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:590 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:596 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:601 msgid "Cannot fetch cover" msgstr "Impossibile scaricare la copertina" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:555 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:586 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:602 msgid "Could not fetch cover.
    " msgstr "Impossibile scaricare la copertina
    " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:556 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:587 msgid "The download timed out." msgstr "Il tempo di scaricamento è scaduto." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:591 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "Impossibile trovare una copertina per questo libro. Provare prima a " "specificare il codice ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:603 +msgid "" +"For the error message from each cover source, click Show details below." +msgstr "" +"Per il messaggio di errore di ogni sorgente di copertine, fare clic su " +"«Mostra dettagli»." + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:610 msgid "Bad cover" msgstr "Copertina inutilizzabile" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:611 msgid "The cover is not a valid picture" msgstr "La copertina non è un'immagine valida." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:606 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:644 msgid "There were errors" msgstr "Si sono verificati errori" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:607 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:645 msgid "There were errors downloading social metadata" msgstr "Si sono verificati errori nello scaricamento dei metadati sociali" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:636 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:674 msgid "Cannot fetch metadata" msgstr "Impossibile scaricare i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:637 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:675 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:708 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:750 msgid "Permission denied" msgstr "Permesso negato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:709 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:751 msgid "Could not open %s. Is it being used by another program?" msgstr "Impossibile aprire %s. Potrebbe essere in uso da un altro programma." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Edit Meta Information" msgstr "Modifica metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:361 msgid "Meta information" msgstr "Metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:364 msgid "Swap the author and title" msgstr "Scambia titolo e autore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "Author S&ort: " msgstr "&Classificazione autore: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Automatically create the author sort entry based on the current author entry" msgstr "" "Crea automaticamente la voce Classificazione autore basandosi sul contenuto " "del campo Autore." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "Remove unused series (Series that have no books)" msgstr "Rimuovi le serie inutilizzate (che non hanno libri)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:385 msgid "IS&BN:" msgstr "IS&BN:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:386 msgid "Publishe&d:" msgstr "&Pubblicato:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:389 msgid "dd MMM yyyy" msgstr "gg MMM aaaa" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "&Date:" msgstr "&data" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:391 msgid "&Comments" msgstr "&Commenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:392 msgid "&Fetch metadata from server" msgstr "&Recupera i metadati dal server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Available Formats" msgstr "Formati disponibili" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:394 msgid "Add a new format for this book to the database" msgstr "Aggiungi un nuovo formato al database per questo libro" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:396 msgid "Remove the selected formats for this book from the database." msgstr "Cancella il formato selezionato dal database per questo libro" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:398 msgid "Set the cover for the book from the selected format" msgstr "Imposta la copertina del libro dal formato selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:400 msgid "Update metadata from the metadata in the selected format" msgstr "Aggiorna i metadati dai metadati del formato selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:405 msgid "Reset cover to default" msgstr "Ripristinare la copertina predefinita" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Download &cover" msgstr "Scarica &copertina" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +msgid "Generate a default cover based on the title and author" +msgstr "Genera una copertina predefinita basata sul titolo e l'autore" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "&Generate cover" +msgstr "&Genera copertina" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:56 msgid "Password needed" msgstr "Password necessaria" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress.py:52 msgid "Aborting..." msgstr "Interruzione..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor.py:54 msgid "" "The current saved search will be permanently deleted. Are you sure?" msgstr "" "La ricerca corrente salvata verrà definitivamente cancellata. " "Continuare?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:83 msgid "Saved Search Editor" msgstr "Editor di ricerche salvate" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:84 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:84 msgid "Saved Search: " msgstr "Ricerche salvate: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:85 msgid "Select a saved search to edit" msgstr "Selezionare una ricerca salvata da modificare" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:86 msgid "Delete this selected saved search" msgstr "Elimina la ricerca salvata selezionata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 msgid "Enter a new saved search name." msgstr "Inserire un nuovo nome per la ricerca salvata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 msgid "Add the new saved search" msgstr "Aggiungi una nuova ricerca salvata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 msgid "Change the contents of the saved search" msgstr "Cambia il contenuto della ricerca salvata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:120 msgid "Need username and password" msgstr "É necessario usare un utente e password" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:121 msgid "You must provide a username and/or password to use this news source." msgstr "" "É necessario usare un nome utente e/o una password per questa sito di " "notizie." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:172 msgid "Created by: " msgstr "Creato da: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:179 msgid "Last downloaded: never" msgstr "Ultimo scaricamento: mai" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:194 msgid "%d days, %d hours and %d minutes ago" msgstr "%d giorni, %d ore e %d minuti trascorsi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:196 msgid "Last downloaded" msgstr "Ultimo scaricamento" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:220 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:192 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:220 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:192 msgid "Schedule news download" msgstr "Programma lo scaricamento delle notizie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:223 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:223 msgid "Add a custom news source" msgstr "Aggiungi una fonte di notizie personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:228 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:228 msgid "Download all scheduled new sources" msgstr "Scarica tutte le nuove sorgenti programmate" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:328 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:328 msgid "No internet connection" msgstr "Nessuna connessione internet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:329 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:329 msgid "Cannot download news as no internet connection is active" msgstr "Impossibile scaricare le notizie perché la connessione non è attiva" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:278 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:193 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:278 msgid "Recipes" msgstr "Ricette" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:194 msgid "Download all scheduled recipes at once" msgstr "La ricetta richiede l'uso di un utente e password" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:195 msgid "Download &all scheduled" msgstr "Scarica &tutti i programmati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:196 msgid "blurb" msgstr "trafiletto" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:197 msgid "&Schedule for download:" msgstr "&Programma per lo scaricamento:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:198 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:208 msgid "Every " msgstr "Ogni " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:199 msgid "day" msgstr "giorno" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:200 msgid "Monday" msgstr "lunedì" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:201 msgid "Tuesday" msgstr "martedì" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:202 msgid "Wednesday" msgstr "mercoledì" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:203 msgid "Thursday" msgstr "giovedì" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:204 msgid "Friday" msgstr "venerdì" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:205 msgid "Saturday" msgstr "sabato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:206 msgid "Sunday" msgstr "domenica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:207 msgid "at" msgstr "alle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:209 msgid "" "Interval at which to download this recipe. A value of zero means that the " "recipe will be downloaded every hour." @@ -7099,42 +7264,42 @@ msgstr "" "Intervallo a cui scaricaricare questa ricetta. Il valore zero significa che " "la formula verrà scaricata ogni ora." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:210 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:222 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:263 msgid " days" msgstr " giorni" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:211 msgid "&Account" msgstr "&Account" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:215 msgid "For the scheduling to work, you must leave calibre running." msgstr "" "Perché la programmazione funzioni, calibre deve essere in esecuzione." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:216 msgid "&Schedule" msgstr "&Programma" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:217 msgid "Add &title as tag" msgstr "Aggiungi &titolo come tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:218 msgid "&Extra tags:" msgstr "Tag &aggiuntivi:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:219 msgid "&Advanced" msgstr "&Avanzato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:220 msgid "&Download now" msgstr "&Scarica ora" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:221 msgid "" "Delete downloaded news older than the specified number of days. Set to zero " "to disable." @@ -7142,19 +7307,19 @@ msgstr "" "Cancella le notizie più vecchie del numero di giorni specificato. Impostare " "a zero per disabilitare." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:223 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:223 msgid "Delete downloaded news older than " msgstr "Elimina le notizie scaricate più vecchie di " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:36 msgid "contains" msgstr "contiene" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:37 msgid "The text to search for. It is interpreted as a regular expression." msgstr "Il testo da cercare. È interpretato come un'espressione regolare" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:38 msgid "" "

    Negate this match. That is, only return results that do not match " "this query." @@ -7162,63 +7327,63 @@ msgstr "" "

    Nega questa corrispondenza. Restituisce soltanto i risultati che " "non corrispondono a questa ricerca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:39 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:39 msgid "Negate" msgstr "Nega" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:113 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:113 msgid "Advanced Search" msgstr "Ricerca avanzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:114 msgid "Find entries that have..." msgstr "Trova elementi che hanno..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:115 msgid "&All these words:" msgstr "&Tutte queste parole:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:116 msgid "This exact &phrase:" msgstr "&Questa frase esatta:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:117 msgid "&One or more of these words:" msgstr "&Una o più di queste parole:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:118 msgid "But dont show entries that have..." msgstr "Ma non visualizzare elementi che hanno..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:119 msgid "Any of these &unwanted words:" msgstr "Una di queste parole non richie&ste:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:120 msgid "What kind of match to use:" msgstr "Tipo di corrispondenza da usare:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:121 msgid "Contains: the word or phrase matches anywhere in the metadata" msgstr "Contiene: la parola o frase corrispondenti ovunque nei metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:122 msgid "Equals: the word or phrase must match an entire metadata field" msgstr "" "Uguale: la parola o frase deve corrispondere esattamente nei metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:123 msgid "" "Regular expression: the expression must match anywhere in the metadata" msgstr "" "Espressione regolare: l'espressione deve corrispondere in qualunque punto " "dei metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:124 msgid " " msgstr " " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:125 msgid "" "See the User Manual for more help" @@ -7226,101 +7391,101 @@ msgstr "" "Vedere il Manuale d'uso per maggiori informazioni." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "Seleziona i formati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:80 msgid "Authors" msgstr "Autori" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:111 msgid "Publishers" msgstr "Editori" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:109 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:114 msgid " (not on any book)" msgstr " (non su ogni libro)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:166 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" "La categoria di tag corrente verrà definitivamente eliminata. " "Continuare?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:153 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:153 msgid "User Categories Editor" msgstr "Editor delle categorie utente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:154 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:154 msgid "A&vailable items" msgstr "Elementi &disponibili" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:155 msgid "Apply tags to current tag category" msgstr "Applica i tag alla categoria di tag corrente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:157 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:157 msgid "A&pplied items" msgstr "Elementi a&pplicati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:158 msgid "Unapply (remove) tag from current tag category" msgstr "Togli il tag dalla categoria di tag corrente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:160 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:160 msgid "Category name: " msgstr "Nome categoria: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:161 msgid "Select a category to edit" msgstr "Selezionare una categoria da modificare" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:162 msgid "Delete this selected tag category" msgstr "Elimina la categoria di tag selezionata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:164 msgid "Enter a new category name. Select the kind before adding it." msgstr "" "Inserire il nome della nuova categoria. Selezionare il tipo prima di " "aggiungerla." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:165 msgid "Add the new category" msgstr "Aggiungi la nuova categoria" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:167 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:167 msgid "Category filter: " msgstr "Filtro categoria: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:168 msgid "Select the content kind of the new category" msgstr "Selezionare il tipo di contenuto della nuova categoria" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" msgstr "Confermare?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor.py:69 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" msgstr "Questi tag sono usati da uno o più libri. Eliminarli comunque?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:123 msgid "Tag Editor" msgstr "Editor di tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:124 msgid "A&vailable tags" msgstr "Tag &disponibili" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:125 +#: /home/kovid/work/trunk/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." @@ -7328,23 +7493,23 @@ msgstr "" "Rimuovi il tag dal database. Questa operazione rimuoverà il tag da tutti i " "libri e poi dal database" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:127 msgid "Apply tag to current book" msgstr "Applica il tag al libro corrente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:129 msgid "A&pplied tags" msgstr "&Tag applicati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:130 msgid "Unapply (remove) tag from current book" msgstr "Rimuovi il tag dal libro corrente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:132 msgid "&Add tag:" msgstr "&Aggiungi tag:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:133 +#: /home/kovid/work/trunk/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." @@ -7352,54 +7517,54 @@ msgstr "" "Se il tag voluto non è nella lista di quelli disponibili, è possibile " "aggiungerlo qui. Accetta una lista di tag separati da virgola" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:134 msgid "Add tag to available tags and apply it to current book" msgstr "Aggiungi il tag a quelli disponibili e applicalo al libro corrente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:20 msgid "%s (was %s)" msgstr "%s (era %s)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:70 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:500 msgid "Item is blank" msgstr "L'elemento è vuoto" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:501 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" "Un elemento non può essere impostato a niente. Cancellarlo piuttosto." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:91 msgid "No item selected" msgstr "Nessun elemento selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:92 msgid "You must select one item from the list of Available items." msgstr "Selezionare un elemento dalla lista degli elementi disponibili." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:101 msgid "No items selected" msgstr "Nessun elemento selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:102 msgid "You must select at least one items from the list." msgstr "Selezionare almeno un elemento dalla lista." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:106 msgid "Are you certain you want to delete the following items?" msgstr "Eliminare veramente i seguenti elementi?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:72 msgid "Category Editor" msgstr "Editor di categoria" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:73 msgid "Items in use" msgstr "Elementi da usare" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:74 msgid "" "Delete item from database. This will unapply the item from all books and " "then remove it from the database." @@ -7407,139 +7572,139 @@ msgstr "" "Elimina l'elemento dal database. Questo toglierà l'elemento da tutti i libri " "e lo eliminerà dal database." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:76 msgid "Rename the item in every book where it is used." msgstr "Rinomina l'elemento in ogni libro dove è presente." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 msgid "Ctrl+S" msgstr "Ctrl+S" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/test_email_ui.py:51 msgid "Test email settings" msgstr "Prova la configurazione della posta elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/test_email_ui.py:52 msgid "Send test mail from %s to:" msgstr "Invia un messaggio di prova da %s a:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/test_email_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:115 msgid "&Test" msgstr "&Test" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:127 msgid "No recipe selected" msgstr "Nessuna formula selezionata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:132 msgid "The attached file: %s is a recipe to download %s." msgstr "Il file allegato: %s è una formula per scaricare %s." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:133 msgid "Recipe for " msgstr "Ricetta per " -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:150 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:255 msgid "Switch to Advanced mode" msgstr "Passa alla modalità avanzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:156 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:164 msgid "Switch to Basic mode" msgstr "Passa alla modalità base" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:174 msgid "Feed must have a title" msgstr "Il feed deve avere un titolo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:175 msgid "The feed must have a title" msgstr "Il feed deve avere un titolo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:179 msgid "Feed must have a URL" msgstr "Il feed deve avere una URL" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:180 msgid "The feed %s must have a URL" msgstr "Il feed %s deve avere una URL" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:185 msgid "Already exists" msgstr "Esiste già" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:186 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:186 msgid "This feed has already been added to the recipe" msgstr "Questo feed è già stato aggiunto alla ricetta" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:227 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:236 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:286 msgid "Invalid input" msgstr "Input non valido" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:228 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:237 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:287 msgid "

    Could not create recipe. Error:
    %s" msgstr "

    Impossibile creare la ricetta. Errore:
    %s" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:241 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:263 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:290 msgid "Replace recipe?" msgstr "Sovrascrivere la ricetta?" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:242 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:264 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:291 msgid "A custom recipe named %s already exists. Do you want to replace it?" msgstr "Esiste già una ricetta personalizzata di nome %s. Sovrascriverla?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:257 msgid "Pick recipe" msgstr "Prendi ricetta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:257 msgid "Pick the recipe to customize" msgstr "Prende la ricetta per personalizzarla" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:277 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:277 msgid "Choose a recipe file" msgstr "Scegliere un file di ricetta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:248 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:248 msgid "Add custom news source" msgstr "Aggiungi una fonte di notizie personalizzata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:249 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:249 msgid "Available user recipes" msgstr "Ricette utente disponibili" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:250 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:250 msgid "Add/Update &recipe" msgstr "Aggiungi/Aggiorna &ricetta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:251 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:251 msgid "&Remove recipe" msgstr "&Rimuovi ricetta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:252 msgid "&Share recipe" msgstr "&Condividi ricetta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:253 msgid "Customize &builtin recipe" msgstr "Personalizza &ricetta incorporata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:254 msgid "&Load recipe from file" msgstr "&Carica ricetta da file" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:256 msgid "" "\n" +"

    파ì¼ëª…ì—서 ì „ìžì±…ì˜ ë©”íƒ€ 정보를 추측하려고 í•  " +"때 사용하는 ì •ê·œ í‘œí˜„ì‹ íŒ¨í„´ì„ ì§€ì •í•©ë‹ˆë‹¤.

    \n" +"

    ì‚¬ìš©ì´ ê°€ëŠ¥í•œ ì •ê·œ í‘œí˜„ì‹ ë¬¸ë²•ì„ ì°¸ì¡°í•˜ì„¸ìš”.

    \n" +"

    ì•½ê°„ì˜ ìƒ˜í”Œ 파ì¼ëª…ì— ì •ê·œ 표현ì‹ì„ 시험하려면 " +"ì•„ëž˜ì˜ ì‹œí—˜ ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ì„¸ìš”. 다른 메타 ì •ë³´ í•­ëª©ì˜ ê·¸ë£¹ " +"ì´ë¦„ì€ í’ì„  ë„움ë§ì— 문서화ë˜ì–´ 있습니다.

    " -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:114 msgid "Regular &expression" -msgstr "" +msgstr "ì •ê·œ 표현ì‹(&E)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:116 msgid "File &name:" -msgstr "" +msgstr "파ì¼ëª…(&N):" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:118 msgid "Title:" -msgstr "" +msgstr "제목:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:119 msgid "Regular expression (?P<title>)" -msgstr "" +msgstr "ì •ê·œ í‘œí˜„ì‹ (?P<title>)" -#: /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/trunk/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:99 msgid "No match" -msgstr "" +msgstr "ì¼ì¹˜í•˜ì§€ 않습니다" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:121 msgid "Authors:" -msgstr "" +msgstr "ì €ìž:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:122 msgid "Regular expression (?P)" -msgstr "" +msgstr "ì •ê·œ í‘œí˜„ì‹ (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:124 msgid "Series:" -msgstr "" +msgstr "시리즈:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:125 msgid "Regular expression (?P)" -msgstr "" +msgstr "ì •ê·œ í‘œí˜„ì‹ (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:127 msgid "Series index:" -msgstr "" +msgstr "시리즈 색ì¸:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:128 msgid "Regular expression (?P)" -msgstr "" +msgstr "ì •ê·œ í‘œí˜„ì‹ (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:130 msgid "ISBN:" -msgstr "" +msgstr "ISBN:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:131 msgid "Regular expression (?P)" -msgstr "" +msgstr "ì •ê·œ í‘œí˜„ì‹ (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:33 +msgid "Similar books..." +msgstr "유사한 ì±…..." + +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:66 +msgid "Add books to library" +msgstr "ì±…ì„ ë¼ì´ë¸ŒëŸ¬ë¦¬ì— 추가" + +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:84 +msgid "Manage collections" +msgstr "모ìŒì§‘ 관리" + +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:165 +msgid "Cover Browser" +msgstr "표지 íƒìƒ‰ê¸°" + +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:183 +msgid "Tag Browser" +msgstr "태그 íƒìƒ‰ê¸°" + +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:204 +msgid "version" +msgstr "버전" + +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:205 +msgid "created by Kovid Goyal" +msgstr "Kovid Goyal ì— ì˜í•´ 제작ë¨" + +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:223 +msgid "Connected " +msgstr "ì—°ê²°ë¨ " + +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:232 +msgid "Update found" +msgstr "발견한 ì—…ë°ì´íЏ" + +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:276 +#: /home/kovid/work/trunk/src/calibre/gui2/init.py:285 +msgid "Book Details" +msgstr "ì±… ìƒì„¸ì •ë³´" + +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:60 msgid "Job" -msgstr "" +msgstr "작업" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:61 msgid "Status" -msgstr "" +msgstr "ìƒíƒœ" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:62 msgid "Progress" -msgstr "" +msgstr "진행률" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:63 msgid "Running time" -msgstr "" +msgstr "실행 시간" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:75 msgid "There are %d running jobs:" -msgstr "" +msgstr "%d ê°œì˜ ìž‘ì—…ì´ ì‹¤í–‰ì¤‘:" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:101 msgid "Unknown job" -msgstr "" +msgstr "알 수 없는 작업" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:82 msgid "There are %d waiting jobs:" -msgstr "" +msgstr "%d ê°œì˜ ìž‘ì—…ì´ ëŒ€ê¸°ì¤‘:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:216 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:219 msgid "Cannot kill job" -msgstr "" +msgstr "ìž‘ì—…ì„ ê°•ì œ 종료할 수 ì—†ìŒ" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:212 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:217 msgid "Cannot kill jobs that communicate with the device" -msgstr "" +msgstr "장치와 í†µì‹ ì¤‘ì¸ ìž‘ì—…ì„ ê°•ì œ 종료할 수 ì—†ìŒ" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:215 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:220 msgid "Job has already run" -msgstr "" +msgstr "ìž‘ì—…ì´ ì´ë¯¸ 완료ë˜ì—ˆìŠµë‹ˆë‹¤" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:243 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:248 msgid "Unavailable" -msgstr "" +msgstr "ì´ìš©í•  수 ì—†ìŒ" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:254 +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:280 +msgid "Jobs:" +msgstr "작업:" + +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:298 +msgid "Click to see list of active jobs." +msgstr "ìž‘ë™ì¤‘ì¸ ìž‘ì—… 목ë¡ì„ 보려면 누르세요" + +#: /home/kovid/work/trunk/src/calibre/gui2/jobs.py:358 msgid " - Jobs" -msgstr "" +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/trunk/src/calibre/gui2/layout.py:33 +msgid "Save single format to disk..." +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/trunk/src/calibre/gui2/layout.py:76 +msgid "Eject this device" +msgstr "ì´ ìž¥ì¹˜ ì—°ê²° ëŠê¸°" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 -msgid "Rating" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:85 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:192 +msgid "Library" +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/trunk/src/calibre/gui2/layout.py:86 +msgid "Show books in calibre library" +msgstr "calibre ë¼ì´ë¸ŒëŸ¬ë¦¬ì— 있는 ì±… 표시" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 -msgid "Book %s of %s." -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:87 +msgid "Reader" +msgstr "리ë”" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 -msgid "Not allowed" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:88 +msgid "Show books in the main memory of the device" +msgstr "ìž¥ì¹˜ì˜ ì£¼ ë©”ëª¨ë¦¬ì— ìžˆëŠ” ì±… 표시" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:89 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:571 +msgid "Card A" +msgstr "카드 A" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:90 +msgid "Show books in storage card A" +msgstr "저장 카드 Aì— ìžˆëŠ” ì±… 표시" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:91 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:573 +msgid "Card B" +msgstr "카드 B" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:92 +msgid "Show books in storage card B" +msgstr "저장 카드 Bì— ìžˆëŠ” ì±… 표시" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:131 +msgid "available" +msgstr "ì´ìš© 가능" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:162 msgid "" -"Dropping onto a device is not supported. First add the book to the calibre " -"library." +"Books display will be restricted to those matching the selected saved search" 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 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:175 msgid "Advanced search" -msgstr "" +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 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:184 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 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:191 msgid "Reset Quick Search" +msgstr "빠른 검색 초기화" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:203 +msgid "Copy current search text (instead of search name)" +msgstr "í˜„ìž¬ì˜ ê²€ìƒ‰ì–´ë¥¼ 복사합니다 (검색어 대신ì—)" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:209 +msgid "Save current search under the name shown in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 -msgid "Sort by &popularity" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:215 +msgid "Delete current saved search" +msgstr "í˜„ìž¬ì˜ ì €ìž¥ëœ ê²€ìƒ‰ì–´ 삭제하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:302 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:467 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:108 +msgid "%d books" +msgstr "%d ê¶Œì˜ ì±…" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:305 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:468 +msgid "Choose calibre library to work with" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 -msgid "Match any" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:336 +msgid "Connect to folder" +msgstr "í´ë”로 ì—°ê²°" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:341 +msgid "Connect to iTunes" +msgstr "iTunes로 ì—°ê²°" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:348 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:356 +msgid "Start Content Server" +msgstr "컨í…츠 서버 실행하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:358 +msgid "Stop Content Server" +msgstr "컨í…츠 서버 ì •ì§€" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:369 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:375 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:377 +msgid "Email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 -msgid "Match all" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:377 +msgid " and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 -msgid "Add books" -msgstr "ì±… 추가하기" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:389 +msgid "Setup email based sharing of books" +msgstr "ì „ìžìš°íŽ¸ì„ ê¸°ë°˜ìœ¼ë¡œ ì±… 공유하기 설정" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:462 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/trunk/src/calibre/gui2/layout.py:462 +msgid "Add books" +msgstr "ì±… 추가하기" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 -msgid "Del" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:463 +msgid "E" +msgstr "E" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 -msgid "Edit meta information" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:463 +msgid "Edit metadata" 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 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:464 msgid "C" -msgstr "" +msgstr "C" -#: /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/trunk/src/calibre/gui2/layout.py:464 +msgid "Convert books" +msgstr "ì±… 변환하기" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:465 msgid "V" -msgstr "" +msgstr "V" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 -msgid "Open containing folder" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:465 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:568 +msgid "View" +msgstr "보기" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 -msgid "Show book details" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:466 +msgid "Send to device" +msgstr "장치로 전송하기" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 -msgid "Books by same author" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:469 +msgid "F" +msgstr "F" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 -msgid "Books in this series" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:469 +msgid "Fetch news" +msgstr "뉴스 가져오기" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 -msgid "Books by this publisher" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:470 +msgid "S" +msgstr "S" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 -msgid "Books with the same tags" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:470 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:551 +msgid "Save to disk" +msgstr "디스í¬ì— 저장하기" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 -msgid "Configure calibre" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:471 +msgid "Connect/share" +msgstr "ì—°ê²°/공유" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:472 +msgid "Del" +msgstr "Del" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:472 +msgid "Remove books" +msgstr "ì±… 지우기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:473 +msgid "Browse the calibre User Manual" +msgstr "calibre ì‚¬ìš©ìž ë©”ë‰´ì–¼ 찾아보기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:473 +msgid "F1" +msgstr "F1" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:473 +msgid "Help" +msgstr "ë„움ë§" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:474 msgid "Ctrl+P" +msgstr "Ctrl+P" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:476 +msgid "M" +msgstr "M" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:476 +msgid "Merge book records" +msgstr "ì±… 레코드 병합하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:477 +msgid "Open containing folder" +msgstr "ë‹´ê³  있는 í´ë” 열기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:479 +msgid "Show book details" +msgstr "ì±… ìƒì„¸ì •ë³´ 보기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:481 +msgid "Books by same author" +msgstr "ë™ì¼í•œ ì €ìžì˜ 책들" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:483 +msgid "Books in this series" +msgstr "ì´ ì‹œë¦¬ì¦ˆì˜ ì±…ë“¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:485 +msgid "Books by this publisher" +msgstr "ì´ ì¶œíŒì‚¬ì˜ 책들" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:487 +msgid "Books with the same tags" +msgstr "ê°™ì€ íƒœê·¸ë¥¼ 가진 책들" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:501 +msgid "Edit metadata individually" +msgstr "개별 메타 ì •ë³´ 수정하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:504 +msgid "Edit metadata in bulk" +msgstr "단체로 메타 ì •ë³´ 편집하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:507 +msgid "Download metadata and covers" +msgstr "메타 정보와 표지 내려받기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:510 +msgid "Download only metadata" +msgstr "메타 ì •ë³´ë§Œ 내려받기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:512 +msgid "Download only covers" +msgstr "표지만 내려받기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:515 +msgid "Download only social metadata" +msgstr "소셜 메타 ì •ë³´ë§Œ 내려받기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:521 +msgid "Merge into first selected book - delete others" +msgstr "먼저 ì„ íƒí•œ 책으로 병합하고 - 나머지 ì‚­ì œ" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:524 +msgid "Merge into first selected book - keep others" +msgstr "먼저 ì„ íƒí•œ 책으로 병합하고 - 나머지 유지" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:532 +msgid "Add books from a single directory" +msgstr "í•˜ë‚˜ì˜ ë””ë ‰í† ë¦¬ì—서 ì±… 추가하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:534 +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/trunk/src/calibre/gui2/layout.py:538 +msgid "" +"Add books from directories, including sub directories (Multiple books per " +"directory, assumes every ebook file is a different book)" +msgstr "하위 디렉토리를 í¬í•¨í•˜ì—¬ 디렉토리ì—서 ì±… 추가하기 (디렉토리마다 ì—¬ëŸ¬ê¶Œì˜ ì±…ì´ë©°, ì „ìžì±… 파ì¼ë§ˆë‹¤ 다른 책으로 취급합니다)" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:541 +msgid "Add Empty book. (Book entry with no formats)" +msgstr "비어있는 ì±… 추가하기 (형ì‹ì´ 없는 ì±… 항목)" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:553 +msgid "Save to disk in a single directory" +msgstr "디스í¬ì— í•˜ë‚˜ì˜ ë””ë ‰í† ë¦¬ì— ì €ìž¥í•˜ê¸°" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:555 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:385 +msgid "Save only %s format to disk" +msgstr "%s 형ì‹ë§Œ 디스í¬ì— 저장하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:559 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:388 +msgid "Save only %s format to disk in a single directory" +msgstr "%s 형ì‹ë§Œ 디스í¬ì— í•˜ë‚˜ì˜ ë””ë ‰í† ë¦¬ì— ì €ìž¥í•˜ê¸°" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:569 +msgid "View specific format" +msgstr "특정한 í˜•ì‹ ë³´ê¸°" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:575 +msgid "Remove selected books" +msgstr "ì„ íƒëœ ì±… 지우기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:577 +msgid "Remove files of a specific format from selected books.." +msgstr "ì„ íƒëœ ì±…ì—서 특정한 형ì‹ì˜ íŒŒì¼ ì§€ìš°ê¸°..." + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:580 +msgid "Remove all formats from selected books, except..." +msgstr "ì„ íƒëœ ì±…ì—서 지정한 형ì‹ì˜ 파ì¼ì„ 제외한 모든 íŒŒì¼ ì§€ìš°ê¸°" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:583 +msgid "Remove covers from selected books" +msgstr "ì„ íƒëœ ì±…ì—서 표지 지우기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:586 +msgid "Remove matching books from device" +msgstr "장치ì—서 ì¼ì¹˜í•˜ëŠ” ì±… 지우기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:603 +msgid "Convert individually" +msgstr "개별ì ìœ¼ë¡œ 변환하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:605 +msgid "Bulk convert" +msgstr "단체로 변환하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:609 +msgid "Create catalog of books in your calibre library" +msgstr "calibre ë¼ì´ë¸ŒëŸ¬ë¦¬ì— ì±…ì˜ ë¶„ë¥˜ë¥¼ ìƒì„±" + +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:617 +msgid "Run welcome wizard" +msgstr "마법사 실행하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:284 +msgid "N" +msgstr "N" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:284 +msgid "Y" +msgstr "Y" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:66 +msgid "On Device" +msgstr "장치" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:68 +msgid "Size (MB)" +msgstr "용량 (MB)" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:71 +msgid "Rating" +msgstr "별ì " + +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:324 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1084 +msgid "Book %s of %s." +msgstr "%s ì œ%sê¶Œ" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:679 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1182 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:398 +msgid "The lookup/search name is \"{0}\"" +msgstr "검색어는 \"{0}\"입니다" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:886 +msgid "In Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:890 +msgid "Size" +msgstr "용량" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1162 +msgid "Marked for deletion" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1165 +msgid "Double click to edit me

    " +msgstr "편집하려면 ë”블í´ë¦­í•˜ì„¸ìš”

    " + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:110 +msgid "Hide column %s" +msgstr "%s ì—´ì„ ìˆ¨ê¹€" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:115 +msgid "Sort on %s" +msgstr "%s순으로 ì •ë ¬" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:116 +msgid "Ascending" +msgstr "오름차순" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:119 +msgid "Descending" +msgstr "내림차순" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:131 +msgid "Change text alignment for %s" +msgstr "%sì— ëŒ€í•œ 문ìžì—´ ì •ë ¬ì„ ë³€ê²½" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:133 +msgid "Left" +msgstr "왼쪽" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:133 +msgid "Right" +msgstr "오른쪽" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:134 +msgid "Center" +msgstr "중앙" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:153 +msgid "Show column" +msgstr "ì—´ 표시" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:165 +msgid "Restore default layout" +msgstr "기본 배치로 ë³µì›" + +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:567 +msgid "" +"Dropping onto a device is not supported. First add the book to the calibre " +"library." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/config_ui.py:47 +msgid "Configure Viewer" +msgstr "ë·°ì–´ 설정" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/config_ui.py:48 +msgid "Use white background" +msgstr "í°ìƒ‰ ë°°ê²½ 사용" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/config_ui.py:49 +msgid "Hyphenate" +msgstr "붙임표(-)로 연결하기" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/config_ui.py:50 +msgid "Changes will only take effect after a restart." +msgstr "ë³€ê²½ì‚¬í•­ì€ ìž¬ì‹œìž‘ ì´í›„ì— íš¨ê³¼ê°€ 있습니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main.py:70 +msgid " - LRF Viewer" +msgstr " - LRF ë·°ì–´" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main.py:160 +msgid "No matches for the search phrase %s were found." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main.py:160 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:440 +msgid "No matches found" +msgstr "ì¼ì¹˜í•˜ëŠ” ê²ƒì´ ì—†ìŠµë‹ˆë‹¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:128 +msgid "LRF Viewer" +msgstr "LRF ë·°ì–´" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:129 +msgid "Parsing LRF file" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:130 +msgid "LRF Viewer toolbar" +msgstr "LRF ë·°ì–´ 툴바" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:476 +msgid "Next Page" +msgstr "ë‹¤ìŒ ìª½" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:477 +msgid "Previous Page" +msgstr "ì´ì „ 쪽" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:188 +msgid "Back" +msgstr "뒤로" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:189 +msgid "Forward" +msgstr "앞으로" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:135 +msgid "Next match" +msgstr "ë‹¤ìŒ ì°¾ê¸°" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:196 +msgid "Open ebook" +msgstr "ì „ìžì±… 열기" + +#: /home/kovid/work/trunk/src/calibre/gui2/lrf_renderer/main_ui.py:137 +msgid "Configure" +msgstr "설정" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:30 +msgid "Use the library located at the specified path." +msgstr "지정한 ê²½ë¡œì— ìœ„ì¹˜í•œ ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ 사용합니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:32 +msgid "Start minimized to system tray." +msgstr "시스템 íŠ¸ë ˆì´ ì˜ì—­ìœ¼ë¡œ 최소화하여 시작합니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:34 +msgid "Log debugging information to console" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:36 +msgid "Do not check for updates" +msgstr "ì—…ë°ì´íŠ¸ë¥¼ 검사하지 않ìŒ" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:598 +msgid "Calibre Library" +msgstr "Calibre ë¼ì´ë¸ŒëŸ¬ë¦¬" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:86 +msgid "Choose a location for your calibre e-book library" +msgstr "calibre ì „ìžì±… ë¼ì´ë¸ŒëŸ¬ë¦¬ì— 대한 위치를 ì„ íƒí•˜ì„¸ìš”" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:95 +msgid "Failed to create library" +msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬ ìƒì„±ì´ 실패함" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:96 +msgid "Failed to create calibre library at: %r." +msgstr "ë‹¤ìŒ ìœ„ì¹˜ì— calibre ë¼ì´ë¸ŒëŸ¬ë¦¬ ìƒì„±ì´ 실패했습니다: %r." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:184 +msgid "Choose a location for your new calibre e-book library" +msgstr "새로운 calibre ì „ìžì±… ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ 위한 위치를 ì„ íƒí•©ë‹ˆë‹¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:153 +msgid "Initializing user interface..." +msgstr "ì‚¬ìš©ìž ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ 초기화합니다..." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:178 +msgid "Repairing failed" +msgstr "수리하기 실패" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:179 +msgid "The database repair failed. Starting with a new empty library." +msgstr "ë°ì´í„°ë² ì´ìФ 수리가 실패했습니다. 비어있는 새로운 ë¼ì´ë¸ŒëŸ¬ë¦¬ë¡œ 시작합니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:193 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:226 +msgid "Bad database location" +msgstr "ìž˜ëª»ëœ ë°ì´í„°ë² ì´ìФ 위치" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:194 +msgid "Bad database location %r. calibre will now quit." +msgstr "%r 위치는 ìž˜ëª»ëœ ë°ì´í„°ë² ì´ìФ 위치입니다. Calibre를 지금 종료합니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:207 +msgid "Corrupted database" +msgstr "ë°ì´í„°ë² ì´ìФ 오류 발견" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:208 +msgid "" +"Your calibre database appears to be corrupted. Do you want calibre to try " +"and repair it automatically? If you say No, a new empty calibre library will " +"be created." +msgstr "" +"Calibre ë°ì´í„°ë² ì´ìŠ¤ì— ì˜¤ë¥˜ê°€ ë°œìƒí•œ 것으로 보입니다. Calibreê°€ ìžë™ìœ¼ë¡œ 수리를 하ë„ë¡ í•˜ê² ìŠµë‹ˆê¹Œ? 아니오를 ì„ íƒí•œë‹¤ë©´, " +"새로 비어있는 Calibre ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ ìƒì„±í•  것입니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:214 +msgid "" +"Repairing database. This can take a very long time for a large collection" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:227 +msgid "" +"Bad database location %r. Will start with a new, empty calibre library" +msgstr "%r 위치는 ìž˜ëª»ëœ ë°ì´í„°ë² ì´ìФ 위치입니다. 비어있는 Calibre ë¼ì´ë¸ŒëŸ¬ë¦¬ë¡œ 새로 시작합니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:238 +msgid "Starting %s: Loading books..." +msgstr "%s 시작하는중: ì±…ì„ ë¶ˆëŸ¬ì˜µë‹ˆë‹¤..." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:283 +msgid "If you are sure it is not running" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:285 +msgid "Cannot Start " +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:286 +msgid "%s is already running." +msgstr "%sì€(는) ì´ë¯¸ 실행 중입니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:289 +msgid "may be running in the system tray, in the" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:291 +msgid "upper right region of the screen." +msgstr "í™”ë©´ì˜ ì˜¤ë¥¸ìª½ ìƒìœ„ ì˜ì—­ìž…니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:293 +msgid "lower right region of the screen." +msgstr "í™”ë©´ì˜ ì˜¤ë¥¸ìª½ 하위 ì˜ì—­ìž…니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:296 +msgid "try rebooting your computer." +msgstr "컴퓨터 ìž¬ë¶€íŒ…ì„ ì‹œë„합니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:298 +#: /home/kovid/work/trunk/src/calibre/gui2/main.py:310 +msgid "try deleting the file" +msgstr "íŒŒì¼ ì‚­ì œë¥¼ 시ë„합니다" + +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/main_window.py:61 msgid "&Preferences" -msgstr "" +msgstr "환경설정(&P)" -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/main_window.py:62 msgid "&Quit" -msgstr "" +msgstr "종료(&Q)" -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/main_window.py:90 msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/metadata.py:93 msgid "Book has neither title nor ISBN" -msgstr "" +msgstr "ì±…ì´ ì œëª© ë˜ëŠ” ISBNì´ ì—†ìŠµë‹ˆë‹¤." -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/metadata.py:119 msgid "No matches found for this book" -msgstr "" +msgstr "ì´ ì±…ì— ëŒ€í•´ ì¼ì¹˜í•˜ëŠ” ê²ƒì´ ì—†ìŠµë‹ˆë‹¤" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:254 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:554 msgid "Search" +msgstr "검색" + +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:306 +msgid "The selected search will be permanently deleted. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:348 +msgid "Search (For Advanced Search click the button to the left)" +msgstr "검색 (고급 ê²€ìƒ‰ì€ ì™¼ìª½ì˜ ë²„íŠ¼ì„ ëˆ„ë¥´ì„¸ìš”)" + +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:390 +msgid "Saved Searches" +msgstr "ì €ìž¥ëœ ê²€ìƒ‰ì–´" + +#: /home/kovid/work/trunk/src/calibre/gui2/search_box.py:398 +msgid "Choose saved search or enter name for new saved search" +msgstr "ì €ìž¥ëœ ê²€ìƒ‰ì–´ë¥¼ ì„ íƒí•˜ê±°ë‚˜ 새로운 ì €ìž¥ëœ ê²€ìƒ‰ì–´ë¥¼ 위한 ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”" + +#: /home/kovid/work/trunk/src/calibre/gui2/search_restriction_mixin.py:10 +msgid "Restrict to" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/search_restriction_mixin.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/search_restriction_mixin.py:55 +msgid "(all books)" +msgstr "(모든 ì±…)" + +#: /home/kovid/work/trunk/src/calibre/gui2/search_restriction_mixin.py:49 +msgid "({0} of {1})" +msgstr "({1} ì¤‘ì— {0})" + +#: /home/kovid/work/trunk/src/calibre/gui2/search_restriction_mixin.py:57 +msgid "({0} of all)" +msgstr "(ì „ {0}ê¶Œ)" + +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." -msgstr "" +msgstr "키를 누르세요..." -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:79 msgid "Already assigned" -msgstr "" +msgstr "ì´ë¯¸ 할당ë˜ì—ˆìŠµë‹ˆë‹¤" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:223 msgid " or " -msgstr "" +msgstr " ë˜ëŠ” " -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:69 msgid "&Default" -msgstr "" +msgstr "기본값(&D)" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:135 msgid "Customize shortcuts for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:223 msgid "Keys" -msgstr "" +msgstr "키" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" -msgstr "" +msgstr "변경하려면 ë”블 í´ë¦­" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:68 msgid "Frame" -msgstr "" +msgstr "í‹€" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:70 msgid "&Custom" -msgstr "" +msgstr "ì‚¬ìš©ìž ì •ì˜(&C)" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:71 msgid "&Shortcut:" -msgstr "" +msgstr "단축키(&S):" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:77 msgid "Click to change" -msgstr "" +msgstr "누르면 ë°”ë€ë‹ˆë‹¤" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:79 msgid "Clear" -msgstr "" +msgstr "비우기" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:76 msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 -msgid "Jobs:" +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:190 +msgid "Rename '%s'" +msgstr "'%s' ì´ë¦„ 변경" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:194 +msgid "Edit sort for '%s'" +msgstr "'%s'ì— ëŒ€í•œ 분류 편집" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:199 +msgid "Hide category %s" +msgstr "%s 분류 숨기기" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:202 +msgid "Show category" +msgstr "분류 보기" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:206 +msgid "Show all categories" +msgstr "모든 분류 보기" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:213 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:217 +msgid "Manage %s" +msgstr "%s 관리" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:220 +msgid "Manage Saved Searches" +msgstr "ì €ìž¥ëœ ê²€ìƒ‰ì–´ 관리" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:227 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:231 +msgid "Manage User Categories" +msgstr "ì‚¬ìš©ìž ë¶„ë¥˜ 관리" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:432 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:291 +msgid "Searches" +msgstr "검색" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:510 +msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:158 -msgid "Click to see list of active jobs." -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:511 +msgid "The saved search name %s is already used." +msgstr "ì €ìž¥ëœ ê²€ìƒ‰ì–´ ì´ë¦„ %s ì€(는) ì´ë¯¸ 사용중입니다." -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 -msgid "Click to browse books by their covers" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:767 +msgid "Sort by name" +msgstr "ì´ë¦„순으로 ì •ë ¬" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 -msgid "Click to turn off Cover Browsing" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:767 +msgid "Sort by popularity" +msgstr "ì¸ê¸°ë„ 순으로 ì •ë ¬" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:768 +msgid "Sort by average rating" +msgstr "í‰ê·  ë³„ì  ìˆœìœ¼ë¡œ ì •ë ¬" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:771 +msgid "Set the sort order for entries in the Tag Browser" +msgstr "태그 íƒìƒ‰ê¸°ì˜ í•­ëª©ì— ëŒ€í•œ ì •ë ¬ ë°©ì‹ì„ 지정합니다" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:777 +msgid "Match all" +msgstr "ëª¨ë‘ ì¼ì¹˜(AND)" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:777 +msgid "Match any" +msgstr "아무거나 ì¼ì¹˜(OR)" + +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:782 msgid "" -"

    Browsing books by their covers is disabled.
    Import of pictureflow " -"module failed:
    " -msgstr "" +"When selecting multiple entries in the Tag Browser match any or all of them" +msgstr "태그 íƒìƒ‰ê¸°ì—서 여러 í•­ëª©ì„ ì„ íƒí•  때 아무거나 ë˜ëŠ” ëª¨ë‘ ì¼ì¹˜í•©ë‹ˆë‹¤" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:209 -msgid "Click to browse books by tags" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:786 +msgid "Manage &user categories" +msgstr "ì‚¬ìš©ìž ë¶„ë¥˜ 관리(&U)" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 -msgid "Authors" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:789 +msgid "Add your own categories to the Tag Browser" +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 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:182 msgid "Convert book %d of %d (%s)" -msgstr "" +msgstr "%dê¶Œ(ì „ì²´ %dê¶Œ)ì˜ ì±…ì„ ë³€í™˜ (%s)" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:90 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:202 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:202 msgid "Could not convert some books" -msgstr "" +msgstr "ì¼ë¶€ ì±…ë“¤ì„ ë³€í™˜í•  수 ì—†ìŒ" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:91 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:203 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:91 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:120 msgid "Queueing books for bulk conversion" -msgstr "" +msgstr "단체로 변환하기 위해 ì±…ì„ ëŒ€ê¸°ì‹œí‚µë‹ˆë‹¤" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:181 msgid "Queueing " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:237 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:239 msgid "Fetch news from " -msgstr "" +msgstr "뉴스 가져오기: " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:301 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:302 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" -msgstr "" +msgstr "다ìŒì˜ ì±…ë“¤ì€ ì´ë¯¸ %s 형ì‹ìœ¼ë¡œ 변환ë˜ì–´ 있습니다. 재변환하시겠습니까?" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:160 msgid "&Restore" -msgstr "" +msgstr "ë³µì›(&R)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:178 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:162 msgid "&Donate to support calibre" -msgstr "" +msgstr "calbre를 ì§€ì›í•˜ë ¤ë©´ 기부하세요(&D)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:183 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:166 +msgid "&Eject connected device" +msgstr "ì—°ê²°ëœ ìž¥ì¹˜ ëŠê¸°(&E)" + +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:169 msgid "&Restart" -msgstr "" +msgstr "재시작(&R)" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:217 msgid "Calibre Quick Start Guide" -msgstr "" +msgstr "Calibre 빠른 시작 ê°€ì´ë“œ" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:367 msgid "Cannot configure" -msgstr "" +msgstr "설정할 수 ì—†ìŒ" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:363 msgid "Cannot configure while there are running jobs." -msgstr "" +msgstr "ìž‘ì—…ì´ ì‹¤í–‰ë˜ëŠ” ë™ì•ˆ 설정할 수 없습니다." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:368 +msgid "Cannot configure before calibre is restarted." +msgstr "Calibreê°€ 재시작하기 ì „ì— ì„¤ì •í•  수 없습니다." + +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:415 msgid "No detailed info available" -msgstr "" +msgstr "ì´ìš©ê°€ëŠ¥í•œ ìƒì„¸ ì •ë³´ê°€ 없습니다" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:416 msgid "No detailed information is available for books on the device." -msgstr "" +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 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:468 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:496 msgid "Conversion Error" -msgstr "" +msgstr "변환 오류" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:469 msgid "" "

    Could not convert: %s

    It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" +"

    변환할 수 ì—†ìŒ: %s

    ì´ê²ƒì€ DRMì´ ìžˆëŠ” 책입니다. 먼저 ì¨ë“œíŒŒí‹° ë„구를 사용해서 DRMì„ " +"제거해야 합니다." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:482 msgid "Recipe Disabled" -msgstr "" +msgstr "레시피 사용 안함" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:497 msgid "Failed" -msgstr "" +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 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:537 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." +"you find it useful, please consider donating to support its development. " +"Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:563 msgid "There are active jobs. Are you sure you want to quit?" -msgstr "" +msgstr "활ë™ì¤‘ì¸ ìž‘ì—…ì´ ìžˆìŠµë‹ˆë‹¤. 종료하는게 확실합니까?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:566 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/trunk/src/calibre/gui2/ui.py:570 msgid "WARNING: Active jobs" -msgstr "" +msgstr "경고: ìž‘ë™ì¤‘ì¸ ìž‘ì—…" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:625 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 +#: /home/kovid/work/trunk/src/calibre/gui2/update.py:56 msgid "Update available" -msgstr "" +msgstr "ì´ìš©ê°€ëŠ¥í•œ ì—…ë°ì´íЏ" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/trunk/src/calibre/gui2/update.py:57 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" msgstr "" +"%s ê°€ %s 버전으로 ì—…ë°ì´íЏë˜ì—ˆìŠµë‹ˆë‹¤. 새 " +"ê¸°ëŠ¥ì„ ì°¸ì¡°í•˜ì„¸ìš”. 내려받기 페ì´ì§€ë¥¼ 방문합니까?" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:43 msgid "Edit bookmark" -msgstr "" +msgstr "ë¶ë§ˆí¬ 편집하기" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:43 msgid "New title for bookmark:" -msgstr "" +msgstr "ë¶ë§ˆí¬ì— 대한 새로운 제목:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:52 msgid "Export Bookmarks" -msgstr "" +msgstr "ë¶ë§ˆí¬ 내보내기" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:54 msgid "Saved Bookmarks (*.pickle)" -msgstr "" +msgstr "ì €ìž¥ëœ ë¶ë§ˆí¬ (*.pickle)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:62 msgid "Import Bookmarks" -msgstr "" +msgstr "ë¶ë§ˆí¬ 가져오기" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:62 msgid "Pickled Bookmarks (*.pickle)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager.py:89 msgid "Name" -msgstr "" +msgstr "ì´ë¦„" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 msgid "Bookmark Manager" -msgstr "" +msgstr "ë¶ë§ˆí¬ 관리ìž" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 msgid "Actions" -msgstr "" +msgstr "ë™ìž‘" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 msgid "Edit" -msgstr "" +msgstr "편집" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 msgid "Delete" -msgstr "" +msgstr "ì‚­ì œ" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 msgid "Reset" -msgstr "" +msgstr "초기화" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 msgid "Export" -msgstr "" +msgstr "내보내기" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 msgid "Import" -msgstr "" +msgstr "가져오기" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" -msgstr "" +msgstr "ì „ìžì±… ë·°ì–´ 설정" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:155 msgid "&Font options" -msgstr "" +msgstr "글꼴 옵션(&F)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:156 msgid "Se&rif family:" -msgstr "" +msgstr "세리프체(&R):" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:157 msgid "&Sans family:" -msgstr "" +msgstr "산세리프체(&S):" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:158 msgid "&Monospace family:" -msgstr "" +msgstr "ê³ ì •í­ ê¸€ìžì²´(&M):" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:159 msgid "&Default font size:" -msgstr "" +msgstr "기본 ê¸€ìž í¬ê¸°(&D):" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:168 msgid " px" -msgstr "" +msgstr " px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:161 msgid "Monospace &font size:" -msgstr "" +msgstr "ê³ ì •í­ ê¸€ìž í¬ê¸°(&F):" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:163 msgid "S&tandard font:" -msgstr "" +msgstr "표준 글꼴(&T):" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:164 msgid "Serif" -msgstr "" +msgstr "세리프" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:165 msgid "Sans-serif" -msgstr "" +msgstr "산세리프" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace" -msgstr "" +msgstr "ê³ ì •í­" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:167 msgid "Remember last used &window size" -msgstr "" +msgstr "최근 ì‚¬ìš©ëœ ì°½ì˜ í¬ê¸°ë¥¼ 기억(&W)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:169 msgid "Maximum &view width:" -msgstr "" +msgstr "최대 보기 ë„“ì´(&V):" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:170 msgid "H&yphenate (break line in the middle of large words)" -msgstr "" +msgstr "붙임표(-)로 연결하기 (긴 ë‹¨ì–´ì˜ ì¤‘ê°„ì— ê°•ì œ 줄 넘김)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +#: /home/kovid/work/trunk/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 "" +msgstr "붙임표 ë¶™ì´ê¸°ì˜ ê·œì¹™ì— ì‚¬ìš©í•  기본 언어입니다. ì±…ì— ì–¸ì–´ê°€ 지정ë˜ì§€ ì•Šì€ ê²½ìš°ì— ì‚¬ìš©í•©ë‹ˆë‹¤." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:172 msgid "Default &language for hyphenation:" -msgstr "" +msgstr "붙임표 ë¶™ì´ê¸°ì— 대한 기본 언어(&L):" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:173 msgid "&Resize images larger than the viewer window (needs restart)" -msgstr "" +msgstr "ë·°ì–´ 창보다 í° ì´ë¯¸ì§€ë¥¼ 작게 조정합니다 (재시작 필요함) (&R)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" -msgstr "" +msgstr "ì‚¬ìš©ìž ìŠ¤íƒ€ì¼ì‹œíЏ(&U)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:175 msgid "&General" -msgstr "" +msgstr "ì¼ë°˜(&G)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:176 msgid "Double click to change a keyboard shortcut" -msgstr "" +msgstr "단축키를 변경하려면 ë”블í´ë¦­í•˜ì„¸ìš”" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/config_ui.py:177 msgid "&Keyboard shortcuts" -msgstr "" +msgstr "단축키(&K)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/dictionary.py:53 msgid "No results found for:" -msgstr "" +msgstr "ì°¾ì€ ê²°ê³¼ê°€ ì—†ìŒ:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:35 msgid "Options to customize the ebook viewer" -msgstr "" +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/trunk/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:675 msgid "Remember last used window size" -msgstr "" +msgstr "최근 ì‚¬ìš©ëœ ì°½ í¬ê¸°ë¥¼ 기억" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:81 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." -msgstr "" +msgstr "ì‚¬ìš©ìž CSS ìŠ¤íƒ€ì¼ ì‹œíŠ¸ë¥¼ 지정합니다. 모든 ì±…ì˜ ëª¨ì–‘ìƒˆë¥¼ ì‚¬ìš©ìž ì •ì˜í•  수 있습니다." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:46 msgid "Maximum width of the viewer window, in pixels." -msgstr "" +msgstr "ë·°ì–´ ì°½ì˜ ìµœëŒ€ 너비입니다. 픽셀 단위입니다." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:48 msgid "Resize images larger than the viewer window to fit inside it" -msgstr "" +msgstr "ë·°ì–´ 창보다 í° ê·¸ë¦¼ì„ ë·°ì–´ì— ë§žê²Œ í¬ê¸°ë¥¼ 재조정합니다." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:49 msgid "Hyphenate text" -msgstr "" +msgstr "í…스트 붙임표(-) ë¶™ì´ê¸°" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:51 msgid "Default language for hyphenation rules" -msgstr "" +msgstr "붙임표 ë¶™ì´ê¸°ì˜ ê·œì¹™ì— ëŒ€í•œ 기본 언어" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:53 msgid "Font options" -msgstr "" +msgstr "글꼴 옵션" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:55 msgid "The serif font family" -msgstr "" +msgstr "세리프 글꼴" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:57 msgid "The sans-serif font family" -msgstr "" +msgstr "산세리프 글꼴" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:59 msgid "The monospaced font family" -msgstr "" +msgstr "ê³ ì •í­ ê¸€ê¼´" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:60 msgid "The standard font size in px" -msgstr "" +msgstr "표준 ê¸€ìž í¬ê¸°(px)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:61 msgid "The monospaced font size in px" -msgstr "" +msgstr "ê³ ì •í­ ê¸€ìž í¬ê¸°(px)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:62 msgid "The standard font type" -msgstr "" +msgstr "표준 글꼴 종료" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:452 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 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:455 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." -msgstr "" +msgstr "ì´ë™í•˜ê¸°..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:467 +msgid "Next Section" +msgstr "ë‹¤ìŒ êµ¬ê°„" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:468 +msgid "Previous Section" +msgstr "ì´ì „ 구간" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:470 +msgid "Document Start" +msgstr "문서 시작" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:471 +msgid "Document End" +msgstr "문서 ë" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:473 +msgid "Section Start" +msgstr "구간 시작" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/documentview.py:474 +msgid "Section End" +msgstr "구간 ë" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:12 +msgid "Scroll to the next page" +msgstr "ë‹¤ìŒ íŽ˜ì´ì§€ë¡œ 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:15 +msgid "Scroll to the previous page" +msgstr "ì´ì „ 페ì´ì§€ë¡œ 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:18 +msgid "Scroll to the next section" +msgstr "ë‹¤ìŒ êµ¬ê°„ìœ¼ë¡œ 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:21 +msgid "Scroll to the previous section" +msgstr "ì´ì „ 구간으로 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:24 +msgid "Scroll to the bottom of the section" +msgstr "êµ¬ê°„ì˜ ìµœí•˜ë‹¨ìœ¼ë¡œ 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:27 +msgid "Scroll to the top of the section" +msgstr "êµ¬ê°„ì˜ ìµœìƒë‹¨ìœ¼ë¡œ 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:30 +msgid "Scroll to the end of the document" +msgstr "ë¬¸ì„œì˜ ë으로 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:33 +msgid "Scroll to the start of the document" +msgstr "ë¬¸ì„œì˜ ì‹œìž‘ìœ¼ë¡œ 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:36 +msgid "Scroll down" +msgstr "아래로 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:39 +msgid "Scroll up" +msgstr "위로 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:42 +msgid "Scroll left" +msgstr "왼쪽으로 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/keys.py:45 +msgid "Scroll right" +msgstr "오른쪽으로 스í¬ë¡¤" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:115 +msgid "Book format" +msgstr "ì±… 형ì‹" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:184 msgid "Position in book" -msgstr "" +msgstr "ì±…ì˜ ìœ„ì¹˜" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:191 msgid "Go to a reference. To get reference numbers, use the reference mode." -msgstr "" +msgstr "참조로 ì´ë™í•©ë‹ˆë‹¤. 참조 번호를 얻으려면 참조 모드를 사용하세요." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:199 msgid "Search for text in book" -msgstr "" +msgstr "ì±…ì˜ ë³¸ë¬¸ 검색하기" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:268 msgid "Print Preview" -msgstr "" +msgstr "ì¸ì‡„ 미리보기" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:299 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:398 msgid "Choose ebook" -msgstr "" +msgstr "ì „ìžì±… ì„ íƒ" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:399 msgid "Ebooks" -msgstr "" +msgstr "ì „ìžì±…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:418 msgid "Add bookmark" -msgstr "" +msgstr "ë¶ë§ˆí¬ 추가" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:418 msgid "Enter title for bookmark:" -msgstr "" +msgstr "ë¶ë§ˆí¬ì— 대한 ì œëª©ì„ ìž…ë ¥í•˜ì„¸ìš”:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:441 msgid "No matches found for: %s" -msgstr "" +msgstr "다ìŒì— 대해 ì¼ì¹˜í•˜ëŠ” ê²ƒì´ ì—†ìŠµë‹ˆë‹¤: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:478 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:514 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:543 msgid "Manage Bookmarks" -msgstr "" +msgstr "ë¶ë§ˆí¬ 관리" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:578 msgid "Loading ebook..." -msgstr "" +msgstr "ì±… 불러오는중..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:586 msgid "DRM Error" -msgstr "" +msgstr "DRM 오류" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:587 msgid "

    This book is protected by DRM" -msgstr "" +msgstr "

    ì´ ì±…ì€ DRMì— ì˜í•´ 보호ë˜ê³  있습니다" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:591 msgid "Could not open ebook" -msgstr "" +msgstr "ì „ìžì±…ì„ ì—´ 수 ì—†ìŒ" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:665 msgid "Options to control the ebook viewer" -msgstr "" +msgstr "ì „ìžì±… 뷰어를 제어하는 옵션" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:672 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/trunk/src/calibre/gui2/viewer/main.py:677 msgid "Print javascript alert and console messages to the console" -msgstr "" +msgstr "ì½˜ì†”ì— ìžë°”스í¬ë¦½íЏ 경고와 콘솔 메시지를 출력합니다" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:683 msgid "" "%prog [options] file\n" "\n" "View an ebook.\n" msgstr "" +"%prog [옵션] 파ì¼\n" +"\n" +"ì „ìžì±…ì„ ë´…ë‹ˆë‹¤.\n" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:178 -msgid "Ebook Viewer" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:184 +msgid "E-book Viewer" +msgstr "ì „ìžì±… ë·°ì–´" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:185 msgid "Close dictionary" -msgstr "" +msgstr "사전 닫기" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:187 msgid "toolBar" -msgstr "" +msgstr "툴바" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:190 msgid "Next page" -msgstr "" +msgstr "ë‹¤ìŒ íŽ˜ì´ì§€" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:191 msgid "Previous page" -msgstr "" +msgstr "ì´ì „ 페ì´ì§€" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:192 msgid "Font size larger" -msgstr "" +msgstr "í° ê¸€ìž í¬ê¸°" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:193 msgid "Font size smaller" -msgstr "" +msgstr "ìž‘ì€ ê¸€ìž í¬ê¸°" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:197 msgid "Find next" -msgstr "" +msgstr "ë‹¤ìŒ ì°¾ê¸°" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:198 +msgid "Find next occurrence" +msgstr "ë‹¤ìŒ ì°¾ê¸°" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:199 +msgid "F3" +msgstr "F3" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:200 msgid "Copy to clipboard" -msgstr "" +msgstr "í´ë¦½ë³´ë“œë¡œ 복사" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:202 msgid "Reference Mode" -msgstr "" +msgstr "참조 모드" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:203 msgid "Bookmark" -msgstr "" +msgstr "ë¶ë§ˆí¬" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:204 msgid "Toggle full screen" -msgstr "" +msgstr "전체화면 전환" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:205 msgid "Print" -msgstr "" +msgstr "ì¸ì‡„" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:206 +msgid "Find previous" +msgstr "ì´ì „ 찾기" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:207 +msgid "Find previous occurrence" +msgstr "ì´ì „ 찾기" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:208 +msgid "Shift+F3" +msgstr "Shift+F3" + +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/printing.py:114 msgid "Print eBook" -msgstr "" +msgstr "ì „ìžì±… ì¸ì‡„하기" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:238 msgid "Copy Image" -msgstr "" +msgstr "그림 복사" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:239 msgid "Paste Image" -msgstr "" +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 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:364 msgid "Change Case" -msgstr "" +msgstr "ëŒ€ì†Œë¬¸ìž ë°”ê¾¸ê¸°" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:365 msgid "Upper Case" -msgstr "" +msgstr "대문ìž" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:366 msgid "Lower Case" -msgstr "" +msgstr "소문ìž" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:367 msgid "Swap Case" -msgstr "" +msgstr "ëŒ€ì†Œë¬¸ìž ë°”ê¾¸ê¸°" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:368 msgid "Title Case" -msgstr "" +msgstr "제목 대소문ìž" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:838 +msgid "Drag to resize" +msgstr "í¬ê¸°ë¥¼ 변경하려면 드래그하세요" + +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:870 +msgid "Show" +msgstr "보기" + +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:877 +msgid "Hide" +msgstr "숨기기" + +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:370 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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:374 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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:376 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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:453 msgid "Moving library..." -msgstr "" +msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ ì´ë™í•˜ëŠ”ì¤‘..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:430 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:469 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:470 msgid "Failed to move library" -msgstr "" +msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬ ì´ë™ 실패" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:524 msgid "Invalid database" -msgstr "" +msgstr "ìž˜ëª»ëœ ë°ì´í„°ë² ì´ìФ" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:525 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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:536 msgid "Could not move library" -msgstr "" +msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ ì´ë™í•  수 ì—†ìŒ" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:590 +msgid "Select location for books" +msgstr "ì±…ì— ëŒ€í•œ 위치를 ì„ íƒí•˜ì„¸ìš”" + +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:665 msgid "welcome wizard" -msgstr "" +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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/device_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/device_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/kindle_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/library_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/stanza_ui.py:42 msgid "Welcome to calibre" -msgstr "" +msgstr "Calibreì— ì˜¤ì‹  ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/device_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/kindle_ui.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/library_ui.py:51 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 "" +msgstr "ì±… ë¦¬ë” ìž¥ì¹˜ë¥¼ ì„ íƒí•˜ì„¸ìš”. ì´ê²ƒì€ ìž¥ì¹˜ì— ëŒ€í•´ 최ì í™”ëœ ì±…ì„ ìƒì‚°í•˜ëŠ” 변환 ì˜µì…˜ì„ ì„¤ì •í•  것입니다." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/device_ui.py:52 msgid "&Manufacturers" -msgstr "" +msgstr "제조사(&M)" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/device_ui.py:53 msgid "&Devices" -msgstr "" +msgstr "장치(&D)" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:44 msgid "" "

    Congratulations!

    You have successfully setup calibre. Press the %s " "button to apply your settings." -msgstr "" +msgstr "

    축하합니다!

    calibre를 성공ì ìœ¼ë¡œ 설정했습니다. ì„¤ì •ì„ ì ìš©í•˜ë ¤ë©´ %s ë²„íŠ¼ì„ ëˆ„ë¥´ì„¸ìš”." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:45 msgid "" "

    Demo videos

    Videos demonstrating the various features of calibre are " "available online." msgstr "" +"

    시범 ë™ì˜ìƒ

    Calibreì˜ ì—¬ëŸ¬ ê¸°ëŠ¥ë“¤ì„ ë³´ì—¬ì£¼ëŠ” ë™ì˜ìƒìœ¼ë¡œ 온ë¼ì¸ì—서 ì´ìš©í•  수 있습니다." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:46 msgid "" "

    User Manual

    A User Manual is also available online." msgstr "" +"

    ì‚¬ìš©ìž ë§¤ë‰´ì–¼

    ì‚¬ìš©ìž ë§¤ë‰´ì–¼ì€ ì˜¨ë¼ì¸ìœ¼ë¡œ ì´ìš©í•  수 있습니다." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 +#: /home/kovid/work/trunk/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 " @@ -6835,151 +8976,159 @@ msgid "" "button below. You will also have to register your gmail address in your " "Amazon account." msgstr "" +"

    calibre는 ìžë™ìœ¼ë¡œ Kindleì— ì „ìžìš°íŽ¸ìœ¼ë¡œ ì±…ì„ ë³´ë‚¼ 수 있습니다. ì´ê²ƒì„ 하려면 ì•„ëž˜ì˜ ì „ìžìš°íޏ 배달하기를 설정해야 " +"합니다. 가장 쉬운 ë°©ë²•ì€ ì•„ëž˜ì˜ Gmail 사용 ë²„íŠ¼ì„ ëˆŒëŸ¬ì„œ 무료로 Gmail " +"ê³„ì •ì„ ì„¤ì •í•˜ëŠ” 것입니다. ë˜í•œ ë‹¹ì‹ ì˜ ì•„ë§ˆì¡´ ê³„ì •ì— Gmail 주소를 등ë¡í•´ì•¼ í•  것입니다." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/kindle_ui.py:45 msgid "&Kindle email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/library_ui.py:52 msgid "Choose your &language:" -msgstr "" +msgstr "언어를 ì„ íƒí•˜ì„¸ìš”(&L):" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:53 +#: /home/kovid/work/trunk/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 "ì±…ì„ ë³´ê´€í•  위치를 ì„ íƒí•˜ì„¸ìš”. calibreì— ì±…ì„ ì¶”ê°€í•˜ë©´, ì´ ìœ„ì¹˜ë¡œ 복사ë©ë‹ˆë‹¤." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/library_ui.py:54 msgid "&Change" -msgstr "" +msgstr "변경하기(&C)" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +#: /home/kovid/work/trunk/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 "" +"ê¸°ì¡´ì˜ Calibre ë¼ì´ë¸ŒëŸ¬ë¦¬ê°€ 있다면 새로운 위치로 복사할 것입니다. 새로운 ìœ„ì¹˜ì— ì´ë¯¸ Calibre ë¼ì´ë¸ŒëŸ¬ë¦¬ê°€ 존재한다면, " +"Calibre는 ê·¸ê²ƒì„ ì‚¬ìš©í•˜ëŠ” 것으로 바꿀 것입니다." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:32 msgid "Using: %s:%s@%s:%s and %s encryption" -msgstr "" +msgstr "사용법: %s:%s@%s:%s 그리고 %s 암호화" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:37 msgid "Sending..." -msgstr "" +msgstr "보내는 중..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:42 msgid "Mail successfully sent" -msgstr "" +msgstr "ë©”ì¼ì„ 성공ì ìœ¼ë¡œ 보냄" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:114 msgid "Finish gmail setup" -msgstr "" +msgstr "gmail 설정 완료" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:115 +#: /home/kovid/work/trunk/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 "" +"Gmailì˜ ì‚¬ìš©ìž ì´ë¦„ê³¼ 암호를 입력하는 ê²ƒì„ ìžŠì§€ 마세요. http://gmail.comì—서 무료 Gmail ê³„ì •ì— ê°€ìž…í•  수 " +"있습니다." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:130 msgid "Bad configuration" -msgstr "" +msgstr "ìž˜ëª»ëœ ì„¤ì •" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:124 msgid "You must set the From email address" -msgstr "" +msgstr "ì´ë©”ì¼ ì£¼ì†Œì˜ ë³´ë‚¸ì´ë¥¼ 지정해야 합니다" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email.py:131 msgid "You must set the username and password for the mail server." -msgstr "" +msgstr "ë©”ì¼ ì„œë²„ì— ëŒ€í•œ 사용ìžëª…ê³¼ 암호를 지정해야 합니다." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:108 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:108 msgid "Send email &from:" -msgstr "" +msgstr "ë³´ë‚¸ì´ ì „ìžìš°íޏ 주소(&F):" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 +#: /home/kovid/work/trunk/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 "" +"

    ì´ê²ƒì€ calibreì— ì˜í•´ 보내지는 ì „ìžìš°íŽ¸ì˜ ë³´ë‚¸ì´: ì˜ì—­ì— 주어지는 것입니다.
    ë‹¹ì‹ ì˜ ì „ìžìš°íޏ 주소를 지정하세요" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:110 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:111 msgid "Mail &Server" -msgstr "" +msgstr "ë©”ì¼ ì„œë²„(&S)" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:112 msgid "calibre can optionally use a server to send mail" -msgstr "" +msgstr "calibre는 편지를 보내기 위해 ì„ íƒì ìœ¼ë¡œ 서버를 사용할 수 있습니다" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:113 msgid "&Hostname:" -msgstr "" +msgstr "호스트 ì´ë¦„(&H):" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:114 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" -msgstr "" +msgstr "ë©”ì¼ ì„œë²„ì˜ í˜¸ìŠ¤íŠ¸ ì´ë¦„입니다. 예를 들면. smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:115 msgid "&Port:" -msgstr "" +msgstr "í¬íЏ(&P):" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:116 msgid "" "The port your mail server listens for connections on. The default is 25" -msgstr "" +msgstr "ë©”ì¼ ìˆ˜ì‹  ì„œë²„ì˜ í¬íŠ¸ìž…ë‹ˆë‹¤. ê¸°ë³¸ê°’ì€ 25입니다" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:118 msgid "Your username on the mail server" -msgstr "" +msgstr "ë©”ì¼ ì„œë²„ì˜ ì´ë¦„입니다" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:120 msgid "Your password on the mail server" -msgstr "" +msgstr "ë©”ì¼ ì„œë²„ì˜ ì•”í˜¸ìž…ë‹ˆë‹¤" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:121 msgid "&Show" -msgstr "" +msgstr "보기(&S)" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:122 msgid "&Encryption:" -msgstr "" +msgstr "암호화(&E):" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/trunk/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 "" +msgstr "TLS 암호화는 ë©”ì¼ì„œë²„ì— ì ‘ì†í•  때 사용합니다. ì´ê²ƒì€ 가장 í”하게 사용합니다." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "&TLS" -msgstr "" +msgstr "TLS(&T)" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "Use SSL encryption when connecting to the mail server." -msgstr "" +msgstr "SSL 암호화는 ë©”ì¼ ì„œë²„ì— ì ‘ì†í•  때 사용합니다." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "&SSL" -msgstr "" +msgstr "SSL(&S)" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Use Gmail" -msgstr "" +msgstr "Gmail 사용" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "&Test email" -msgstr "" +msgstr "ì „ìžìš°íޏ 시험(&T)" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 +#: /home/kovid/work/trunk/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 " @@ -6987,45 +9136,56 @@ msgid "" "server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/stanza_ui.py:45 msgid "Turn on the &content server" -msgstr "" +msgstr "컨í…츠 서버 사용하기(&C)" -#: /home/kovid/work/calibre/src/calibre/library/__init__.py:8 -msgid "Settings to control the calibre content server" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/library/caches.py:230 +msgid "today" +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/trunk/src/calibre/library/caches.py:233 +msgid "yesterday" +msgstr "ì–´ì œ" -#: /home/kovid/work/calibre/src/calibre/library/__init__.py:14 -msgid "The server timeout in seconds. Default is %default" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/library/caches.py:236 +msgid "thismonth" +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/trunk/src/calibre/library/caches.py:239 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:240 +msgid "daysago" +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/trunk/src/calibre/library/caches.py:398 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:408 +msgid "no" +msgstr "아니오" -#: /home/kovid/work/calibre/src/calibre/library/__init__.py:20 -msgid "Username for access. By default, it is: %default" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/library/caches.py:398 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:408 +msgid "unchecked" +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/trunk/src/calibre/library/caches.py:401 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:411 +msgid "checked" +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/trunk/src/calibre/library/caches.py:401 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:411 +msgid "yes" +msgstr "예" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/trunk/src/calibre/library/caches.py:405 +msgid "blank" +msgstr "빈 칸" + +#: /home/kovid/work/trunk/src/calibre/library/caches.py:405 +msgid "empty" +msgstr "비어 있ìŒ" + +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:48 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7033,8 +9193,12 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"ë°ì´í„°ë² ì´ìŠ¤ì˜ ì±…ì„ ë¶„ë¥˜í•  때 출력할 필드입니다. í•„ë“œì˜ ëª©ë¡ì€ 쉼표로 구분해야 합니다.\n" +"ì´ìš©ê°€ëŠ¥í•œ 필드: %s.\n" +"기본값: '%%default'\n" +"ì ìš© 대ìƒ: CSV, XML 출력 형ì‹" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:58 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7042,14 +9206,76 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:206 +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: BIBTEX output format" +msgstr "" +"ë°ì´í„°ë² ì´ìŠ¤ì˜ ì±…ì„ ë¶„ë¥˜í•  때 출력할 필드입니다. í•„ë“œì˜ ëª©ë¡ì€ 쉼표로 구분해야 합니다.\n" +"ì´ìš©ê°€ëŠ¥í•œ 필드: %s.\n" +"기본값: '%%default'\n" +"ì ìš© 대ìƒ: BIBTEX 출력 형ì‹" + +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:216 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:225 +msgid "" +"Create a citation for BibTeX entries.\n" +"Boolean value: True, False\n" +"Default: '%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:234 +msgid "" +"The template for citation creation from database fields.\n" +" Should be a template with {} enclosed fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:244 +msgid "" +"BibTeX file encoding output.\n" +"Available types: utf8, cp1252, ascii.\n" +"Default: '%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:253 +msgid "" +"BibTeX file encoding flag.\n" +"Available types: strict, replace, ignore, backslashreplace.\n" +"Default: '%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:262 +msgid "" +"Entry type for BibTeX catalog.\n" +"Available types: book, misc, mixed.\n" +"Default: '%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:530 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/trunk/src/calibre/library/catalog.py:537 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 " @@ -7058,14 +9284,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:547 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/trunk/src/calibre/library/catalog.py:553 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7074,21 +9300,51 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:561 msgid "" -"Tag indicating book has been read.\n" +"Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"ë¶„ë¥˜ì— '제목' êµ¬ê°„ì„ í¬í•¨í•©ë‹ˆë‹¤.\n" +"기본값: '%default'\n" +"ì ìš©ëŒ€ìƒ: ePub, MOBI 출력 형ì‹" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:568 +msgid "" +"Include 'Recently Added' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"ë¶„ë¥˜ì— '최근 추가ë¨' êµ¬ê°„ì„ í¬í•¨í•©ë‹ˆë‹¤.\n" +"기본값: '%default'\n" +"ì ìš©ëŒ€ìƒ: ePub, MOBI 출력 형ì‹" + +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:575 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"ì‚¬ìš©ìž ì£¼ì„ì— ëŒ€í•œ 태그 ì ‘ë‘사, 예. '*Jeff might enjoy reading this'.\n" +"기본값: '%default'\n" +"ì ìš©ëŒ€ìƒ: ePub, MOBI 출력 형ì‹" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:582 +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 "" +"숫ìžê°€ 먼저 오는 제목ì¼ê²½ìš° 문ìžì—´ë¡œì„œ ì •ë ¬, 예,\n" +"'2001: A Space Odyssey'ì„ \n" +"'Two Thousand One: A Space Odyssey'로서 정렬합니다.\n" +"기본값: '%default'\n" +"ì ìš©ëŒ€ìƒ: ePub, MOBI 출력 형ì‹" + +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:589 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7098,20 +9354,30 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:121 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:596 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:41 msgid "" "Path to the calibre library. Default is to use the path stored in the " "settings." -msgstr "" +msgstr "calibre ë¼ì´ë¸ŒëŸ¬ë¦¬ì˜ 경로입니다. 기본값으로는 ì„¤ì •ì„ ë³´ê´€í•˜ëŠ” 경로를 사용합니다." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:200 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:120 msgid "" "%prog list [options]\n" "\n" "List the books available in the calibre database.\n" msgstr "" +"%prog list [옵션]\n" +"\n" +"calibre ë°ì´í„°ë² ì´ìФì—서 ì´ìš©ê°€ëŠ¥í•œ ì±…ë“¤ì˜ ëª©ë¡ìž…니다.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:208 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:128 msgid "" "The fields to display when listing books in the database. Should be a comma " "separated list of fields.\n" @@ -7119,62 +9385,60 @@ msgid "" "Default: %%default. The special field \"all\" can be used to select all " "fields. Only has effect in the text output format." msgstr "" +"ë°ì´í„°ë² ì´ìŠ¤ì˜ ì±…ì„ ëª©ë¡í™” 할때 표시할 필드입니다. í•„ë“œì˜ ëª©ë¡ì€ 쉼표(,)로 구분합니다.\n" +"ì´ìš©ê°€ëŠ¥í•œ 필드: %s\n" +"기본값: %%default. 특별한 í•„ë“œì¸ \"all\"ì€ ëª¨ë“  필드를 ì„ íƒí•˜ê¸° 위해 사용할 수 있습니다. ì˜¤ì§ ë³¸ë¬¸ 출력 형ì‹ì—ë§Œ " +"효과가 있습니다." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:210 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:135 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 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:137 msgid "Sort results in ascending order" -msgstr "" +msgstr "ì˜¤ë¦„ì°¨ìˆœì˜ ê²°ê³¼ë¡œ 정렬합니다" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:214 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:139 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 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:141 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 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:142 msgid "The string used to separate fields. Default is a space." -msgstr "" +msgstr "문ìžì—´ì€ 필드를 êµ¬ë¶„í•˜ëŠ”ë° ì‚¬ìš©ë©ë‹ˆë‹¤. ê¸°ë³¸ê°’ì€ ê³µë°±ìž…ë‹ˆë‹¤." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:143 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 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:165 msgid "Invalid fields. Available fields:" -msgstr "" +msgstr "ìž˜ëª»ëœ í•„ë“œìž…ë‹ˆë‹¤. ì´ìš©ê°€ëŠ¥í•œ 필드:" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:241 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:172 msgid "Invalid sort field. Available fields:" -msgstr "" +msgstr "ìž˜ëª»ëœ ì •ë ¬ 필드입니다. ì´ìš©ê°€ëŠ¥í•œ 필드:" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:312 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:244 msgid "" "The following books were not added as they already exist in the database " "(see --duplicates option):" -msgstr "" +msgstr "다ìŒì˜ ì±…ë“¤ì€ ì´ë¯¸ ë°ì´í„°ë² ì´ìŠ¤ì— ì¡´ìž¬í•˜ë¯€ë¡œ 추가하지 않습니다 (--duplicates ì˜µì…˜ì„ ì°¸ì¡°í•˜ì„¸ìš”):" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:335 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:267 msgid "" "%prog add [options] file1 file2 file3 ...\n" "\n" @@ -7182,28 +9446,48 @@ msgid "" "directories, see\n" "the directory related options below.\n" msgstr "" +"%prog add [옵션] 파ì¼1 파ì¼2 파ì¼3 ...\n" +"\n" +"지정한 파ì¼ë“¤ì„ ë°ì´í„°ë² ì´ìŠ¤ì˜ ì±…ìœ¼ë¡œ 추가합니다. ë””ë ‰í† ë¦¬ë„ ì§€ì •í•  수 있습니다.\n" +"ì•„ëž˜ì— ë””ë ‰í† ë¦¬ 관련 ì˜µì…˜ì„ ì°¸ì¡°í•˜ì„¸ìš”\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:344 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:276 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 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:278 msgid "Process directories recursively" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:348 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:280 msgid "" "Add books to database even if they already exist. Comparison is done based " "on book titles." msgstr "ì´ë¯¸ DBì— ì±…ì´ ìžˆì–´ë„ ì±…ì„ ì¶”ê°€í•©ë‹ˆë‹¤. ì±…ì˜ ì´ë¦„ì„ ê¸°ë°˜ìœ¼ë¡œ 비êµí•©ë‹ˆë‹¤." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:358 -msgid "You must specify at least one file to add" -msgstr "" +#: /home/kovid/work/trunk/src/calibre/library/cli.py:282 +msgid "Add an empty book (a book with no formats)" +msgstr "비어있는 ì±… 추가하기 (형ì‹ì´ 없는 ì±…)" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:374 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:284 +msgid "Set the title of the added empty book" +msgstr "추가할 빈 ì±…ì˜ ì œëª© 지정" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:286 +msgid "Set the authors of the added empty book" +msgstr "추가할 빈 ì±…ì˜ ì €ìž ì§€ì •" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:288 +msgid "Set the ISBN of the added empty book" +msgstr "추가할 빈 ì±…ì˜ ISBN 지정" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:313 +msgid "You must specify at least one file to add" +msgstr "추가할 파ì¼ì„ 한 ê°œ ì´ìƒ 지정해야 합니다" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:329 msgid "" "%prog remove ids\n" "\n" @@ -7212,11 +9496,11 @@ msgid "" "command). For example, 23,34,57-85\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:389 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:344 msgid "You must specify at least one book to remove" -msgstr "" +msgstr "제거할 ì±…ì„ í•œ ê°œ ì´ìƒ 지정해야 합니다" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:408 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:363 msgid "" "%prog add_format [options] id ebook_file\n" "\n" @@ -7225,15 +9509,15 @@ msgid "" "already exists, it is replaced.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:423 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:378 msgid "You must specify an id and an ebook file" -msgstr "" +msgstr "ID와 ì „ìžì±… 파ì¼ì„ 지정해야 합니다" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:428 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:383 msgid "ebook file must have an extension" -msgstr "" +msgstr "ì „ìžì±… 파ì¼ì€ 확장ìžê°€ 있어야만 합니다" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:436 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:391 msgid "" "\n" "%prog remove_format [options] id fmt\n" @@ -7243,11 +9527,11 @@ msgid "" "EPUB. If the logical book does not have fmt available, do nothing.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:453 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:408 msgid "You must specify an id and a format" -msgstr "" +msgstr "ID와 형ì‹ì„ 지정해야 합니다" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:471 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:426 msgid "" "\n" "%prog show_metadata [options] id\n" @@ -7257,15 +9541,15 @@ msgid "" "id is an id number from the list command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:479 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:434 msgid "Print metadata in OPF form (XML)" -msgstr "" +msgstr "OPF ì–‘ì‹(XML)ì—서 메타 정보를 ì¸ì‡„합니다" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:488 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:443 msgid "You must specify an id" -msgstr "" +msgstr "ID를 지정해야 합니다" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:501 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:456 msgid "" "\n" "%prog set_metadata [options] id /path/to/metadata.opf\n" @@ -7278,11 +9562,11 @@ msgid "" "show_metadata command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:517 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:472 msgid "You must specify an id and a metadata file" -msgstr "" +msgstr "ID와 메타 정보를 지정해야 합니다" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:537 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:492 msgid "" "%prog export [options] ids\n" "\n" @@ -7293,27 +9577,54 @@ msgid "" "an opf file). You can get id numbers from the list command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:545 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:500 msgid "Export all books in database, ignoring the list of ids." -msgstr "" +msgstr "ë°ì´í„°ë² ì´ìŠ¤ì˜ ëª¨ë“  ì±…ì„ ë‚´ë³´ëƒ…ë‹ˆë‹¤. ID 목ë¡ì€ 무시합니다." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:547 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:502 msgid "Export books to the specified directory. Default is" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:549 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:504 msgid "Export all books into a single directory" -msgstr "" +msgstr "모든 ì±…ë“¤ì„ í•˜ë‚˜ì˜ ë””ë ‰í† ë¦¬ì— ë‚´ë³´ëƒ…ë‹ˆë‹¤" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:556 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:511 msgid "Specifying this switch will turn this behavior off." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:579 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:534 msgid "You must specify some ids or the %s option" +msgstr "ID ë˜ëŠ” %s ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:547 +msgid "" +"%prog add_custom_column [options] label name datatype\n" +"\n" +"Create a custom column. label is the machine friendly name of the column. " +"Should\n" +"not contain spaces or colons. name is the human friendly name of the " +"column.\n" +"datatype is one of: {0}\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:556 +msgid "" +"This column stores tag like data (i.e. multiple comma separated values). " +"Only applies if datatype is text." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:560 +msgid "" +"A dictionary of options to customize how the data in this column will be " +"interpreted." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:573 +msgid "You must specify label, name and datatype" +msgstr "ë ˆì´ë¸”, ì´ë¦„, ë°ì´í„°ì¢…류를 지정해야 합니다" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:631 msgid "" "\n" " %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" @@ -7324,30 +9635,91 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:645 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 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:649 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 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:655 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:505 msgid "Show detailed output information. Useful for debugging" msgstr "ìƒì„¸í•œ 출력 정보를 표시합니다. 디버깅 ì‹œì— ìœ ìš©í•©ë‹ˆë‹¤." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:668 msgid "Error: You must specify a catalog output file" +msgstr "오류: ë¶„ë¥˜ì˜ ì¶œë ¥ 파ì¼ì„ 지정해야 합니다" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:710 +msgid "" +"\n" +" %prog set_custom [options] column id value\n" +"\n" +" Set the value of a custom column for the book identified by id.\n" +" You can get a list of ids using the list command.\n" +" You can get a list of custom column names using the custom_columns\n" +" command.\n" +" " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:721 +msgid "" +"If the column stores multiple values, append the specified values to the " +"existing ones, instead of replacing them." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:732 +msgid "Error: You must specify a field name, id and value" +msgstr "오류: 필드명, ID, ê°’ì„ ì§€ì •í•´ì•¼ 합니다" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:751 +msgid "" +"\n" +" %prog custom_columns [options]\n" +"\n" +" List available custom columns. Shows column labels and ids.\n" +" " +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:758 +msgid "Show details for each column." +msgstr "ê° ì—´ì— ëŒ€í•œ ìƒì„¸ 정보를 표시합니다." + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:770 +msgid "You will lose all data in the column: %r. Are you sure (y/n)? " +msgstr "ë‹¤ìŒ ì—´ì˜ ëª¨ë“  ë°ì´í„°ë¥¼ 잃어버립니다: %r. 확실합니까 (y/n)? " + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:772 +msgid "y" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:778 +msgid "" +"\n" +" %prog remove_custom_column [options] label\n" +"\n" +" Remove the custom column identified by label. You can see available\n" +" columns with the custom_columns command.\n" +" " +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:786 +msgid "Do not ask for confirmation" +msgstr "확ì¸ì„ 다시 묻지 않ìŒ" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:796 +msgid "Error: You must specify a column label" +msgstr "오류: ì—´ ë ˆì´ë¸”ì„ ì§€ì •í•´ì•¼ 합니다" + +#: /home/kovid/work/trunk/src/calibre/library/cli.py:809 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7358,110 +9730,132 @@ msgid "" "\n" "For help on an individual command: %%prog command --help\n" msgstr "" +"%%prog 명령어 [옵션] [ì¸ìˆ˜]\n" +"\n" +"%%prog 는 calibre ì±… ë°ì´í„°ë² ì´ìŠ¤ì˜ ì»¤ë§¨ë“œë¼ì¸ ì¸í„°íŽ˜ì´ìŠ¤ìž…ë‹ˆë‹¤.\n" +"\n" +"명령어는 다ìŒì¤‘ 하나입니다:\n" +" %s\n" +"\n" +"개별ì ì¸ ëª…ë ¹ì–´ì˜ ë„움ë§: %%prog 명령어 --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:71 +msgid "%sAverage rating is %3.1f" +msgstr "%sí‰ê·  별ì ì€ %3.1f 입니다" + +#: /home/kovid/work/trunk/src/calibre/library/database2.py:569 +msgid "Main" +msgstr "주" + +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1799 msgid "

    Migrating old database to ebook library in %s

    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1828 msgid "Copying %s" -msgstr "" +msgstr "%s 복사하는중" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1845 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1938 msgid "Checking SQL integrity..." -msgstr "" +msgstr "SQL ë¬´ê²°ì„±ì„ ê²€ì‚¬í•©ë‹ˆë‹¤..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1979 msgid "Checking for missing files." -msgstr "" +msgstr "없어진 파ì¼ì„ 검사합니다." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:2001 msgid "Checked id" -msgstr "" +msgstr "ID 검사" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:122 +msgid "Ratings" +msgstr "별ì " + +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:24 msgid "The title" -msgstr "" +msgstr "제목" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:25 msgid "The authors" -msgstr "" +msgstr "ì €ìž" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 +#: /home/kovid/work/trunk/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 "" +msgstr "ì €ìž ë¶„ë¥˜ 문ìžì—´ìž…니다. ì´ë¦„ì˜ ì²«ë²ˆìž¬ 문ìžë§Œ 사용하려면 {author_sort[0]}ì„ ì‚¬ìš©í•©ë‹ˆë‹¤" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:28 msgid "The tags" -msgstr "" +msgstr "태그" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:29 msgid "The series" +msgstr "시리즈" + +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:30 +msgid "" +"The series number. To get leading zeros use {series_index:0>3s} or " +"{series_index:>3s} for leading spaces" 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 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:33 msgid "The rating" -msgstr "" +msgstr "별ì " -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:34 msgid "The ISBN" -msgstr "" +msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:35 msgid "The publisher" -msgstr "" +msgstr "ì¶œíŒì‚¬" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:36 msgid "The date" -msgstr "" +msgstr "ë‚ ì§œ" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:37 msgid "The published date" -msgstr "" +msgstr "ì¶œíŒì¼ìž" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:38 msgid "The calibre internal id" -msgstr "" +msgstr "calibre ë‚´ë¶€ ID" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:48 msgid "Options to control saving to disk" -msgstr "" +msgstr "디스í¬ë¡œ 저장하기를 제어할 옵션입니다" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:54 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 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:57 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 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:60 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 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:63 msgid "" "Comma separated list of formats to save for each book. By default all " "available books are saved." -msgstr "" +msgstr "책마다 저장할 형ì‹ì˜ 목ë¡ìž…니다. 쉼표(,)로 구분합니다. 기본값으로 all ì€ ëª¨ë“  가능한 ì±…ë“¤ì„ ì €ìž¥í•©ë‹ˆë‹¤." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:66 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 " @@ -7469,7 +9863,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:71 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 " @@ -7477,7 +9871,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:78 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -7485,378 +9879,513 @@ msgid "" "saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:84 msgid "" "The format in which to display dates. %d - day, %b - month, %Y - year. " "Default is: %b, %Y" -msgstr "" +msgstr "날짜를 표시할 형ì‹ìž…니다. %Y - ì—°ë„, %b - ì›”, %d - ì¼ìž. 기본값: %b, %Y" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:87 msgid "Convert paths to lowercase." -msgstr "" +msgstr "경로를 소문ìžë¡œ 변환합니다." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:89 msgid "Replace whitespace with underscores." -msgstr "" +msgstr "공백 문ìžë¥¼ 밑줄로 êµì²´í•©ë‹ˆë‹¤." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 +#: /home/kovid/work/trunk/src/calibre/library/save_to_disk.py:263 msgid "Requested formats not available" +msgstr "요청한 형ì‹ì€ ì´ìš©í•  수 없습니다" + +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:21 +msgid "Settings to control the calibre content server" +msgstr "calibre 콘í…츠 서버를 제어하는 설정입니다" + +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:25 +msgid "The port on which to listen. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:378 +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:27 +msgid "The server timeout in seconds. Default is %default" +msgstr "서버 대기 시간(ì´ˆ 단위)입니다. 기본값 %default" + +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:29 +msgid "The max number of worker threads to use. Default is %default" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:31 +msgid "Set a password to restrict access. By default access is unrestricted." +msgstr "ì œí•œëœ ì ‘ê·¼ì„ ìœ„í•´ 암호를 지정합니다. 기본값으로 ì ‘ê·¼ì— ì œí•œì„ ë‘ì§€ 않습니다." + +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:33 +msgid "Username for access. By default, it is: %default" +msgstr "ì ‘ê·¼ì„ ìœ„í•œ 사용사 ì´ë¦„입니다. 기본값: %default" + +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:37 +msgid "The maximum size for displayed covers. Default is %default." +msgstr "표지를 표시할 최대 í¬ê¸°ìž…니다. ê¸°ë³¸ê°’ì€ %default 입니다." + +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:39 +msgid "" +"The maximum number of matches to return per OPDS query. This affects Stanza, " +"WordPlayer, etc. integration." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/server/__init__.py:43 +msgid "" +"Group items in categories such as author/tags by first letter when there are " +"more than this number of items. Default: %default. Set to a large number to " +"disable grouping." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/server/base.py:94 msgid "Password to access your calibre library. Username is " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:860 +#: /home/kovid/work/trunk/src/calibre/library/server/main.py:28 msgid "" "[options]\n" "\n" "Start the calibre content server." msgstr "" +"[옵션]\n" +"\n" +"calibre 컨í…츠 서버를 시작합니다." -#: /home/kovid/work/calibre/src/calibre/library/server.py:862 +#: /home/kovid/work/trunk/src/calibre/library/server/main.py:30 msgid "Path to the library folder to serve with the content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 +#: /home/kovid/work/trunk/src/calibre/library/server/main.py:32 +msgid "Write process PID to the specified file" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:127 +msgid "%d items" +msgstr "%d ê°œì˜ í•­ëª©" + +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:144 +msgid "RATING: %s
    " +msgstr "별ì : %s
    " + +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:147 +msgid "TAGS: %s
    " +msgstr "태그: %s
    " + +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:151 +msgid "SERIES: %s [%s]
    " +msgstr "시리즈: %s [%s]
    " + +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:231 +msgid "Books in your library" +msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬ì˜ ì±…" + +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:237 +msgid "By " +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:238 +msgid "Books sorted by " +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:549 +msgid "Newest" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/utils/config.py:34 msgid "%sUsage%s: %s\n" -msgstr "" +msgstr "%s사용%s: %s\n" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:78 msgid "Created by " -msgstr "" +msgstr "제작ìž: " -#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:79 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 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:663 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:665 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:667 msgid "Access key for isbndb.com" -msgstr "" +msgstr "isbndb.comì— ëŒ€í•œ ì ‘ê·¼ 키" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:669 msgid "Default timeout for network operations (seconds)" -msgstr "" +msgstr "ë„¤íŠ¸ì›Œí¬ ìž‘ì—…ì— ëŒ€í•œ 기본 대기 시간 (ì´ˆ 단위)" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:671 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:673 msgid "The language in which to display the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:675 msgid "The default output format for ebook conversions." -msgstr "" +msgstr "ì „ìžì±… ë³€í™˜ì„ ìœ„í•œ 기본 출력 형ì‹ìž…니다." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:679 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:681 msgid "Read metadata from files" -msgstr "" +msgstr "파ì¼ì—서 메타 정보를 ì½ìŒ" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:683 msgid "The priority of worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 +#: /home/kovid/work/trunk/src/calibre/utils/config.py:685 msgid "Swap author first and last names when reading metadata" +msgstr "메타 정보를 ì½ì„ 때 ì €ìžì˜ 성과 ì´ë¦„ì„ ì„œë¡œ 바꿈" + +#: /home/kovid/work/trunk/src/calibre/utils/config.py:687 +msgid "Add new formats to existing book records" +msgstr "ê¸°ì¡´ì˜ ì±… ë ˆì½”ë“œì— ìƒˆë¡œìš´ í˜•ì‹ ì¶”ê°€í•˜ê¸°" + +#: /home/kovid/work/trunk/src/calibre/utils/config.py:692 +msgid "List of named saved searches" +msgstr "ì €ìž¥ëœ ê²€ìƒ‰ì–´ ì´ë¦„ 목ë¡" + +#: /home/kovid/work/trunk/src/calibre/utils/config.py:693 +msgid "User-created tag browser categories" +msgstr "사용ìžê°€ ìƒì„±í•œ 태그 íƒìƒ‰ê¸°ì˜ 분류" + +#: /home/kovid/work/trunk/src/calibre/utils/config.py:695 +msgid "How and when calibre updates metadata on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." -msgstr "" +msgstr "기다리는 중..." -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:51 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:51 msgid "Stopped" -msgstr "" +msgstr "ì •ì§€ë¨" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:53 msgid "Finished" -msgstr "" +msgstr "완료ë¨" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:75 msgid "Working..." -msgstr "" +msgstr "작업 중..." -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:93 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:95 msgid "Brazilian Portuguese" -msgstr "" +msgstr "í¬ë£¨íˆ¬ê°ˆì–´(브ë¼ì§ˆì‹)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:96 msgid "English (UK)" -msgstr "" +msgstr "ì˜ì–´ (ì˜êµ­)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:97 msgid "Simplified Chinese" -msgstr "" +msgstr "중국어 ê°„ì²´" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:98 msgid "Chinese (HK)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:99 msgid "Traditional Chinese" -msgstr "" +msgstr "중국어 번체" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:100 msgid "English" -msgstr "" +msgstr "ì˜ì–´" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:101 msgid "English (Australia)" -msgstr "" +msgstr "ì˜ì–´ (오스트레ì¼ë¦¬ì•„)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:102 msgid "English (New Zealand)" -msgstr "" +msgstr "ì˜ì–´ (뉴질랜드)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:103 msgid "English (Canada)" -msgstr "" +msgstr "ì˜ì–´ (ìºë‚˜ë‹¤)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:104 msgid "English (India)" -msgstr "" +msgstr "ì˜ì–´ (ì¸ë„)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:105 msgid "English (Thailand)" -msgstr "" +msgstr "ì˜ì–´ (태국)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:106 msgid "English (Cyprus)" -msgstr "" +msgstr "ì˜ì–´ (키프로스)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:107 msgid "English (Pakistan)" -msgstr "" +msgstr "ì˜ì–´ (파키스탄)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:108 +msgid "English (Israel)" +msgstr "ì˜ì–´ (ì´ìФë¼ì—˜)" + +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:109 msgid "English (Singapore)" -msgstr "" +msgstr "ì˜ì–´ (싱가í¬ë¥´)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:110 msgid "English (Yemen)" -msgstr "" +msgstr "ì˜ì–´ (예멘)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:111 +msgid "English (Ireland)" +msgstr "ì˜ì–´ (ì•„ì¼ëžœë“œ)" + +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:112 +msgid "English (China)" +msgstr "ì˜ìš° (중국)" + +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:113 +msgid "Spanish (Paraguay)" +msgstr "스페ì¸ì–´ (파ë¼ê³¼ì´)" + +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:114 msgid "German (AT)" -msgstr "" +msgstr "ë…ì¼ì–´ (AT)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:115 msgid "Dutch (NL)" -msgstr "" +msgstr "ë…ì¼ì–´ (네ëœëž€ë“œ)" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:116 msgid "Dutch (BE)" -msgstr "" +msgstr "ë…ì¼ì–´ (BE)" -#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 +#: /home/kovid/work/trunk/src/calibre/utils/sftp.py:53 msgid "URL must have the scheme sftp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:57 +#: /home/kovid/work/trunk/src/calibre/utils/sftp.py:57 msgid "host must be of the form user@hostname" -msgstr "" +msgstr "호스트는 사용ìžëª…@호스트명 ì˜ í˜•ì‹ì´ì–´ì•¼ 합니다." -#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:68 +#: /home/kovid/work/trunk/src/calibre/utils/sftp.py:68 msgid "Failed to negotiate SSH session: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71 +#: /home/kovid/work/trunk/src/calibre/utils/sftp.py:71 msgid "Failed to authenticate with server: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/trunk/src/calibre/utils/smtp.py:234 msgid "Control email delivery" +msgstr "ì „ìžìš°íޏ 배달하기 제어" + +#: /home/kovid/work/trunk/src/calibre/web/feeds/__init__.py:118 +msgid "Unknown section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:103 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:125 +#: /home/kovid/work/trunk/src/calibre/web/feeds/__init__.py:140 msgid "Unknown feed" -msgstr "" +msgstr "공급ìžë¥¼ 알 수 ì—†ìŒ" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:143 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:166 +#: /home/kovid/work/trunk/src/calibre/web/feeds/__init__.py:158 +#: /home/kovid/work/trunk/src/calibre/web/feeds/__init__.py:183 msgid "Untitled article" -msgstr "" +msgstr "제목없는 항목" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 +#: /home/kovid/work/trunk/src/calibre/web/feeds/input.py:21 msgid "Download periodical content from the internet" -msgstr "" +msgstr "ì¸í„°ë„·ì—서 정기 간행물 내려받기" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/web/feeds/input.py:46 msgid "" "Do not download latest version of builtin recipes from the calibre server" -msgstr "" +msgstr "calibre 서버ì—서 ë‚´ìž¥ëœ ë¦¬ì‹œí”„ì˜ ìµœì‹  ë²„ì „ì„ ë‹¤ìš´ë¡œë“œí•˜ì§€ 않습니다" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:46 msgid "Unknown News Source" -msgstr "" +msgstr "알 수 없는 뉴스 소스" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:609 msgid "The \"%s\" recipe needs a username and password." -msgstr "" +msgstr "'%s' 리시프는 ì‚¬ìš©ìž ì´ë¦„ê³¼ 암호를 필요로 합니다." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:708 msgid "Download finished" -msgstr "" +msgstr "내려받기 완료" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:710 msgid "Failed to download the following articles:" -msgstr "" +msgstr "ë‹¤ìŒ ê²Œì‹œë¬¼ì˜ ë‚´ë ¤ë°›ê¸°ê°€ 실패:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:716 msgid "Failed to download parts of the following articles:" -msgstr "" +msgstr "ë‹¤ìŒ ê²Œì‹œë¬¼ì˜ ë¶€ë¶„ì  ë‚´ë ¤ë°›ê¸°ê°€ 실패:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:718 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:720 msgid "\tFailed links:" -msgstr "" +msgstr "\t실패한 ë§í¬:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:809 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/trunk/src/calibre/web/feeds/news.py:830 msgid "Fetching feeds..." -msgstr "" +msgstr "공급ìžë¥¼ 가져옵니다..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:835 msgid "Got feeds from index page" -msgstr "" +msgstr "ìƒ‰ì¸ íŽ˜ì´ì§€ì—서 가져온 공급ìž" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:841 msgid "Trying to download cover..." +msgstr "í‘œì§€ì˜ ë‚´ë ¤ë°›ê¸°ë¥¼ 시ë„합니다..." + +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:843 +msgid "Generating masthead..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:924 msgid "Starting download [%d thread(s)]..." -msgstr "" +msgstr "내려받기 시작 [%d ê°œì˜ ìŠ¤ë ˆë“œ]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:940 msgid "Feeds downloaded to %s" -msgstr "" +msgstr "%sì— ë‹¤ìš´ë¡œë“œëœ ê³µê¸‰ìž" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:950 msgid "Could not download cover: %s" -msgstr "" +msgstr "표지를 ë‚´ë ¤ë°›ì„ ìˆ˜ 없습니다: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:962 msgid "Downloading cover from %s" +msgstr "%s ì—서 표지를 내려받습니다" + +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1003 +msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1172 msgid "Untitled Article" -msgstr "" +msgstr "제목없는 게시물" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1243 msgid "Article downloaded: %s" -msgstr "" +msgstr "게시물 내려받ìŒ: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1254 msgid "Article download failed: %s" -msgstr "" +msgstr "게시물 내려받기 실패: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1271 msgid "Fetching feed" +msgstr "ê³µê¸‰ìž ê°€ì ¸ì˜¤ê¸°" + +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1418 +msgid "" +"Failed to log in, check your username and password for the calibre " +"Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/trunk/src/calibre/web/feeds/news.py:1434 +msgid "" +"You do not have permission to download this issue. Either your subscription " +"has expired or you have exceeded the maximum allowed downloads for today." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/collection.py:47 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 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/model.py:73 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/model.py:82 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/model.py:193 msgid "Scheduled" -msgstr "" +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 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/model.py:84 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/model.py:194 msgid "Custom" -msgstr "" +msgstr "ì‚¬ìš©ìž ì •ì˜" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:482 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/trunk/src/calibre/web/fetch/simple.py:485 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/trunk/src/calibre/web/fetch/simple.py:488 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" -msgstr "" +msgstr "ì„œë²„ë¡œë¶€í„°ì˜ ì‘ë‹µì„ ê¸°ë‹¤ë¦´ 대기시간입니다(ì´ˆ 단위). 기본값: %default ì´ˆ" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:491 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/trunk/src/calibre/web/fetch/simple.py:494 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" -msgstr "" +msgstr "ë‚´ë ¤ë°›ì„ íŒŒì¼ì˜ 최대 개수입니다. íƒœê·¸ì— ìžˆëŠ” 파ì¼ì—ë§Œ ì ìš©í•©ë‹ˆë‹¤. ê¸°ë³¸ê°’ì€ %default 입니다." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:496 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/trunk/src/calibre/web/fetch/simple.py:498 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." -msgstr "" +msgstr "내려받으려고 하는 웹사ì´íŠ¸ì— ëŒ€í•œ ë¬¸ìž ì¸ì½”딩입니다. ê¸°ë³¸ê°’ì€ ì¶”ì¸¡í•˜ì—¬ ì¸ì½”ë”©ì„ ì‹œë„합니다." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:500 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/trunk/src/calibre/web/fetch/simple.py:502 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 " @@ -7865,9 +10394,9 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 +#: /home/kovid/work/trunk/src/calibre/web/fetch/simple.py:504 msgid "Do not download CSS stylesheets." -msgstr "CSS 스타ì¼ì‹œíŠ¸ë¥¼ 다운로드 받지 마시오" +msgstr "CSS 스타ì¼ì‹œíŠ¸ë¥¼ 내려받지 않ìŒ" #~ msgid "Communicate with the Cybook Gen 3 eBook reader." #~ msgstr "Cybook Gen 3 ì „ìžì±… 리ë”와 통신합니다" @@ -7881,6 +10410,9 @@ msgstr "CSS 스타ì¼ì‹œíŠ¸ë¥¼ 다운로드 받지 마시오" #~ msgid "Communicate with the Sony PRS-600/700 eBook reader." #~ msgstr "Sony PRS-600/700 ì „ìžì±… 리ë”와 통신합니다" +#~ msgid "Communicate with the Sony PRS-300/505/500 eBook reader." +#~ msgstr "Sony PRS-300/505/500 ì „ìžì±… 리ë”와 통신합니다" + #~ msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." #~ msgstr "ì´ í”„ë¡œíŒŒì¼ì€ SONY PRS ì‹œë¦¬ì¦ˆì— ì‚¬ìš©ë©ë‹ˆë‹¤. 500/505/700 등." @@ -7901,3 +10433,9 @@ msgstr "CSS 스타ì¼ì‹œíŠ¸ë¥¼ 다운로드 받지 마시오" #~ msgid "Character encoding for input. Default is to auto detect." #~ msgstr "ìž…ë ¥ë°›ì„ ë¬¸ìž ì¸ì½”딩. ê¸°ë³¸ê°’ì€ ìžë™ 검출." + +#~ msgid "Edit meta information" +#~ msgstr "메타 ì •ë³´ 수정하기" + +#~ msgid "Communicate with the Promedia eBook reader" +#~ msgstr "Promedia eBook Reader와 통신합니다" diff --git a/src/calibre/translations/lt.po b/src/calibre/translations/lt.po index 77b3602828..cccbeb89bf 100644 --- a/src/calibre/translations/lt.po +++ b/src/calibre/translations/lt.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-03-09 11:08+0000\n" -"PO-Revision-Date: 2010-03-09 14:53+0000\n" +"POT-Creation-Date: 2010-08-07 01:39+0000\n" +"PO-Revision-Date: 2010-08-06 21:38+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Lithuanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-03-10 04:43+0000\n" +"X-Launchpad-Export-Date: 2010-08-07 03:39+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -23,61 +23,61 @@ msgstr "Nieko nedaro" #: /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/kindle/driver.py:75 #: /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/chm/input.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:101 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:54 -#: /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/devices/prs505/sony_cache.py:506 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:405 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:402 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:335 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 #: /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:230 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:261 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:264 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 -#: /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/__init__.py:236 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:282 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:332 #: /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:118 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:120 -#: /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:892 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:123 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:125 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:945 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057 #: /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:38 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:76 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:117 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:151 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:605 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:804 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:806 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:39 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:65 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:909 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:914 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:980 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:911 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py: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/oeb/transforms/jacket.py:108 #: /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 @@ -98,48 +98,53 @@ msgstr "Nieko nedaro" #: /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:279 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:286 -#: /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:573 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:582 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:861 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:453 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:412 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:434 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:959 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1086 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:234 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:829 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:287 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:745 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:757 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1188 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1616 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1618 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1738 -#: /home/kovid/work/calibre/src/calibre/library/server.py:664 -#: /home/kovid/work/calibre/src/calibre/library/server.py:740 -#: /home/kovid/work/calibre/src/calibre/library/server.py:787 -#: /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/library/database2.py:356 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:368 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:976 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1045 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1646 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1648 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1770 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:199 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 +#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:117 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:78 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:50 msgid "Unknown" @@ -157,22 +162,22 @@ msgstr "Bylos tipas" msgid "Metadata reader" msgstr "Meta duomenu skaitytuvas" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:237 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:235 msgid "Metadata writer" -msgstr "" +msgstr "Meta duomenų raÅ¡ymas" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:263 msgid "Catalog generator" msgstr "Katalogo generatorius" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:16 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:50 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:52 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -180,55 +185,56 @@ msgstr "" "Ä®einanÄiu HTML bylų koduotÄ—. Dažniausiai parenkama: cp1257, latin1, iso-8859-" "1 ir utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:57 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:59 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:89 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:93 msgid "Extract cover from comic files" msgstr "IÅ¡traukti virÅ¡elį iÅ¡ comic bylu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:121 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:133 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:131 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:143 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:153 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:164 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:163 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:174 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:184 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:194 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 #: /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:236 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:248 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:269 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:280 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:224 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:235 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:258 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:279 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:290 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:300 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:310 msgid "Read metadata from %s files" msgstr "Meta duomenu skaitymas iÅ¡ %s bylu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:259 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:269 msgid "Read metadata from ebooks in RAR archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:311 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321 msgid "Read metadata from ebooks in ZIP archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:322 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:332 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:342 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:364 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:375 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:334 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:344 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:354 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:397 msgid "Set metadata in %s files" msgstr "Nustatyti meta duomenys %s byluose" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:353 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365 msgid "Set metadata from %s files" msgstr "Nustatyti meta duomenys iÅ¡ %s bylu" @@ -244,111 +250,125 @@ msgid "" "encoding declarations." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:237 msgid "Conversion Output" msgstr "Konversijos išėjimas" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:251 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 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:45 msgid "Input profile" msgstr "Ä®einantis profilis" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:48 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:49 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 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:414 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "Profilis skirtas SONY PRS produktams (500/505/600/700 ir t.t.)." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 msgid "This profile is intended for the SONY PRS 300." msgstr "Profilis skirtas SONY PRS 300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:449 msgid "This profile is intended for the SONY PRS-900." msgstr "Profilis skirtas SONY PRS-900." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 msgid "This profile is intended for the Microsoft Reader." msgstr "Profilis skirtas Microsoft Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:490 msgid "This profile is intended for the Mobipocket books." msgstr "Profilis skirtas Mobipocket books." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Profilis skirtas Hanlin V3 ir jo klonams." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Profilis skirtas Hanlin V5 ir jo klonams." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:523 msgid "This profile is intended for the Cybook G3." msgstr "Profilis skirtas Cybook G3." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 msgid "This profile is intended for the Cybook Opus." msgstr "Profilis skirtas Cybook Opus." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:547 msgid "This profile is intended for the Amazon Kindle." msgstr "Profilis skirtas Amazon Kindle." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:584 msgid "This profile is intended for the Irex Illiad." msgstr "Profilis skirtas Irex Illiad." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Profilis skirtas IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:611 +msgid "This profile is intended for the IRex Digital Reader 800." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:625 msgid "This profile is intended for the B&N Nook." msgstr "Profilis skirtas B&N Nook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:228 msgid "Output profile" msgstr "Išėinanti profilis" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:232 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 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:259 +msgid "" +"Intended for the iPad and similar devices with a resolution of 768x1024" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +msgid "This profile is intended for the Kobo Reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440 msgid "This profile is intended for the SONY PRS-300." msgstr "Profilis skirtas SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:458 msgid "This profile is intended for the 5-inch JetBook." msgstr "Profilis skirtas 5-coliu JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -356,35 +376,39 @@ msgstr "" "Profilis skirtas SONY PRS produktams. 500/505/700 ir t.t., landÅ¡afto režime. " "Labai naudingas komiksams." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:566 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Profilis skirtas Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Installed plugins" msgstr "IdiÄ—gti įskiepiai" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Mapping for filetype plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 msgid "Local plugin customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 msgid "Disabled plugins" msgstr "IÅ¡jungti įskiepiai" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:37 +msgid "Enabled plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:85 msgid "No valid plugin found in " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:265 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:478 msgid "Initialization of plugin %s failed with traceback:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:420 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 msgid "" " %prog options\n" "\n" @@ -396,29 +420,29 @@ msgstr "" " Tinkinti calibre užkraunant iÅ¡orinius įskiepus.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:519 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:521 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:523 msgid "List all installed plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:525 msgid "Enable the named plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:527 msgid "Disable the named plugin" msgstr "" @@ -426,12 +450,81 @@ msgstr "" msgid "Communicate with Android phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:48 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/android/driver.py:90 +msgid "Communicate with S60 phones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:87 +msgid "Communicate with iTunes/iBooks." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:93 +msgid "Apple device detected, launching iTunes, please wait ..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:246 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:249 +msgid "Updating device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:323 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:362 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:921 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:957 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2802 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2841 +msgid "%d of %d" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:369 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:962 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2847 +msgid "finished" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:544 +msgid "Use Series as Category in iTunes/iBooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:546 +msgid "Cache covers from iTunes/iBooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:558 +msgid "" +"Some books not found in iTunes database.\n" +"Delete using the iBooks app.\n" +"Click 'Show Details' for a list." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:886 +msgid "" +"Some cover art could not be converted.\n" +"Click 'Show Details' for a list." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2471 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:851 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1530 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 +msgid "News" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2709 +msgid "Communicate with iTunes." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 msgid "Communicate with the Binatone Readme eBook reader." msgstr "" @@ -454,27 +547,75 @@ msgstr "" msgid "Communicate with the EB600 eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:193 +msgid "Communicate with the Astak Mentor EB600" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:216 +msgid "Communicate with the PocketBook 301 reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 +msgid "Entourage Edge" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:18 +msgid "Communicate with the Entourage Edge." +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/eslick/driver.py:49 +msgid "Communicate with the Sigmatek eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:16 +#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:30 +msgid "Use an arbitrary folder as a device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:14 +msgid "Device Interface" +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 +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:87 msgid "Communicate with Hanlin V5 eBook readers." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:106 msgid "Communicate with the BOOX eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:123 +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/hanvon/driver.py:18 msgid "Communicate with the Hanvon N520 eBook reader." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:40 +msgid "Communicate with The Book reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:52 +msgid "Communicate with the SpringDesign Alex eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:68 +msgid "Communicate with the Azbooka" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:81 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "" @@ -484,14 +625,10 @@ 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 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:42 msgid "John Schember" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 -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 "" @@ -508,18 +645,87 @@ msgstr "" msgid "Communicate with the JetBook eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:21 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:86 +msgid "Communicate with the MiBuk Wolder reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:42 msgid "Communicate with the Kindle eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:134 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:169 msgid "Communicate with the Kindle 2 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:144 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:210 msgid "Communicate with the Kindle DX eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:22 +msgid "Communicate with the Kobo Reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:56 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:59 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:161 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:136 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +msgid "Getting list of books on device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:221 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:265 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:253 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 +msgid "Removing books from device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:269 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:278 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:283 +msgid "Removing books from device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:281 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:247 +msgid "Adding books to device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:441 +msgid "Not Implemented" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:367 +msgid "" +"\".kobo\" files do not exist on the device as books instead, they are rows " +"in the sqlite database. Currently they cannot be exported or viewed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:17 +msgid "Communicate with the Palm Pre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:37 +msgid "Communicate with the Booq Avant" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:58 +msgid "Communicate with the Sweex MM300" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:78 +msgid "Communicate with the Pandigital Novel" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "" @@ -528,6 +734,10 @@ msgstr "" msgid "Communicate with the Nokia 810 internet tablet." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:74 +msgid "Communicate with the Nokia E52" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 msgid "The Nook" msgstr "" @@ -544,324 +754,301 @@ msgstr "" 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..." +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:22 +msgid "Communicate with all the Sony eBook readers." 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 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:61 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..." +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 +msgid "Unnamed" 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:207 -#: /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:213 -msgid "Communicate with the Sony PRS-600/700/900 eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/sne/driver.py:17 +msgid "Communicate with the Samsung SNE eBook reader." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:11 msgid "Communicate with the Teclast K3 reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:251 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:37 +msgid "Communicate with the Newsmy reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:49 +msgid "Communicate with the iPapyrus reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:424 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:489 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500 msgid "Unable to detect the %s disk drive." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:582 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593 msgid "Could not find mount helper: %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:594 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605 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:602 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613 msgid "Unable to mount main memory (Error code: %d)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:739 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:741 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752 msgid "The reader has no storage card in this slot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:743 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754 msgid "Selected slot: %s is not supported." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:776 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783 msgid "There is insufficient free space in main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:778 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:780 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787 msgid "There is insufficient free space on the storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:810 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:835 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:234 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1112 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1116 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1503 -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 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:37 msgid "settings for device drivers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 msgid "Ordered list of formats the device will accept" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:32 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:41 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 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 msgid "Read metadata from files on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:45 +msgid "Use author sort instead of author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:47 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 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:84 msgid "Extra customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 msgid "Communicate with an eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:57 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..." +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:194 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:196 +msgid "Transferring books to device..." 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/chm/reader.py:40 -msgid "%prog [options] mybook.chm" +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:314 +msgid "Sending metadata to device..." msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:41 +msgid "%prog [options] mybook.chm" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:42 msgid "Output directory. Defaults to current directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:44 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:45 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 msgid "Set the book title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:46 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:47 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 msgid "Set sort key for the title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 msgid "Set the author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:50 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:51 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 msgid "Set sort key for the author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:52 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:53 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597 msgid "The category this book belongs to. E.g.: History" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:55 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:56 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600 msgid "Path to a graphic that will be set as this files' thumbnail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:58 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:59 msgid "Path to a txt file containing a comment." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:61 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:62 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 msgid "Extract thumbnail from LRF file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:63 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 msgid "Set the publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 msgid "Set the book classification" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 msgid "Set the book creator" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:65 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:66 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 msgid "Set the book producer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:67 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:68 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 msgid "" "Extract cover from LRF file. Note that the LRF format has no defined cover, " "so we use some heuristics to guess the cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:69 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:70 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 msgid "Set book ID" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:71 +#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:72 msgid "Set font delta" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:178 msgid "Rendered %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:181 msgid "Failed %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:235 msgid "" "Failed to process comic: \n" "\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:253 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:257 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:262 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:264 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:267 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:294 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:269 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:272 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 +msgid "Do not convert the image to grayscale (black and white)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:437 msgid "Page" msgstr "" @@ -938,18 +1125,18 @@ msgstr "" msgid "Output saved to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:94 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:95 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:101 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:102 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:110 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:111 msgid "" "Specify the input profile. The input profile gives the conversion system " "information on how to interpret various information in the input document. " @@ -957,7 +1144,7 @@ msgid "" "are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:121 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:122 msgid "" "Specify the output profile. The output profile tells the conversion system " "how to optimize the created document for the specified device. In some " @@ -965,7 +1152,7 @@ msgid "" "a device. For example EPUB on the SONY reader. Choices are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:132 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:133 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 " @@ -973,7 +1160,7 @@ msgid "" "chosen based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:142 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:143 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-" @@ -982,17 +1169,17 @@ msgid "" "use a mapping based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:154 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:155 msgid "Disable all rescaling of font sizes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:161 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:162 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:169 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:170 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 " @@ -1000,58 +1187,58 @@ msgid "" "tables and present it in a linear fashion." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:179 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:180 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:188 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:189 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:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:197 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:204 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:205 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:212 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:213 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:219 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:220 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:226 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:227 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:234 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:235 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:245 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:246 msgid "" "An XPath expression to detect chapter titles. The default is to consider " "

    or

    tags that contain the words \"chapter\",\"book\",\"section\" or " @@ -1061,7 +1248,7 @@ msgid "" "User Manual for further help on using this feature." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:260 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 " @@ -1069,112 +1256,114 @@ msgid "" "\"both\" will use both page breaks and lines to mark chapters." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:269 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:270 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:278 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:279 msgid "" "An XPath expression. Page breaks are inserted before the specified elements." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:284 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:285 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:289 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:290 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:294 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:295 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:299 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:300 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:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:306 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." +"Change text justification. A value of \"left\" converts all justified text " +"in the source to left aligned (i.e. unjustified) text. A value of " +"\"justify\" converts all unjustified text to justified. A value of " +"\"original\" (the default) does not change justification in the source file. " +"Note that only some output formats support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:311 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 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:318 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 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:325 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:330 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:331 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 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:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:343 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:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:351 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:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359 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:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 msgid "Use a regular expression to try and remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:369 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:374 msgid "The regular expression to use to remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:375 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 msgid "Use a regular expression to try and remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:382 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 msgid "The regular expression to use to remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:389 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 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:396 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1184,111 +1373,166 @@ msgid "" "number of people will be used (Chinese in the previous example)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:411 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:416 +msgid "" +"Preserve ligatures present in the input document. A ligature is a special " +"rendering of a pair of characters like ff, fi, fl et cetera. Most readers do " +"not have support for ligatures in their default fonts, so they are unlikely " +"to render correctly. By default, calibre will turn a ligature into the " +"corresponding pair of normal characters. This option will preserve them " +"instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:428 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 msgid "Set the title." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:415 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:432 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:420 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 msgid "The version of the title to be used for sorting. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:424 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:441 msgid "String to be used when sorting by author. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:428 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445 msgid "Set the cover to the specified file or URL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:432 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54 msgid "Set the ebook description." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:436 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56 msgid "Set the ebook publisher." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:440 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:457 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60 msgid "Set the series this ebook belongs to." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:444 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:461 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:448 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:465 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 msgid "Set the rating. Should be a number between 1 and 5." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:469 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66 msgid "Set the ISBN of the book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:456 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:473 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:68 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:460 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:477 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70 msgid "Set the book producer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:464 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:481 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72 msgid "Set the language." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:468 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:485 msgid "Set the publication date." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:472 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:489 msgid "Set the book timestamp (used by the date column in calibre)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:572 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:589 msgid "Could not find an ebook inside the archive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:630 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:647 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:637 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:654 msgid "Failed to parse date/time" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:781 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:809 msgid "Converting input to HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:808 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:836 msgid "Running transforms on ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:895 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:923 msgid "Creating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:58 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/__init__.py:18 +msgid "ePub Fixer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/epubcheck.py:18 +msgid "Workaround epubcheck bugs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/epubcheck.py:22 +msgid "" +"Workarounds for bugs in the latest release of epubcheck. epubcheck reports " +"many things as errors that are not actually errors. epub-fix will try to " +"detect these and replace them with constructs that epubcheck likes. This may " +"cause significant changes to your epub, complain to the epubcheck project." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:19 +msgid "" +"%prog [options] file.epub\n" +"\n" +"Fix common problems in EPUB files that can cause them to be rejected by " +"poorly designed publishing services.\n" +"\n" +"By default, no fixing is done and messages are printed out for each error " +"detected. Use the options to control which errors are automatically fixed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:50 +msgid "You must specify an epub file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:17 +msgid "Fix unmanifested files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:21 +msgid "" +"Fix unmanifested files. epub-fix can either add them to the manifest or " +"delete them as specified by the delete unmanifested option." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:32 +msgid "Delete unmanifested files instead of adding them to the manifest" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:56 msgid "" "Extract the contents of the generated EPUB file to the specified directory. " "The contents of the directory are first deleted, so be careful." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:62 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 " @@ -1297,22 +1541,42 @@ msgid "" "turn off splitting on page breaks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:75 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:73 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:82 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:80 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/epub/output.py:86 +msgid "" +"Do not use SVG for the book cover. Use this option if your EPUB is going to " +"be used on a device that does not support SVG, like the iPhone or the " +"JetBook Lite. Without this option, such devices will display the cover as a " +"blank page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:94 +msgid "" +"When using an SVG cover, this option will cause the cover to scale to cover " +"the available screen area, but still preserve its aspect ratio (ratio of " +"width to height). That means there may be white borders at the sides or top " +"and bottom of the image, but the image will never be distorted. Without this " +"option the image may be slightly distorted, but there will be no borders." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:169 +msgid "Start" +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:" @@ -1330,20 +1594,20 @@ msgstr "" msgid "Add Table of Contents to beginning of the book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:243 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:248 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:255 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:264 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 " @@ -1351,7 +1615,7 @@ msgid "" "pipeline." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:267 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:272 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." @@ -1484,7 +1748,7 @@ 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:114 msgid "Verbose processing" msgstr "" @@ -1566,87 +1830,94 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:409 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1149 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:550 msgid "Title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:364 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:414 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1150 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:888 msgid "Author(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:365 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:366 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 #: /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:367 -#: /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/ebooks/metadata/__init__.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1079 msgid "Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1094 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1153 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:143 msgid "Tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:91 msgid "Series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:378 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:412 msgid "Language" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:380 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1093 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:382 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:66 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:416 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 msgid "Published" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:384 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:418 msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:76 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:85 msgid "EDITORIAL REVIEW" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:41 msgid "" "Extract common e-book formats from archives (zip/rar) files. Also try to " "autodetect if they are actually cbz/cbr files." @@ -1745,45 +2016,87 @@ msgstr "" msgid "No cover found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:27 +msgid "Cover download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:79 +msgid "Download covers from openlibrary.org" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:136 +msgid "ISBN: %s not found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:117 +msgid "Download covers from librarything.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 +msgid "LibraryThing.com timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:135 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 +msgid "LibraryThing.com server error. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 +msgid "Downloads metadata from Douban.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:50 msgid "Metadata download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 msgid "description/reviews" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 msgid "Download %s from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:155 msgid "Downloads metadata from Google Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:153 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:172 msgid "Downloads metadata from isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:200 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:210 msgid "Downloads social metadata from amazon.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:229 +msgid "Downloads series/tags/rating information from librarything.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:95 msgid "" "\n" "%prog [options] key\n" @@ -1797,50 +2110,37 @@ msgid "" "\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:105 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:106 msgid "The ISBN ID of the book you want metadata for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:108 msgid "The author whose book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:110 msgid "The title of the book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:112 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:76 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 msgid "" "\n" "%prog [options] ISBN\n" "\n" -"Fetch a cover image for the book identified by ISBN from LibraryThing.com\n" +"Fetch a cover image/social metadata 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:1347 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1226 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 msgid "Cover" msgstr "" @@ -1867,78 +2167,86 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:40 +msgid "Tag marking book to be filed with Personal Docs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:108 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +msgid "This is an Amazon Topaz book. It cannot be processed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1353 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1354 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1355 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1356 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1357 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1358 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1359 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1360 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1361 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1362 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1363 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Main Text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:41 msgid "%s format books are not supported" msgstr "" @@ -1946,7 +2254,7 @@ msgstr "" msgid "HTML TOC generation options." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:113 msgid "Book Jacket" msgstr "" @@ -1955,10 +2263,6 @@ 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 "" @@ -1972,17 +2276,17 @@ 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 msgid "Footnotes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:133 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" "Normally calibre treats blank lines as paragraph markers. With this option " "it will assume that every line represents a paragraph instead." @@ -1990,7 +2294,7 @@ 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 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+ " @@ -2119,6 +2423,8 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author" msgstr "" @@ -2218,6 +2524,12 @@ msgstr "" msgid "The orientation of the page. Default is portrait. Choices are %s" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:49 +msgid "" +"Preserve the aspect ratio of the cover, instead of stretching it to fill the " +"ull first page of the generated pdf." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 msgid "Could not find pdftohtml, check it is in your PATH" msgstr "" @@ -2227,7 +2539,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:199 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:194 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -2246,13 +2558,19 @@ msgid "" "slowest." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:34 +msgid "" +"Normally extra spaces are condensed into a single space. With this option " +"all spaces will be displayed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:37 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:40 msgid "Do not insert a Table of Contents into the output text." msgstr "" @@ -2283,195 +2601,792 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 -msgid "Toolbar icon size" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 -msgid "Show button labels in the toolbar" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /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:43 +#: /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:45 -msgid "Sort tags list by popularity" +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +msgid "Sort tags list by name, popularity, or rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /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:49 +#: /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:51 +#: /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:54 +#: /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:56 +#: /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:57 +#: /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:58 +#: /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:59 +#: /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:61 +#: /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:63 +#: /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:65 +#: /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:67 +#: /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:69 +#: /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:91 +#: /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:93 +#: /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:95 +#: /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:97 +#: /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:135 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:97 +msgid "tag browser categories not to display" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:99 +msgid "The layout of the user interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:101 +msgid "Show the average rating per item indication in the tag browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:103 +msgid "Disable UI animations" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:185 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:185 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:397 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:52 -msgid "Searching in" +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:245 +msgid "Use library only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:173 -msgid "Adding..." +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:246 +msgid "User annotations generated from main library only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:186 -msgid "Searching in all sub-directories..." +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:623 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:682 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:719 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1116 +msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 -msgid "Path error" +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:76 +msgid "No books selected to fetch annotations from" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:200 -msgid "The specified directory could not be processed." +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:101 +msgid "Merging user annotations into database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:204 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 -msgid "No books" +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:129 +msgid "%s
    Last Page Read: %d (%d%%)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:205 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1589 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:135 +msgid "%s
    Last Page Read: Location %d (%d%%)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:154 +msgid "Location %d • %s
    %s
    " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:163 +msgid "Page %d • %s
    " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:168 +msgid "Location %d • %s
    " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:291 +msgid "How many empty books?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:292 +msgid "How many empty books should be added?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:390 +msgid "Uploading books to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 +msgid "Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:351 +msgid "EPUB Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:352 +msgid "LRF Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:353 +msgid "HTML Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:354 +msgid "LIT Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:355 +msgid "MOBI Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:356 +msgid "Topaz books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:357 +msgid "Text books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:358 +msgid "PDF Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:359 +msgid "Comics" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:360 +msgid "Archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:364 +msgid "Supported books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:399 +msgid "Merged some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:400 +msgid "" +"Some duplicates were found and merged into the following existing books:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:409 +msgid "Failed to read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:410 +msgid "Failed to read metadata from the following" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 +msgid "Add to library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1285 +msgid "No book selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:442 +msgid "" +"The following books are virtual and cannot be added to the calibre library:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 +msgid "No book files found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:470 +msgid "Cannot delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:483 +msgid "Choose formats to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:501 +msgid "Choose formats not to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:521 +msgid "Cannot delete books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:522 +msgid "No device is connected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:532 +msgid "Main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:439 +msgid "Storage Card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +msgid "Storage Card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:539 +msgid "No books to delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:540 +msgid "None of the selected books are on the device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:612 +msgid "Deleting books from device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:578 +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/actions.py:597 +msgid "" +"The selected books will be permanently deleted from your device. Are " +"you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:622 +msgid "Cannot download metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:638 +msgid "social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 +msgid "covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 +msgid "metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:642 +msgid "Downloading %s for %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:666 +msgid "Failed to download some metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:667 +msgid "Failed to download metadata for the following:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 +msgid "Failed to download metadata:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:962 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +msgid "Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:681 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:718 +msgid "Cannot edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:742 +msgid "Cannot merge books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:743 +msgid "At least two books must be selected for merging" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:747 +msgid "" +"All book formats and metadata from the selected books will be added to the " +"first selected book.

    The second and subsequently selected " +"books will not be deleted or changed.

    Please confirm you want to " +"proceed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 +msgid "" +"All book formats and metadata from the selected books will be merged into " +"the first selected book.

    After merger the second and " +"subsequently selected books will be deleted.

    All book formats " +"of the first selected book will be kept and any duplicate formats in the " +"second and subsequently selected books will be permanently deleted " +"from your computer.

    Are you sure you want to proceed?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:770 +msgid "" +"You are about to merge more than 5 books. Are you sure you want to " +"proceed?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:924 +msgid "Cannot save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:927 +msgid "Choose destination directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:566 +msgid "Not allowed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:934 +msgid "" +"You are tying to save files into the calibre library. This can cause " +"corruption of your library. Save to disk is meant to export files from your " +"calibre library elsewhere." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:968 +msgid "Error while saving" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:969 +msgid "There was an error while saving." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:976 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:977 +msgid "Could not save some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 +msgid "Click the show details button to see which ones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:999 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1016 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1021 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1022 +msgid "" +"No books to catalog\n" +"Check exclude tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1032 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1035 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1036 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1052 +msgid "Fetching news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1066 +msgid " fetched." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1115 +msgid "Cannot convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1144 +msgid "Starting conversion of %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1321 +msgid "Cannot view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1266 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 +msgid "Choose the format to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1274 +msgid "Multiple Books Selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1275 +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/actions.py:1284 +msgid "Cannot open folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1322 +msgid "%s has no available formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +msgid "Searching in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:232 +msgid "Adding..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245 +msgid "Searching in all sub-directories..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258 +msgid "Path error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259 +msgid "The specified directory could not be processed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:804 +msgid "No books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:330 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:343 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:344 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 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:357 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 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:360 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:427 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:480 msgid "Saved" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 -msgid "CSV/XML Options" +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:57 +msgid "Searching for sub-folders" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:62 +msgid "Searching for books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:74 +msgid "Looking for duplicates based on file hash" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:65 +msgid "Choose root folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:137 +msgid "Invalid root folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:138 +msgid "is not a valid root folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:148 +msgid "Add books to calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 +msgid "WizardPage" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:22 +msgid "Scanning root folder for books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:23 +msgid "This may take a few minutes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:58 +msgid "Choose the location to add books from" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:59 +msgid "Select a folder on your hard disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:60 +msgid "" +"

    calibre can scan your computer for existing books automatically. These " +"books will then be copied into the calibre library. This wizard will " +"help you customize the scanning and import process for your existing book " +"collection.

    \n" +"

    Choose a root folder. Books will be searched for only inside this folder " +"and any sub-folders.

    \n" +"

    Make sure that the folder you chose for your calibre library is " +"not under the root folder you choose.

    " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:63 +msgid "&Root folder:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:64 +msgid "" +"This folder and its sub-folders will be scanned for books to import into " +"calibre's library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:66 +#: /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:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 +#: /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:552 +#: /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:566 +#: /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:570 +#: /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:614 +#: /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:370 +#: /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:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:166 +#: /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/tag_list_editor_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 +#: /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/shortcuts_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +msgid "..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:67 +msgid "Handle multiple files per book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:68 +msgid "" +"&One book per folder, assumes every ebook file in a folder is the same book " +"in a different format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:69 +msgid "" +"&Multiple books per folder, assumes every ebook file is a different book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:311 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1065 +msgid "Path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:100 +msgid "Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:891 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1068 +msgid "Collections" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 +msgid "Click to open" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:305 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:311 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:317 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1074 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1078 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:274 +msgid "None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:310 +msgid "Click to open Book Details window" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:16 +msgid "BibTeX Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 #: /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 @@ -2490,6 +3405,7 @@ msgstr "" msgid "Options specific to" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 #: /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 @@ -2503,31 +3419,32 @@ msgstr "" 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_bibtex_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 #: /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/comic_input_ui.py:88 #: /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/epub_output_ui.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 #: /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:114 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 #: /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_input_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 #: /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/device_drivers/configwidget_ui.py:77 #: /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 @@ -2535,38 +3452,106 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 +msgid "Bib file encoding:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 msgid "Fields to include in output:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 +msgid "ascii/LaTeX" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 +msgid "Encoding configuration (change if you have errors) :" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 +msgid "strict" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 +msgid "replace" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 +msgid "ignore" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 +msgid "backslashreplace" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 +msgid "BibTeX entry type:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 +msgid "mixed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 +msgid "misc" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 +msgid "book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 +msgid "Create a citation tag?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 +msgid "Expression to form the BibTeX citation tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 +msgid "" +"Some explanation about this template:\n" +" -The fields availables are 'author_sort', 'authors', 'id',\n" +" 'isbn', 'pubdate', 'publisher', 'series_index', 'series',\n" +" 'tags', 'timestamp', 'title', 'uuid'\n" +" -For list types ie authors and tags, only the first element\n" +" wil be selected.\n" +" -For time field, only the date will be used. " +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_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:282 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1466 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1484 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:550 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1493 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1511 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 msgid "Additional note tag prefix:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 msgid "" "Regex tips:\n" "- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " @@ -2575,15 +3560,15 @@ msgid "" "Genre Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 msgid "Include 'Titles' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 msgid "Include 'Recently Added' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 msgid "Sort numbers as text" msgstr "" @@ -2619,65 +3604,69 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /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/convert/comic_input_ui.py:90 #: /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/convert/comic_input_ui.py:91 #: /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/convert/comic_input_ui.py:92 #: /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/convert/comic_input_ui.py:93 #: /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/convert/comic_input_ui.py:94 #: /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/convert/comic_input_ui.py:95 #: /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/convert/comic_input_ui.py:96 #: /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/convert/comic_input_ui.py:97 #: /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/convert/comic_input_ui.py:98 #: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99 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/comic_input_ui.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 msgid "&Output format:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101 +msgid "Disable conversion of images to &black and white" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "" @@ -2707,43 +3696,6 @@ msgid "" "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 " @@ -2755,22 +3707,30 @@ msgstr "" msgid "EPUB Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:49 msgid "Do not &split on page breaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:50 +msgid "No default &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:51 +msgid "No &SVG cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:52 +msgid "Preserve cover &aspect ratio" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 msgid "Split files &larger than:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54 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 "" @@ -2820,22 +3780,22 @@ 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 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/look_and_feel_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py: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: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 +#: /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:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:127 msgid " pt" msgstr "" @@ -2867,51 +3827,59 @@ msgstr "" 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" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:30 +msgid "Original" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:31 +msgid "Left align" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:32 +msgid "Justify text" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +msgid "&Disable font size rescaling" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 msgid "Base &font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 msgid "Line &height:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 msgid "Input character &encoding:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Remove &spacing between paragraphs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 msgid "Indent size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 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" +msgid "Text justification:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 @@ -2919,11 +3887,19 @@ msgid "&Linearize tables" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 -msgid "&Transliterate unicode characters to ASCII." +msgid "Extra &CSS" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 -msgid "Extra &CSS" +msgid "&Transliterate unicode characters to ASCII" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 +msgid "Insert &blank line" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 +msgid "Keep &ligatures" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 @@ -2980,7 +3956,7 @@ 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 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 msgid "Metadata" msgstr "" @@ -2990,118 +3966,118 @@ msgid "" "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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:111 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:119 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:127 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 msgid "Book Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 +#: /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:366 msgid "&Author(s): " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 msgid "Author So&rt:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 +#: /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 "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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid "Book " msgstr "" @@ -3113,67 +4089,71 @@ msgstr "" msgid "Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:67 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:68 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:69 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:70 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:71 msgid "Do not add Table of Contents to book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:72 msgid "Kindle options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:64 -msgid "Masthead font:" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:73 +msgid "Periodical masthead font:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:74 +msgid "Personal Doc tag:" 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:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:116 msgid "&Output profile:" msgstr "" -#: /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:117 msgid "Profile description" 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:118 msgid "&Input profile:" msgstr "" -#: /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:119 msgid "Margins" 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:120 msgid "&Left:" 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:122 msgid "&Top:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:124 msgid "&Right:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:126 msgid "&Bottom:" msgstr "" @@ -3182,12 +4162,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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:47 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:48 msgid "Assume print formatting" msgstr "" @@ -3215,51 +4195,51 @@ msgstr "" msgid "PDF Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:43 msgid "&Paper Size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:44 msgid "&Orientation:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:45 +msgid "Preserve &aspect ratio of cover" +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:1834 -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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:84 +msgid "Cannot build regex using the GUI builder without a book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:103 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:52 msgid "Regex Builder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:53 msgid "Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:54 msgid "Regex:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +msgid "Test" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 msgid "Convert" msgstr "" @@ -3311,12 +4291,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:71 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:76 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 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:77 msgid "Invalid regular expression: %s" msgstr "" @@ -3330,27 +4310,27 @@ msgstr "" msgid "The XPath expression %s is invalid." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 msgid "Chapter &mark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 msgid "Remove first &image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 msgid "Insert &metadata as page at start of book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 msgid "&Preprocess input file to possibly improve structure detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 msgid "Remove F&ooter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:66 msgid "Remove H&eader" msgstr "" @@ -3400,21 +4380,25 @@ msgstr "" msgid "TXT Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:49 msgid "Process using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:50 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51 msgid "Do not insert Table of Contents into output text when using markdown" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:52 +msgid "Preserve &spaces" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" msgstr "" @@ -3431,7 +4415,7 @@ msgstr "" 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/convert/xexp_edit_ui.py:51 #: /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 @@ -3442,7 +4426,7 @@ msgstr "" msgid "TextLabel" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 msgid "Use a wizard to help construct the XPath expression" msgstr "" @@ -3520,247 +4504,323 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:127 +msgid "Cover browser could not be loaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:179 +msgid "Browse by covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:238 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:242 +msgid "Undefined" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:133 +msgid "Yes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:134 +msgid "No" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:116 +msgid "star(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:117 +msgid "Unrated" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:150 +msgid "Set '%s' to today" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:260 +msgid " index:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 +msgid "Automatically number books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:486 +msgid "Remove all tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:507 +msgid "tags to add" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:512 +msgid "tags to remove" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:49 #: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:162 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:278 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:289 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:229 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:299 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:238 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:308 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:313 +msgid "Send collections to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:369 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:379 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:296 -msgid "and delete from library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:413 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:324 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:331 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:333 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:335 -msgid "Email to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:346 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:419 msgid "Send to main memory" 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:421 msgid "Send to storage card A" msgstr "" -#: /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:423 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:360 -msgid "Send specific format to main memory" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:437 +msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 -msgid "Send specific format to storage card A" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:448 +msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:364 -msgid "Send specific format to storage card B" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:449 +msgid "Send specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:485 +msgid "Eject device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 msgid "Fetch annotations (experimental)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:603 +msgid "Error communicating with device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:625 +msgid "Select folder to open as device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +msgid "Failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:675 +msgid "Error talking to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 +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/device.py:718 +msgid "Device: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 +msgid " detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:584 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:887 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:628 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:635 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:787 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:903 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:910 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:917 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1019 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1081 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:629 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:654 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:944 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:655 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:659 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:949 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:686 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:698 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:788 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:904 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:757 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:818 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1167 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1209 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:959 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1271 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:960 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1272 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 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 msgid "Select available formats and their order for this device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:82 msgid "Use sub directories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:83 +msgid "Use author sort for author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:85 msgid "Save &template:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 -#: /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/library.py:366 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1091 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 -msgid "Path" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 -#: /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:116 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 -#: /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 "" @@ -3778,7 +4838,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:289 msgid "Generate catalog" msgstr "" @@ -3807,11 +4867,71 @@ msgstr "" msgid "Choose Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:38 +msgid "Choose location for calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:45 +msgid "Same as current" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:46 +msgid "The location %s contains the current calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:51 +msgid "No existing library found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:52 +msgid "There is no existing calibre library at %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:56 +msgid "Not empty" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:57 +msgid "The folder %s is not empty. Please choose an empty folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 +msgid "Choose your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:67 +msgid "Your calibre library is currently located at {0}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:68 +msgid "New &Location:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:69 +msgid "Use &existing library at the new location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:70 +msgid "&Create an empty library at the new location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:71 +msgid "&Move current library to new location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33 msgid "Set defaults for conversion of comics (CBR/CBZ files)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 msgid "Set options for converting %s" msgstr "" @@ -3827,199 +4947,251 @@ msgstr "" msgid "&Profile:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:41 +msgid "Edit Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:174 msgid "%(plugin_type)s %(plugins)s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:175 msgid "plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:184 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:199 msgid "General" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:200 msgid "Interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 -msgid "Add/Save" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:201 +msgid "Conversion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:202 msgid "" "Email\n" "Delivery" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:203 +msgid "Add/Save" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:204 msgid "Advanced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:205 msgid "" "Content\n" "Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:206 msgid "Plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 msgid "Auto send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 msgid "Email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:235 msgid "Formats to email. The first matching format will be sent." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:236 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:310 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:160 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1434 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 -msgid "Error" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:492 +msgid "Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:493 +msgid "Narrow" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:502 +msgid "Medium" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:502 +msgid "Small" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:503 +msgid "Large" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 +msgid "Always" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 +msgid "Automatic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:510 +msgid "Never" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524 +msgid "Done" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525 +msgid "Confirmation dialogs have all been reset" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:530 +msgid "System port selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:531 +msgid "" +"The value %d you have chosen for the content server port is a system " +"port. Your operating system may not allow the server to run on this " +"port. To be safe choose a port number larger than 1024." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:554 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:555 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:556 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:611 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:623 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:634 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:680 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:681 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:712 +msgid "You must select a column to delete it" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:717 +msgid "The selected column is not a custom column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:718 +#: /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/config/__init__.py:719 +msgid "Do you really want to delete column %s and all its data?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:786 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:793 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:665 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:318 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:846 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:847 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" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:908 +msgid "Must restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 -msgid "Invalid database location " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:909 +msgid "" +"The changes you made require that Calibre be restarted. Please restart as " +"soon as practical." 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:943 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:963 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:968 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:969 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 " @@ -4027,345 +5199,412 @@ msgid "" "folder directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:133 msgid "TabWidget" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:134 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:135 msgid "Read metadata only from &file name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:136 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:137 msgid "&Swap author firstname and lastname" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:138 +msgid "" +"If an existing book with a similar title and author is found that does not " +"have the format being added, the format is added\n" +"to the existing book, instead of creating a new entry. If the existing book " +"already has the format, then it is silently ignored.\n" +"\n" +"Title match ignores leading indefinite articles (\"the\", \"a\", \"an\"), " +"punctuation, case, etc. Author match is exact." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:142 +msgid "" +"If books with similar titles and authors found, &merge the new files " +"automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:143 msgid "&Configure metadata from file name" 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:144 msgid "&Adding books" 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:145 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:146 msgid "Save &cover separately" 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:147 msgid "Update &metadata in saved copies" 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:148 msgid "Save metadata in &OPF file" 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:149 msgid "Convert non-English characters to &English equivalents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:150 msgid "Format &dates as:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:151 msgid "File &formats to save:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:152 msgid "Replace space with &underscores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:153 msgid "Change paths to &lowercase" 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:154 msgid "&Saving books" 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:155 +msgid "Metadata &management:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:156 +msgid "Manual management" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:157 +msgid "Only on send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:158 +msgid "Automatic management" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:159 +msgid "" +"

  • Manual Management: Calibre updates the metadata and adds " +"collections only when a book is sent. With this option, calibre will never " +"remove a collection.
  • \n" +"
  • Only on send: Calibre updates metadata and adds/removes " +"collections for a book only when it is sent to the device.
  • \n" +"
  • Automatic management: Calibre automatically keeps metadata on the " +"device in sync with the calibre library, on every connect
  • " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:162 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:163 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:616 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Show notification when &new version is available" 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:538 msgid "Download &social metadata (tags/ratings/etc.) by default" 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:539 msgid "&Overwrite author and title by default when fetching metadata" 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:540 msgid "Default network &timeout:" 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:541 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid " seconds" 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:543 msgid "Choose &language (requires 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:544 msgid "Normal" 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:545 msgid "High" 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:546 msgid "Low" 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:547 msgid "Job &priority:" 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:548 msgid "Preferred &output format:" 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:549 +msgid "Reset all disabled &confirmation dialogs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Preferred &input format order:" 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:553 msgid "Use &Roman numerals for series number" 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:554 msgid "Enable system &tray icon (needs restart)" 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:555 msgid "Show ¬ifications in system tray" 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:556 +msgid "Show &splash screen at startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "Show cover &browser in a separate window (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:558 +msgid "Show &average ratings in the tags browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 msgid "Search as you type" 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:560 msgid "Automatically send downloaded &news to ebook reader" 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:561 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "Select visible &columns in library view" 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:565 +msgid "Remove a user-defined column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +msgid "Add a user-defined column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +msgid "Edit settings of a user-defined column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Use internal &viewer for:" 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:573 +msgid "User Interface &layout (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +msgid "Disable all animations. Useful if you have a slow/old computer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 +msgid "Disable &animations" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 +msgid "Show &donate button (restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 +msgid "&Toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 +msgid "&Icon size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 +msgid "Show &text under icons:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 msgid "Add an email address to which to send books" 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:581 msgid "&Add email" 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:582 msgid "Make &default" 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:583 msgid "&Remove email" 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:584 msgid "" "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." 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:585 msgid "&Maximum number of waiting worker processes (needs restart):" 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:586 msgid "&Check database integrity" 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:587 msgid "&Install command line tools" 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:588 msgid "Open calibre &configuration directory" 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:589 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 msgid "Debug &device detection" 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:591 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 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/config/config_ui.py:593 #: /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/dialogs/scheduler_ui.py:212 #: /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/config/config_ui.py:594 #: /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/dialogs/scheduler_ui.py:213 #: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 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/config/config_ui.py:598 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" 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:599 msgid "Max. &OPDS items per query:" 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:600 +msgid "Max. OPDS &ungrouped items:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 msgid "&Start Server" 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:602 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "&Test Server" 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:604 msgid "Run server &automatically on startup" 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:605 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/dialogs/config/config_ui.py:606 #: /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 " @@ -4376,36 +5615,215 @@ msgid "" "the IP address of the computer calibre is running on." 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:608 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "Enable/&Disable plugin" msgstr "" -#: /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:610 msgid "&Customize plugin" 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:611 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "&Add" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:125 +msgid "Create Tag-based Column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:126 +msgid "Lookup name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:127 +msgid "Column heading" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:128 +msgid "Column type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:129 +msgid "Use brackets" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:130 +msgid "Values can be edited" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:135 +msgid "Text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:136 +msgid "Number" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 +msgid "Date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:138 +msgid "Tag on book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:139 +msgid "Explanation text added in create_ct_column.py" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:140 +msgid "Create and edit tag-based columns" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:19 +msgid "Text, column shown in the tag browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:22 +msgid "Comma separated text, like tags, shown in the tag browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:25 +msgid "Long text, like comments, not shown in the tag browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:28 +msgid "Text column for keeping series-like information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:33 +msgid "Floating point numbers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:35 +msgid "Integers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:37 +msgid "Ratings, shown with stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:40 +msgid "Yes/No" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 +msgid "No column selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:70 +msgid "No column has been selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:74 +msgid "Selected column is not a user-defined column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:105 +msgid "No lookup name was provided" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:107 +msgid "" +"The label must contain only letters, digits and underscores, and start with " +"a letter" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:116 +msgid "No column heading was provided" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:122 +msgid "The lookup name %s is already used" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:132 +msgid "The heading %s is already used" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:134 +msgid "" +"The lookup name must be lower case and cannot contain \":\"s or spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:117 +msgid "Create or edit custom columns" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:102 +msgid "&Lookup name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:103 +msgid "Column &heading" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:104 +msgid "" +"Used for searching the column. Must contain only digits and lower case " +"letters." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:105 +msgid "" +"Column heading in the library view and category name in the tag browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:106 +msgid "Column &type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:107 +msgid "What kind of information will be kept in the column." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:108 +msgid "" +"

    Date format. Use 1-4 'd's for day, 1-4 'M's for month, and 2 or 4 'y's " +"for year.

    \n" +"

    For example:\n" +"

      \n" +"
    • ddd, d MMM yyyy gives Mon, 5 Jan 2010
    • \n" +"
    • dd MMMM yy gives 05 January 10
    • \n" +"
    " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:114 +msgid "Use MMM yyyy for month + year, yyyy for year only" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:115 +msgid "Default: dd MMM yyyy." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:116 +msgid "Format for &dates" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 msgid "Getting debug information" msgstr "" @@ -4447,60 +5865,83 @@ msgstr "" 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:42 msgid "ERROR" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:67 +msgid "" +"All checked books will be permanently deleted from your device. " +"Please verify the list." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +msgid "Location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1064 +msgid "Format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 +msgid "Delete from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 +msgid "Author sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:47 +msgid "Manage authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60 msgid "Author Sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:62 msgid "ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:176 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:186 msgid "Warning" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:187 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:191 msgid "No metadata found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:192 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." 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:85 msgid "Fetch metadata" 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:86 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 " @@ -4508,28 +5949,28 @@ msgid "" "below." 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:87 msgid "&Access Key:" 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:88 msgid "Fetch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "Matches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:92 msgid "Overwrite author and title with author and title of selected book" msgstr "" @@ -4550,269 +5991,331 @@ msgid "Show job &details" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 -msgid "Stop &all jobs" +msgid "Stop &all non device jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:24 +msgid "Editing meta information for %d books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "A&utomatically set author sort" 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:160 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 +#: /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 msgid "Rating of this book. 0-5 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:165 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid " stars" msgstr "" -#: /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:168 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 +#: /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 "Open Tag Editor" msgstr "" -#: /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:172 msgid "&Remove tags:" msgstr "" -#: /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:173 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:177 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 +msgid "" +"Selected books will be automatically numbered,\n" +"in the order you selected them.\n" +"So if you selected Book A and then Book B,\n" +"Book A will have series number 1 and Book B series number 2." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 +msgid "" +"Remove stored conversion settings for the selected books.\n" +"\n" +"Future conversion of these books will use the default settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:187 +msgid "Remove &stored conversion settings for the selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 +msgid "&Basic metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 +msgid "&Custom metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:94 +msgid "Last modified: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:135 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:150 +msgid "Specify title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 +msgid "You must specify a title and author before generating a cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 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:1188 -msgid "Books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:223 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:234 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:235 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:284 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:327 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:406 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:470 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:473 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:552 +msgid "Cannot use tag editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 +msgid "The tags editor cannot be used if you have modified the tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "Downloading 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:527 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:601 msgid "Cannot fetch 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:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:602 msgid "Could not 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:587 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:591 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:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:603 +msgid "" +"For the error message from each cover source, click Show details below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:610 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:644 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:601 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:674 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 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:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:750 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:751 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Edit Meta Information" msgstr "" -#: /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 +msgid "Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 msgid "Swap the author and title" msgstr "" -#: /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:367 msgid "Author S&ort: " msgstr "" -#: /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:369 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "Remove unused series (Series that have no books)" 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:385 msgid "IS&BN:" msgstr "" -#: /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:386 msgid "Publishe&d:" 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:389 msgid "dd MMM yyyy" 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:390 msgid "&Date:" 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:391 msgid "&Comments" 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:392 msgid "&Fetch metadata from server" 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:393 msgid "Available Formats" msgstr "" -#: /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:394 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Download &cover" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +msgid "Generate a default cover based on the title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "&Generate cover" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 msgid "Password needed" msgstr "" @@ -4821,148 +6324,193 @@ msgstr "" msgid "Aborting..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:119 -msgid "Need username and password" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:54 +msgid "" +"The current saved search will be permanently deleted. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:83 +msgid "Saved Search Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:84 +msgid "Saved Search: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:85 +msgid "Select a saved search to edit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:86 +msgid "Delete this selected saved search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 +msgid "Enter a new saved search name." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 +msgid "Add the new saved search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 +msgid "Change the contents of the saved search" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:120 +msgid "Need username and password" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:121 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:171 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:172 msgid "Created by: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179 msgid "Last downloaded: never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:194 msgid "%d days, %d hours and %d minutes ago" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:196 msgid "Last downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:215 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:192 msgid "Schedule news download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:223 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/scheduler.py:228 +msgid "Download all scheduled new sources" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:328 +msgid "No internet connection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:329 +msgid "Cannot download news as no internet connection is active" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 #: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 msgid "Download all scheduled recipes at once" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 msgid "Download &all scheduled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:196 msgid "blurb" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 msgid "Every " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 msgid "day" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 msgid "Monday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 msgid "Tuesday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 msgid "Wednesday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 msgid "Thursday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 msgid "Friday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 msgid "Saturday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 msgid "Sunday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 msgid "at" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 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/scheduler_ui.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 #: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 msgid "&Account" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 msgid "For the scheduling to work, you must leave calibre running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 msgid "&Schedule" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 msgid "Add &title as tag" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 msgid "&Extra tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 msgid "&Advanced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 msgid "&Download now" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:223 msgid "Delete downloaded news older than " msgstr "" @@ -5043,11 +6591,79 @@ msgstr "" msgid "Choose formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 +msgid "Authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 +msgid "Publishers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:114 +msgid " (not on any book)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:166 +msgid "" +"The current tag category will be permanently deleted. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:153 +msgid "User Categories Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:154 +msgid "A&vailable items" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:155 +msgid "Apply tags to current tag category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:157 +msgid "A&pplied items" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:158 +msgid "Unapply (remove) tag from current tag category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:160 +msgid "Category name: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:161 +msgid "Select a category to edit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:162 +msgid "Delete this selected tag category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:164 +msgid "Enter a new category name. Select the kind before adding it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:165 +msgid "Add the new category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:167 +msgid "Category filter: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:168 +msgid "Select the content kind of the new category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:69 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" @@ -5093,15 +6709,71 @@ msgstr "" 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" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:20 +msgid "%s (was %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 +msgid "Item is blank" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 +msgid "An item cannot be set to nothing. Delete it instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:91 +msgid "No item selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:92 +msgid "You must select one item from the list of Available items." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 +msgid "No items selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 +msgid "You must select at least one items from the list." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:106 +msgid "Are you certain you want to delete the following items?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:72 +msgid "Category Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:73 +msgid "Items in use" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:74 +msgid "" +"Delete item from database. This will unapply the item from all books and " +"then remove it from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:76 +msgid "Rename the item in every book where it is used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 +msgid "Ctrl+S" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 -msgid "Send test mail from %s to:" +msgid "Test email settings" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 +msgid "Send test mail from %s to:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 msgid "&Test" msgstr "" @@ -5318,10 +6990,6 @@ msgstr "" 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 "" @@ -5335,11 +7003,11 @@ msgstr "" #: /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:83 #: /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:97 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:99 msgid "No match" msgstr "" @@ -5375,103 +7043,541 @@ msgstr "" msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:33 +msgid "Similar books..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:66 +msgid "Add books to library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:84 +msgid "Manage collections" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:165 +msgid "Cover Browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:183 +msgid "Tag Browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:204 +msgid "version" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:205 +msgid "created by Kovid Goyal" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:223 +msgid "Connected " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:232 +msgid "Update found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:285 +msgid "Book Details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:60 msgid "Job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:61 msgid "Status" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:62 msgid "Progress" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:63 msgid "Running time" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 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 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:101 msgid "Unknown job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:82 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 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:219 msgid "Cannot kill job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:217 msgid "Cannot kill jobs that communicate with the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:220 msgid "Job has already run" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:243 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:248 msgid "Unavailable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:280 +msgid "Jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:298 +msgid "Click to see list of active jobs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:358 msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1151 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:33 +msgid "Save single format to disk..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:76 +msgid "Eject this device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:192 +msgid "Library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:86 +msgid "Show books in calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:87 +msgid "Reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:88 +msgid "Show books in the main memory of the device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:89 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:568 +msgid "Card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:90 +msgid "Show books in storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:91 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:570 +msgid "Card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:92 +msgid "Show books in storage card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:131 +msgid "available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:162 +msgid "" +"Books display will be restricted to those matching the selected saved search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:175 +msgid "Advanced search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:184 +msgid "" +"

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

    Words separated by spaces are ANDed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:191 +msgid "Reset Quick Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:203 +msgid "Copy current search text (instead of search name)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:209 +msgid "Save current search under the name shown in the box" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:215 +msgid "Delete current saved search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:108 +msgid "%d books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:305 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:468 +msgid "Choose calibre library to work with" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:336 +msgid "Connect to folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:341 +msgid "Connect to iTunes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:356 +msgid "Start Content Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:358 +msgid "Stop Content Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid "Email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid " and delete from library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:389 +msgid "Setup email based sharing of books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "Add books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +msgid "E" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +msgid "Edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "C" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "Convert books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +msgid "V" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:568 +msgid "View" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:466 +msgid "Send to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +msgid "F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +msgid "Fetch news" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 +msgid "S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 +msgid "Save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 +msgid "Connect/share" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 +msgid "Del" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 +msgid "Remove books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "Browse the calibre User Manual" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "F1" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 +msgid "Help" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 +msgid "Ctrl+P" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 +msgid "M" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 +msgid "Merge book records" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:477 +msgid "Open containing folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:479 +msgid "Show book details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:481 +msgid "Books by same author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:483 +msgid "Books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:485 +msgid "Books by this publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 +msgid "Books with the same tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:501 +msgid "Edit metadata individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 +msgid "Edit metadata in bulk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 +msgid "Download metadata and covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:510 +msgid "Download only metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:512 +msgid "Download only covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 +msgid "Download only social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:521 +msgid "Merge into first selected book - delete others" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:524 +msgid "Merge into first selected book - keep others" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:532 +msgid "Add books from a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 +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/layout.py:538 +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/layout.py:541 +msgid "Add Empty book. (Book entry with no formats)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:553 +msgid "Save to disk in a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:385 +msgid "Save only %s format to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:388 +msgid "Save only %s format to disk in a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 +msgid "View specific format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:575 +msgid "Remove selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:577 +msgid "Remove files of a specific format from selected books.." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:580 +msgid "Remove all formats from selected books, except..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:583 +msgid "Remove covers from selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 +msgid "Remove matching books from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:603 +msgid "Convert individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:605 +msgid "Bulk convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:609 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:617 +msgid "Run welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:284 +msgid "N" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:284 +msgid "Y" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66 +msgid "On Device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:68 msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1152 -msgid "Date" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 msgid "Rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:358 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:369 -#: /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:375 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:889 -msgid "Not allowed" +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1182 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:398 +msgid "The lookup/search name is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:886 +msgid "In Library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:890 +msgid "Size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1162 +msgid "Marked for deletion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1165 +msgid "Double click to edit me

    " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:110 +msgid "Hide column %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:115 +msgid "Sort on %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:116 +msgid "Ascending" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:119 +msgid "Descending" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:131 +msgid "Change text alignment for %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:133 +msgid "Left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:133 +msgid "Right" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:134 +msgid "Center" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +msgid "Show column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +msgid "Restore default layout" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:567 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:1090 -msgid "Format" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1141 -msgid "Double click to edit me

    " -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:47 msgid "Configure Viewer" msgstr "" @@ -5497,7 +7603,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:433 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:440 msgid "No matches found" msgstr "" @@ -5514,20 +7620,22 @@ msgid "LRF Viewer toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:476 msgid "Next Page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477 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 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 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 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 msgid "Forward" msgstr "" @@ -5536,7 +7644,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:190 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 msgid "Open ebook" msgstr "" @@ -5544,219 +7652,188 @@ msgstr "" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:32 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:34 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:36 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 " +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:598 +msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 -msgid "%s is already running." +msgid "Choose a location for your calibre e-book library" 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." +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 +msgid "Failed to create library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 +msgid "Failed to create calibre library at: %r." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:184 +msgid "Choose a location for your new calibre e-book library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:153 +msgid "Initializing user interface..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:178 +msgid "Repairing failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:179 +msgid "The database repair failed. Starting with a new empty library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:226 +msgid "Bad database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:194 +msgid "Bad database location %r. calibre will now quit." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:207 +msgid "Corrupted database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:208 +msgid "" +"Your calibre database appears to be corrupted. Do you want calibre to try " +"and repair it automatically? If you say No, a new empty calibre library will " +"be created." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:214 +msgid "" +"Repairing database. This can take a very long time for a large collection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:227 +msgid "" +"Bad database location %r. Will start with a new, empty calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:238 +msgid "Starting %s: Loading books..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:283 +msgid "If you are sure it is not running" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:285 +msgid "Cannot Start " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:286 +msgid "%s is already running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:289 +msgid "may be running in the system tray, in the" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:291 +msgid "upper right region of the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:293 +msgid "lower right region of the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:296 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 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:310 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:306 -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:316 -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 +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:61 msgid "&Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:62 msgid "&Quit" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:90 msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:93 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:119 msgid "No matches found for this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:554 msgid "Search" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:306 +msgid "The selected search will be permanently deleted. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:348 +msgid "Search (For Advanced Search click the button to the left)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:390 +msgid "Saved Searches" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:398 +msgid "Choose saved search or enter name for new saved search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:10 +msgid "Restrict to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:55 +msgid "(all books)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:49 +msgid "({0} of {1})" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:57 +msgid "({0} of all)" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." msgstr "" @@ -5775,7 +7852,7 @@ msgid " or " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 msgid "&Default" msgstr "" @@ -5791,64 +7868,114 @@ msgstr "" msgid "Double click to change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 msgid "Frame" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 msgid "&Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:71 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 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 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 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 msgid "Clear" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 -msgid "Jobs:" +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:190 +msgid "Rename '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:158 -msgid "Click to see list of active jobs." +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:194 +msgid "Edit sort for '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 -msgid "Click to browse books by their covers" +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:199 +msgid "Hide category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 -msgid "Click to turn off Cover Browsing" +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 +msgid "Show category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 +msgid "Show all categories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:217 +msgid "Manage %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:220 +msgid "Manage Saved Searches" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:231 +msgid "Manage User Categories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:432 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:291 +msgid "Searches" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:510 +msgid "Duplicate search name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:511 +msgid "The saved search name %s is already used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:767 +msgid "Sort by name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:767 +msgid "Sort by popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:768 +msgid "Sort by average rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:771 +msgid "Set the sort order for entries in the Tag Browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:777 +msgid "Match all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:777 +msgid "Match any" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:782 msgid "" -"

    Browsing books by their covers is disabled.
    Import of pictureflow " -"module failed:
    " +"When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:209 -msgid "Click to browse books by tags" +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:786 +msgid "Manage &user categories" 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" +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:789 +msgid "Add your own categories to the Tag Browser" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:63 @@ -5876,537 +8003,113 @@ msgstr "" msgid "Queueing " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:239 msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:299 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:301 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:300 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:302 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:65 -msgid "Save single format to disk..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:144 -msgid "Search (For Advanced Search click the button to the left)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:161 -msgid "Error communicating with device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:160 msgid "&Restore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:162 msgid "&Donate to support calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:166 +msgid "&Eject connected device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:169 msgid "&Restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:224 -msgid "

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

    " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:249 -msgid "Edit metadata individually" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:251 -msgid "Edit metadata in bulk" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:253 -msgid "Download metadata and covers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:254 -msgid "Download only metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:255 -msgid "Download only covers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:256 -msgid "Download only social metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:259 -msgid "Add books from a single directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:260 -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:263 -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:266 -msgid "Add Empty book. (Book entry with no formats)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:307 -msgid "Save to disk in a single directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:308 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1939 -msgid "Save only %s format to disk" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:317 -msgid "View specific format" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:321 -msgid "Remove selected books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:323 -msgid "Remove files of a specific format from selected books.." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:325 -msgid "Remove all formats from selected books, except..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:327 -msgid "Remove covers from selected books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:359 -msgid "Convert individually" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 -msgid "Bulk convert" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:363 -msgid "Create catalog of books in your calibre library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:379 -msgid "Run welcome wizard" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:415 -msgid "Similar books..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:476 -msgid "Bad database location" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:478 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 -msgid "Calibre Library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:488 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2095 -msgid "Choose a location for your ebook library." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:217 msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:709 -msgid "Browse by covers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:857 -msgid "Device: " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:859 -msgid " detected." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:885 -msgid "Connected " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:897 -msgid "Device database corrupted" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:898 -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:958 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1084 -msgid "Use library only" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:959 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 -msgid "User annotations generated from main library only" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:966 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1388 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1445 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1482 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1566 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1684 -msgid "No books selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:967 -msgid "No books selected to fetch annotations from" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989 -msgid "Merging user annotations into database" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1128 -msgid "How many empty books?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1129 -msgid "How many empty books should be added?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1177 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1227 -msgid "Uploading books to device." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1189 -msgid "EPUB Books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1190 -msgid "LRF Books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1191 -msgid "HTML Books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192 -msgid "LIT Books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193 -msgid "MOBI Books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1194 -msgid "Text books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1195 -msgid "PDF Books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1196 -msgid "Comics" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 -msgid "Archives" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 -msgid "Supported books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1239 -msgid "Failed to read metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1240 -msgid "Failed to read metadata from the following" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1260 -msgid "Cannot delete" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1263 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1828 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1844 -msgid "No book selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1273 -msgid "Choose formats to be deleted" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 -msgid "Choose formats not to be deleted" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1329 -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:1356 -msgid "Deleting books from device." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1387 -msgid "Cannot download metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 -msgid "social metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 -msgid "covers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 -msgid "metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 -msgid "Downloading %s for %d book(s)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1429 -msgid "Failed to download some metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1430 -msgid "Failed to download metadata for the following:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433 -msgid "Failed to download metadata:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1444 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1481 -msgid "Cannot edit metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1506 -msgid "Cannot save to disk" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1509 -msgid "Choose destination directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1536 -msgid "Error while saving" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1537 -msgid "There was an error while saving." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1544 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1545 -msgid "Could not save some books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1546 -msgid "Click the show details button to see which ones." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1567 -msgid "No books selected to generate catalog for" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1584 -msgid "Generating %s catalog..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1590 -msgid "" -"No books to catalog\n" -"Check exclude tags" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1600 -msgid "Catalog generated." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1603 -msgid "Export Catalog Directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1604 -msgid "Select destination for %s.%s" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1618 -msgid "Fetching news from " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1632 -msgid " fetched." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1683 -msgid "Cannot convert" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1712 -msgid "Starting conversion of %d book(s)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1828 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 -msgid "Cannot view" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1843 -msgid "Cannot open folder" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1865 -msgid "Multiple Books Selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1866 -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:1882 -msgid "%s has no available formats." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1923 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:367 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1924 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:363 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1967 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:368 +msgid "Cannot configure before calibre is restarted." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:415 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1968 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:416 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2023 -msgid "Error talking to device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2024 -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:2047 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:496 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2048 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:469 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:2061 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:482 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2076 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:497 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2104 -msgid "Invalid library location" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2105 -msgid "Could not access %s. Using %s as the library." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2155 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:537 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." +"you find it useful, please consider donating to support its development. " +"Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2180 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:563 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2183 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:566 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:2187 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:570 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2239 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:625 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:2258 -msgid "" -"Latest version: %s" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2266 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:56 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2267 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:57 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6564,70 +8267,99 @@ msgstr "" msgid "No results found for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 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:671 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:675 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 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 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 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Hyphenate text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 msgid "Default language for hyphenation rules" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 msgid "Font options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 msgid "The serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 msgid "The sans-serif font family" msgstr "" -#: /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 family" msgstr "" -#: /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 size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The monospaced font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:452 msgid "&Lookup in dictionary" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:455 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 +msgid "Go to..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:467 +msgid "Next Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:468 +msgid "Previous Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:470 +msgid "Document Start" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471 +msgid "Document End" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:473 +msgid "Section Start" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474 +msgid "Section End" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 msgid "Scroll to the next page" msgstr "" @@ -6680,10 +8412,6 @@ msgstr "" 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 "" @@ -6692,264 +8420,256 @@ msgstr "" msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:199 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:268 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:299 msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:398 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:399 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:418 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:418 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:441 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:478 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:514 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:543 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:578 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:586 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:587 msgid "

    This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:591 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:665 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:668 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:672 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:673 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:677 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:683 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" +msgid "E-book Viewer" 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" +msgid "Close dictionary" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 -msgid "Font size smaller" +msgid "toolBar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 +msgid "Next page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 -msgid "Find next" +msgid "Previous page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 -msgid "Copy to clipboard" +msgid "Font size larger" 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" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 +msgid "Font size smaller" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 +msgid "Find next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:198 +msgid "Find next occurrence" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:199 +msgid "F3" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:200 +msgid "Copy to clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:202 +msgid "Reference Mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:203 +msgid "Bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:204 +msgid "Toggle full screen" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205 msgid "Print" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 +msgid "Find previous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:207 +msgid "Find previous occurrence" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:208 +msgid "Shift+F3" +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 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:238 msgid "Copy Image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:239 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 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:364 msgid "Change Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:365 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:366 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:367 msgid "Swap Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:368 msgid "Title Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:838 +msgid "Drag to resize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:870 +msgid "Show" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:877 +msgid "Hide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:370 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:374 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:376 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:453 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:470 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:524 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:536 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:590 +msgid "Select location for books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:665 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/finish_ui.py:42 #: /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 @@ -6957,7 +8677,7 @@ 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/finish_ui.py:43 #: /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 @@ -6978,26 +8698,19 @@ msgstr "" 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:44 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 msgid "" "

    User Manual

    A User Manual is also available online." @@ -7167,41 +8880,52 @@ msgstr "" 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" +#: /home/kovid/work/calibre/src/calibre/library/caches.py:230 +msgid "today" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/__init__.py:12 -msgid "The port on which to listen. Default is %default" +#: /home/kovid/work/calibre/src/calibre/library/caches.py:233 +msgid "yesterday" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/__init__.py:14 -msgid "The server timeout in seconds. Default is %default" +#: /home/kovid/work/calibre/src/calibre/library/caches.py:236 +msgid "thismonth" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/__init__.py:16 -msgid "The max number of worker threads to use. Default is %default" +#: /home/kovid/work/calibre/src/calibre/library/caches.py:239 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:240 +msgid "daysago" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/__init__.py:18 -msgid "Set a password to restrict access. By default access is unrestricted." +#: /home/kovid/work/calibre/src/calibre/library/caches.py:398 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:408 +msgid "no" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/__init__.py:20 -msgid "Username for access. By default, it is: %default" +#: /home/kovid/work/calibre/src/calibre/library/caches.py:398 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:408 +msgid "unchecked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/__init__.py:24 -msgid "The maximum size for displayed covers. Default is %default." +#: /home/kovid/work/calibre/src/calibre/library/caches.py:401 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:411 +msgid "checked" 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." +#: /home/kovid/work/calibre/src/calibre/library/caches.py:401 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:411 +msgid "yes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:41 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:405 +msgid "blank" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/caches.py:405 +msgid "empty" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7210,7 +8934,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:51 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7218,14 +8942,72 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:206 +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: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:216 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:225 +msgid "" +"Create a citation for BibTeX entries.\n" +"Boolean value: True, False\n" +"Default: '%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:234 +msgid "" +"The template for citation creation from database fields.\n" +" Should be a template with {} enclosed fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +msgid "" +"BibTeX file encoding output.\n" +"Available types: utf8, cp1252, ascii.\n" +"Default: '%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"BibTeX file encoding flag.\n" +"Available types: strict, replace, ignore, backslashreplace.\n" +"Default: '%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/catalog.py:262 msgid "" +"Entry type for BibTeX catalog.\n" +"Available types: book, misc, mixed.\n" +"Default: '%default'\n" +"Applies to: BIBTEX output format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:530 +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:269 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:537 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 " @@ -7234,14 +9016,14 @@ msgid "" "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:547 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:285 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7250,28 +9032,28 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:293 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:561 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:300 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:568 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:307 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:575 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:314 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:582 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -7280,7 +9062,7 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:321 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:589 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7290,27 +9072,27 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:328 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:596 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:122 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:41 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:206 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:120 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:214 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:128 msgid "" "The fields to display when listing books in the database. Should be a comma " "separated list of fields.\n" @@ -7319,61 +9101,55 @@ msgid "" "fields. Only has effect in the text output format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:216 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:135 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:218 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:137 msgid "Sort results in ascending order" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:220 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:139 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:222 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:141 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:223 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:142 msgid "The string used to separate fields. Default is a space." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:224 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:143 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:227 -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:240 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:165 msgid "Invalid fields. Available fields:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:247 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:172 msgid "Invalid sort field. Available fields:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:318 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:244 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:341 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:267 msgid "" "%prog add [options] file1 file2 file3 ...\n" "\n" @@ -7382,27 +9158,43 @@ msgid "" "the directory related options below.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:350 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:276 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:352 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:278 msgid "Process directories recursively" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:354 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:280 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:364 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:282 +msgid "Add an empty book (a book with no formats)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:284 +msgid "Set the title of the added empty book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:286 +msgid "Set the authors of the added empty book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:288 +msgid "Set the ISBN of the added empty book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:313 msgid "You must specify at least one file to add" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:380 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:329 msgid "" "%prog remove ids\n" "\n" @@ -7411,11 +9203,11 @@ msgid "" "command). For example, 23,34,57-85\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:395 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:344 msgid "You must specify at least one book to remove" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:414 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:363 msgid "" "%prog add_format [options] id ebook_file\n" "\n" @@ -7424,15 +9216,15 @@ msgid "" "already exists, it is replaced.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:429 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:378 msgid "You must specify an id and an ebook file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:434 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:383 msgid "ebook file must have an extension" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:442 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:391 msgid "" "\n" "%prog remove_format [options] id fmt\n" @@ -7442,11 +9234,11 @@ msgid "" "EPUB. If the logical book does not have fmt available, do nothing.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:459 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:408 msgid "You must specify an id and a format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:477 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:426 msgid "" "\n" "%prog show_metadata [options] id\n" @@ -7456,15 +9248,15 @@ msgid "" "id is an id number from the list command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:485 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:434 msgid "Print metadata in OPF form (XML)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:494 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:443 msgid "You must specify an id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:507 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:456 msgid "" "\n" "%prog set_metadata [options] id /path/to/metadata.opf\n" @@ -7477,11 +9269,11 @@ msgid "" "show_metadata command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:523 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:472 msgid "You must specify an id and a metadata file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:543 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:492 msgid "" "%prog export [options] ids\n" "\n" @@ -7492,27 +9284,54 @@ msgid "" "an opf file). You can get id numbers from the list command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:551 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:500 msgid "Export all books in database, ignoring the list of ids." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:553 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:502 msgid "Export books to the specified directory. Default is" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:555 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:504 msgid "Export all books into a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:562 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:511 msgid "Specifying this switch will turn this behavior off." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:585 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:534 msgid "You must specify some ids or the %s option" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:644 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:547 +msgid "" +"%prog add_custom_column [options] label name datatype\n" +"\n" +"Create a custom column. label is the machine friendly name of the column. " +"Should\n" +"not contain spaces or colons. name is the human friendly name of the " +"column.\n" +"datatype is one of: {0}\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:556 +msgid "" +"This column stores tag like data (i.e. multiple comma separated values). " +"Only applies if datatype is text." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:560 +msgid "" +"A dictionary of options to customize how the data in this column will be " +"interpreted." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:573 +msgid "You must specify label, name and datatype" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:631 msgid "" "\n" " %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" @@ -7523,30 +9342,91 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:645 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:662 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:649 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:668 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:655 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:505 msgid "Show detailed output information. Useful for debugging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:681 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:668 msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:701 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:710 +msgid "" +"\n" +" %prog set_custom [options] column id value\n" +"\n" +" Set the value of a custom column for the book identified by id.\n" +" You can get a list of ids using the list command.\n" +" You can get a list of custom column names using the custom_columns\n" +" command.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:721 +msgid "" +"If the column stores multiple values, append the specified values to the " +"existing ones, instead of replacing them." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:732 +msgid "Error: You must specify a field name, id and value" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:751 +msgid "" +"\n" +" %prog custom_columns [options]\n" +"\n" +" List available custom columns. Shows column labels and ids.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:758 +msgid "Show details for each column." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:770 +msgid "You will lose all data in the column: %r. Are you sure (y/n)? " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:772 +msgid "y" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:778 +msgid "" +"\n" +" %prog remove_custom_column [options] label\n" +"\n" +" Remove the custom column identified by label. You can see available\n" +" columns with the custom_columns command.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:786 +msgid "Do not ask for confirmation" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:796 +msgid "Error: You must specify a column label" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:809 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7558,30 +9438,42 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:71 +msgid "%sAverage rating is %3.1f" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:566 +msgid "Main" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1796 msgid "

    Migrating old database to ebook library in %s

    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1793 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1825 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1810 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1903 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1935 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1940 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1976 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1962 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1998 msgid "Checked id" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:122 +msgid "Ratings" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 msgid "The title" msgstr "" @@ -7605,62 +9497,64 @@ 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" +msgid "" +"The series number. To get leading zeros use {series_index:0>3s} or " +"{series_index:>3s} for leading spaces" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 -msgid "The publisher" +msgid "The rating" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 -msgid "The date" +msgid "The ISBN" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 -msgid "The published date" +msgid "The publisher" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 +msgid "The date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:37 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:38 msgid "The calibre internal id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:48 msgid "Options to control saving to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:54 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 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:57 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 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:60 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 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:63 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 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:66 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 " @@ -7668,7 +9562,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:71 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 " @@ -7676,7 +9570,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:78 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -7684,101 +9578,190 @@ msgid "" "saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:84 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 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Convert paths to lowercase." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:89 msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:263 msgid "Requested formats not available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:378 +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:21 +msgid "Settings to control the calibre content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:25 +msgid "The port on which to listen. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:27 +msgid "The server timeout in seconds. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:29 +msgid "The max number of worker threads to use. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:31 +msgid "Set a password to restrict access. By default access is unrestricted." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:33 +msgid "Username for access. By default, it is: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:37 +msgid "The maximum size for displayed covers. Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:39 +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/server/__init__.py:43 +msgid "" +"Group items in categories such as author/tags by first letter when there are " +"more than this number of items. Default: %default. Set to a large number to " +"disable grouping." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/base.py:94 msgid "Password to access your calibre library. Username is " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:879 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:28 msgid "" "[options]\n" "\n" "Start the calibre content server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:881 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:30 msgid "Path to the library folder to serve with the content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:883 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:32 msgid "Write process PID to the specified file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:127 +msgid "%d items" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:144 +msgid "RATING: %s
    " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:147 +msgid "TAGS: %s
    " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:151 +msgid "SERIES: %s [%s]
    " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:231 +msgid "Books in your library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:237 +msgid "By " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:238 +msgid "Books sorted by " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 +msgid "Newest" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:34 msgid "%sUsage%s: %s\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:78 msgid "Created by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:79 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 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:663 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:665 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:667 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:669 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:671 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:673 msgid "The language in which to display the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:675 msgid "The default output format for ebook conversions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:679 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:681 msgid "Read metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:683 msgid "The priority of worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:685 msgid "Swap author first and last names when reading metadata" msgstr "" +#: /home/kovid/work/calibre/src/calibre/utils/config.py:687 +msgid "Add new formats to existing book records" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:692 +msgid "List of named saved searches" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:693 +msgid "User-created tag browser categories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:695 +msgid "How and when calibre updates metadata on the device." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." msgstr "" @@ -7795,75 +9778,91 @@ msgstr "" msgid "Working..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:93 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 msgid "Brazilian Portuguese" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 msgid "English (UK)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 msgid "Simplified Chinese" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 msgid "Chinese (HK)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 msgid "Traditional Chinese" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 msgid "English" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 msgid "English (Australia)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 msgid "English (New Zealand)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 msgid "English (Canada)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 msgid "English (India)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 msgid "English (Thailand)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 msgid "English (Cyprus)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 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)" +msgid "English (Israel)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 -msgid "Dutch (NL)" +msgid "English (Singapore)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 +msgid "English (Yemen)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 +msgid "English (Ireland)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:112 +msgid "English (China)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:113 +msgid "Spanish (Paraguay)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:114 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:115 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:116 msgid "Dutch (BE)" msgstr "" @@ -7887,13 +9886,16 @@ msgstr "" msgid "Control email delivery" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:102 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:124 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:118 +msgid "Unknown section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:140 msgid "Unknown feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:142 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:165 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:158 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:183 msgid "Untitled article" msgstr "" @@ -7920,154 +9922,166 @@ msgid "" "Do not download latest version of builtin recipes from the calibre server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:37 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:46 msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:546 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:633 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:708 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:710 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:641 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:716 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:718 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:720 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:726 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:809 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:747 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:830 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:752 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:758 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:841 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:843 msgid "Generating masthead..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:838 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:924 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:854 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:940 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:864 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:950 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:876 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:962 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:911 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1003 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1135 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1172 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1205 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1243 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1216 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1254 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1233 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Fetching feed" msgstr "" +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1418 +msgid "" +"Failed to log in, check your username and password for the calibre " +"Periodicals service." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1434 +msgid "" +"You do not have permission to download this issue. Either your subscription " +"has expired or you have exceeded the maximum allowed downloads for today." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 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 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:193 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 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:194 msgid "Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 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:485 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:488 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:491 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:494 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:496 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:498 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:500 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:502 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 " @@ -8076,6 +10090,6 @@ 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:504 msgid "Do not download CSS stylesheets." msgstr "" diff --git a/src/calibre/translations/lv.po b/src/calibre/translations/lv.po index cb76c64bd9..fb6520f883 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-07-20 22:48+0000\n" -"PO-Revision-Date: 2010-07-22 21:01+0000\n" +"POT-Creation-Date: 2010-08-07 01:39+0000\n" +"PO-Revision-Date: 2010-08-06 22:48+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-07-23 04:05+0000\n" +"X-Launchpad-Export-Date: 2010-08-08 03:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: LATVIA\n" "X-Poedit-Language: Latvian\n" @@ -29,12 +29,12 @@ msgstr "PilnÄ«gi neko nedara" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:499 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:398 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:506 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:405 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:428 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:402 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:335 @@ -42,16 +42,16 @@ 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:235 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:278 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:281 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:236 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:282 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:317 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:332 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -102,44 +102,44 @@ msgstr "PilnÄ«gi neko nedara" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:240 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:234 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:236 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:814 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:829 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:855 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1149 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:355 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:367 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1039 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1640 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1642 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:356 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:368 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:976 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1045 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1646 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1648 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1770 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:199 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 @@ -252,11 +252,11 @@ msgid "" "encoding declarations." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:237 msgid "Conversion Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:251 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." @@ -273,7 +273,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:412 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:414 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -283,62 +283,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:447 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:449 msgid "This profile is intended for the SONY PRS-900." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:477 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 msgid "This profile is intended for the Microsoft Reader." msgstr "Å is profils ir paredzÄ“ts Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:490 msgid "This profile is intended for the Mobipocket books." msgstr "Å is profils ir paredzÄ“ts Mobipocket grÄmatÄm" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Å is profils ir paredzÄ“ts Hanlin V3 un tÄ atdarinÄjumiem." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:521 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:523 msgid "This profile is intended for the Cybook G3." msgstr "Å is profils ir paredzÄ“ts Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:534 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 msgid "This profile is intended for the Cybook Opus." msgstr "Å is profils ir paredzÄ“ts Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:545 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:547 msgid "This profile is intended for the Amazon Kindle." msgstr "Å is profils ir paredzÄ“ts Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:580 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:584 msgid "This profile is intended for the Irex Illiad." msgstr "Å is profils ir paredzÄ“ts Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:593 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Å is profils ir paredzÄ“ts IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:607 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:611 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:621 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:625 msgid "This profile is intended for the B&N Nook." msgstr "" @@ -353,62 +353,62 @@ msgid "" "devices." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:259 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 msgid "This profile is intended for the Kobo Reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:438 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440 msgid "This profile is intended for the SONY PRS-300." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:456 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:458 msgid "This profile is intended for the 5-inch JetBook." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:465 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 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:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:566 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Å is profils ir paredzÄ“ts Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Installed plugins" msgstr "UzstÄdÄ«tie spraudņi" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Mapping for filetype plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 msgid "Local plugin customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 msgid "Disabled plugins" msgstr "AtspÄ“jotie spraudņi" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:37 msgid "Enabled plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:84 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:85 msgid "No valid plugin found in " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:478 msgid "Initialization of plugin %s failed with traceback:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 msgid "" " %prog options\n" "\n" @@ -416,29 +416,29 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:507 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "Pievienot spraudni, norÄdot zip failu, kurÅ¡ to satur." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:509 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:519 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:521 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:523 msgid "List all installed plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:515 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:525 msgid "Enable the named plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:527 msgid "Disable the named plugin" msgstr "" @@ -446,13 +446,13 @@ msgstr "" msgid "Communicate with Android phones." msgstr "KomunicÄ“ ar Android telefoniem." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:48 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/android/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:90 msgid "Communicate with S60 phones." msgstr "" @@ -506,13 +506,13 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2471 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:807 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:813 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:851 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 #: /home/kovid/work/calibre/src/calibre/library/database2.py:187 #: /home/kovid/work/calibre/src/calibre/library/database2.py:200 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1524 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1530 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 msgid "News" msgstr "Ziņas" @@ -573,7 +573,7 @@ msgid "Use an arbitrary folder as a device." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:14 msgid "Device Interface" msgstr "IerÄ«Äu saskarnes" @@ -603,15 +603,15 @@ msgstr "" msgid "Communicate with The Book reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:52 msgid "Communicate with the SpringDesign Alex eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:67 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:68 msgid "Communicate with the Azbooka" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:80 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:81 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "" @@ -621,7 +621,7 @@ msgstr "KomunicÄ“ arIRex Iliad e-grÄmatu lasÄ«tÄju." #: /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:38 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:42 msgid "John Schember" msgstr "John Schember" @@ -661,53 +661,64 @@ msgstr "" msgid "Communicate with the Kobo Reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:51 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:54 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:57 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:159 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:64 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:139 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:56 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:59 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:161 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:136 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 msgid "Getting list of books on device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:219 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:263 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:264 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:221 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:265 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:253 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 msgid "Removing books from device..." msgstr "Dzēš grÄmatas no ierÄ«ces..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:269 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:278 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:283 msgid "Removing books from device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:279 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:313 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:210 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:240 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:281 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:247 msgid "Adding books to device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:15 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:441 +msgid "Not Implemented" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:367 +msgid "" +"\".kobo\" files do not exist on the device as books instead, they are rows " +"in the sqlite database. Currently they cannot be exported or viewed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:35 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:37 msgid "Communicate with the Booq Avant" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:55 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:58 msgid "Communicate with the Sweex MM300" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:75 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:78 msgid "Communicate with the Pandigital Novel" msgstr "" @@ -749,7 +760,7 @@ msgid "" "device. Possibilities include: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:140 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:144 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "" @@ -770,47 +781,47 @@ msgstr "" msgid "Communicate with the iPapyrus reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:245 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:490 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500 msgid "Unable to detect the %s disk drive." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:583 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593 msgid "Could not find mount helper: %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:595 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605 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:603 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613 msgid "Unable to mount main memory (Error code: %d)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:740 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752 msgid "The reader has no storage card in this slot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754 msgid "Selected slot: %s is not supported." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783 msgid "There is insufficient free space in main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:777 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787 msgid "There is insufficient free space on the storage card" msgstr "" @@ -848,20 +859,20 @@ msgstr "" msgid "Extra customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 msgid "Communicate with an eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:57 msgid "Get device information..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:190 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:192 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:194 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:196 msgid "Transferring books to device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:314 msgid "Sending metadata to device..." msgstr "SÅ«ta ierÄ«cei grÄmatu metadatus..." @@ -948,92 +959,92 @@ msgstr "" msgid "Set font delta" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:178 msgid "Rendered %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:204 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:181 msgid "Failed %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:261 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:235 msgid "" "Failed to process comic: \n" "\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:253 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:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:257 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:262 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:264 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:293 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:267 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:269 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:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:272 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:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:305 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 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:309 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 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:313 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "Do not convert the image to grayscale (black and white)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:463 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:437 msgid "Page" msgstr "Lapa" @@ -1815,7 +1826,7 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 @@ -1824,11 +1835,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:543 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:550 msgid "Title" msgstr "Nosaukums" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 @@ -1836,18 +1847,18 @@ msgstr "Nosaukums" msgid "Author(s)" msgstr "Autors(i)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 #: /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:400 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 @@ -1859,9 +1870,9 @@ msgstr "" msgid "Comments" msgstr "KomentÄri" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:408 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:409 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 @@ -1869,9 +1880,9 @@ msgstr "KomentÄri" msgid "Tags" msgstr "Birkas" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:410 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 @@ -1879,22 +1890,22 @@ msgstr "Birkas" msgid "Series" msgstr "SÄ“rija" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:412 msgid "Language" msgstr "Valoda" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:414 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:416 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 msgid "Published" msgstr "PublicÄ“ts" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:418 msgid "Rights" msgstr "" @@ -2001,53 +2012,83 @@ msgstr "VÄks saglabÄts" msgid "No cover found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:15 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:27 msgid "Cover download" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:79 +msgid "Download covers from openlibrary.org" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:136 +msgid "ISBN: %s not found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:117 +msgid "Download covers from librarything.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 +msgid "LibraryThing.com timed out. Try again later." +msgstr "Gaidot atbildi no LibraryThing.com iestÄjÄs noildze. Mēģiniet vÄ“lÄk." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:135 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 +msgid "LibraryThing.com server error. Try again later." +msgstr "LibraryThing.com servera kļūda. Mēģiniet vÄ“lÄk." + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:50 msgid "Metadata download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 msgid "description/reviews" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 msgid "Download %s from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:155 msgid "Downloads metadata from Google Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:172 msgid "Downloads metadata from isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:184 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:200 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:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:210 msgid "Downloads social metadata from amazon.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:213 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:229 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" @@ -2081,24 +2122,10 @@ msgstr "MeklÄ“jamÄs grÄmatas nosaukums." msgid "The publisher of the book to search for." msgstr "MeklÄ“jamÄs grÄmatas izdevÄ“js." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 -msgid "LibraryThing.com timed out. Try again later." -msgstr "Gaidot atbildi no LibraryThing.com iestÄjÄs noildze. Mēģiniet vÄ“lÄk." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 -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:76 msgid " not found." msgstr " nav atrasts." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 -msgid "LibraryThing.com server error. Try again later." -msgstr "LibraryThing.com servera kļūda. Mēģiniet vÄ“lÄk." - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 msgid "" "\n" @@ -2395,7 +2422,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author" msgstr "Autors" @@ -2512,7 +2539,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:200 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:194 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -2685,7 +2712,7 @@ msgid "Disable UI animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "NokopÄ“ts" @@ -2697,7 +2724,7 @@ msgstr "KopÄ“t" msgid "Copy to Clipboard" msgstr "KopÄ“t uz starpliktuvi" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:397 msgid "Choose Files" msgstr "" @@ -2712,13 +2739,13 @@ msgid "User annotations generated from main library only" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:611 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:707 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:941 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1059 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:623 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:682 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:719 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1116 msgid "No books selected" msgstr "" @@ -2764,7 +2791,7 @@ msgid "Uploading books to device." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 msgid "Books" msgstr "GrÄmatas" @@ -2830,137 +2857,142 @@ msgid "Failed to read metadata from the following" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 msgid "Add to library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:459 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1228 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1285 msgid "No book selected" msgstr "Nav izvÄ“lÄ“ta grÄmata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:442 +msgid "" +"The following books are virtual and cannot be added to the calibre library:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 msgid "No book files found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:470 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:483 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:501 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:521 msgid "Cannot delete books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:522 msgid "No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:532 msgid "Main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:439 msgid "Storage Card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 msgid "Storage Card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:539 msgid "No books to delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:540 msgid "None of the selected books are on the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:612 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:578 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/actions.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:597 msgid "" "The selected books will be permanently deleted from your device. Are " "you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:610 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:622 msgid "Cannot download metadata" msgstr "Nav iespÄ“jams lejupielÄdÄ“t metadatus" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:638 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 msgid "covers" msgstr "vÄki" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 msgid "metadata" msgstr "metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:642 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:654 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:666 msgid "Failed to download some metadata" msgstr "Nav iespÄ“jams lejupielÄdÄ“t daļu metadatu" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:655 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:667 msgid "Failed to download metadata for the following:" msgstr "NevarÄ“ja lejuplÄdÄ“t metadatus:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 msgid "Failed to download metadata:" msgstr "Nevar lejuplÄdÄ“t metadatus:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:659 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:595 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:962 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Kļūda" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:681 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:718 msgid "Cannot edit metadata" msgstr "Nav iespÄ“jams rediģēt metadatus" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:730 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:742 msgid "Cannot merge books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:731 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:743 msgid "At least two books must be selected for merging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:747 msgid "" "All book formats and metadata from the selected books will be added to the " "first selected book.

    The second and subsequently selected " @@ -2968,7 +3000,7 @@ msgid "" "proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:746 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 msgid "" "All book formats and metadata from the selected books will be merged into " "the first selected book.

    After merger the second and " @@ -2978,99 +3010,111 @@ msgid "" "from your computer.

    Are you sure you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:770 msgid "" "You are about to merge more than 5 books. Are you sure you want to " "proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:924 msgid "Cannot save to disk" msgstr "Nav iespÄ“jams saglabÄt diskÄ" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:927 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:566 +msgid "Not allowed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:934 +msgid "" +"You are tying to save files into the calibre library. This can cause " +"corruption of your library. Save to disk is meant to export files from your " +"calibre library elsewhere." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:968 msgid "Error while saving" msgstr "Kļūda saglabÄjot" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:912 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:969 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:920 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:976 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:977 msgid "Could not save some books" msgstr "Dažas grÄmatas nevarÄ“ja saglabÄt" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:921 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:999 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1016 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:964 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1021 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:965 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1022 msgid "" "No books to catalog\n" "Check exclude tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:975 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1032 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1035 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:979 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1036 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:995 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1052 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1066 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1058 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1115 msgid "Cannot convert" msgstr "Nav iespÄ“jams pÄrveidot" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1087 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1144 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1321 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1209 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1266 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1274 msgid "Multiple Books Selected" msgstr "IzvÄ“lÄ“tas vairÄkas grÄmatas" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1218 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1275 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 " @@ -3078,11 +3122,11 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1227 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1284 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1322 msgid "%s has no available formats." msgstr "" @@ -3107,7 +3151,7 @@ msgid "The specified directory could not be processed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:804 msgid "No books" msgstr "" @@ -3178,7 +3222,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 @@ -3232,22 +3276,22 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 -#: /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:548 -#: /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:562 +#: /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:552 #: /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:566 -#: /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:610 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /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:570 +#: /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:614 #: /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:379 -#: /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:392 -#: /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:370 +#: /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:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 @@ -3486,8 +3530,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1487 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1505 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1493 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1511 msgid "Catalog" msgstr "" @@ -3923,38 +3967,38 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:111 msgid "Choose cover for " msgstr "IzvÄ“lÄ“ties vÄku " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118 msgid "Cannot read" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:119 msgid "You do not have permission to read the file: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:127 msgid "Error reading file" msgstr "Kļūda nolasot failu" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 msgid "

    There was an error reading from file:
    " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 msgid " is not a valid picture" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /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:401 msgid "Book Cover" msgstr "GrÄmatas vÄks" @@ -3963,28 +4007,28 @@ msgid "Use cover from &source file" 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:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 msgid "Change &cover image:" msgstr "MainÄ«t grÄmatas &vÄku:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /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:403 msgid "Browse for an image to use as the cover of this book." msgstr "IzvÄ“lÄ“ties attÄ“lu, kuru izmantos kÄ Å¡Ä«s grÄmatas vÄku." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /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 msgid "&Title: " msgstr "&Nosaukums " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /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:363 msgid "Change the title of this book" msgstr "Maina šīs grÄmatas nosaukumu" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 #: /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:361 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid "&Author(s): " msgstr "&Autors(i): " @@ -4001,18 +4045,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 -#: /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:375 msgid "&Publisher: " msgstr "&IzdevniecÄ«ba: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /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:376 msgid "Ta&gs: " msgstr "&Birkas: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 -#: /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:377 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

    They can be any words or phrases, separated by commas." @@ -4020,7 +4064,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /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:380 msgid "&Series:" msgstr "&SÄ“rija:" @@ -4028,13 +4072,13 @@ msgstr "&SÄ“rija:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 -#: /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 +#: /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 "List of known series. You can add new series." msgstr "ZinÄmo sÄ“riju saraksts. JÅ«s varat pievienot jaunas sÄ“rijas." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /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:387 msgid "Book " msgstr "GrÄmata " @@ -4535,231 +4579,231 @@ msgstr "" msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:162 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:278 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:289 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:299 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:308 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:313 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:369 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:379 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:413 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:419 msgid "Send to main memory" msgstr "SÅ«tÄ«t uz pamatatmiņu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 msgid "Send to storage card A" msgstr "SÅ«tÄ«t uz karti A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 msgid "Send to storage card B" msgstr "SÅ«tÄ«t uz karti B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:437 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:448 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:449 msgid "Send specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:485 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 msgid "Fetch annotations (experimental)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:603 msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:618 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:625 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:668 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:675 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 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/device.py:711 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:718 msgid "Device: " msgstr "IerÄ«ce: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:713 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:798 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:803 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:816 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 msgid "E-book:" msgstr "E-grÄmata:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:887 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:910 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1193 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:917 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1019 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1081 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:944 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:949 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1167 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1209 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:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1271 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1272 msgid "" "

    Cannot upload books to device there is no more free space available " msgstr "" @@ -4854,6 +4898,14 @@ msgstr "" msgid "The folder %s is not empty. Please choose an empty folder" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location selected" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 msgid "Choose your calibre library" msgstr "" @@ -5010,135 +5062,143 @@ msgstr "" msgid "Never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524 +msgid "Done" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525 +msgid "Confirmation dialogs have all been reset" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:530 msgid "System port selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:531 msgid "" "The value %d you have chosen for the content server port is a system " "port. Your operating system may not allow the server to run on this " "port. To be safe choose a port number larger than 1024." 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 "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:554 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:555 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:556 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:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 msgid "No valid plugin path" 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 "%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:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:611 msgid "Choose plugin" msgstr "IzvÄ“lieties spraudni" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:614 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:623 msgid "Plugin cannot be disabled" msgstr "Spraudni nevar atspÄ“jot" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 msgid "The plugin: %s cannot be disabled" msgstr "Spraudni %s nevar atspÄ“jot" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 msgid "Plugin not customizable" msgstr "Spraudnis nav pielÄgojams" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:634 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:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:680 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:681 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:703 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:712 msgid "You must select a column to delete it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:717 msgid "The selected column is not a custom column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:718 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" msgstr "Vai esat pÄrliecinÄts?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:719 msgid "Do you really want to delete column %s and all its data?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:777 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:786 msgid "Error log:" msgstr "Kļūdu žurnÄls:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:784 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:793 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:318 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:846 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:838 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:847 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:899 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:908 msgid "Must restart" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:900 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:909 msgid "" "The changes you made require that Calibre be restarted. Please restart as " "soon as practical." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:943 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:954 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:963 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:968 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:960 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:969 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 " @@ -5276,278 +5336,282 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:616 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 msgid "Preferences" msgstr "IestatÄ«jumi" -#: /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:537 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:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 msgid "Download &social metadata (tags/ratings/etc.) by default" 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:539 msgid "&Overwrite author and title by default when fetching metadata" 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:540 msgid "Default network &timeout:" 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:541 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:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid " seconds" msgstr " sekundes" -#: /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:543 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:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "Normal" msgstr "Standarta" -#: /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:545 msgid "High" msgstr "Augsta" -#: /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:546 msgid "Low" msgstr "Zema" -#: /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:547 msgid "Job &priority:" msgstr "Darbu &prioritÄte:" -#: /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:548 msgid "Preferred &output format:" msgstr "VÄ“lamais &rezultÄta formÄts:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 -msgid "Preferred &input format order:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 -msgid "Use &Roman numerals for series number" +msgid "Reset all disabled &confirmation dialogs" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 -msgid "Enable system &tray icon (needs restart)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 -msgid "Show ¬ifications in system tray" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 -msgid "Show &splash screen at startup" +msgid "Preferred &input format order:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 -msgid "Show cover &browser in a separate window (needs restart)" +msgid "Use &Roman numerals for series number" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 -msgid "Show &average ratings in the tags browser" +msgid "Enable system &tray icon (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 -msgid "Search as you type" +msgid "Show ¬ifications in system tray" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 -msgid "Automatically send downloaded &news to ebook reader" +msgid "Show &splash screen at startup" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 -msgid "&Delete news from library when it is automatically sent to reader" +msgid "Show cover &browser in a separate window (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 -msgid "&Number of covers to show in browse mode (needs restart):" +msgid "Show &average ratings in the tags browser" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 -msgid "Select visible &columns in library view" +msgid "Search as you type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +msgid "Automatically send downloaded &news to ebook reader" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 -msgid "Remove a user-defined column" +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:562 +msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 -msgid "Add a user-defined column" +msgid "Select visible &columns in library view" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 -msgid "Edit settings of a user-defined column" +msgid "Remove a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 -msgid "Use internal &viewer for:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +msgid "Add a user-defined column" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 -msgid "User Interface &layout (needs restart):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 -msgid "Disable all animations. Useful if you have a slow/old computer." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 -msgid "Disable &animations" +msgid "Edit settings of a user-defined column" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 -msgid "Show &donate button (restart)" +msgid "Use internal &viewer for:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 -msgid "&Toolbar" +msgid "User Interface &layout (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 -msgid "&Icon size:" +msgid "Disable all animations. Useful if you have a slow/old computer." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 -msgid "Show &text under icons:" +msgid "Disable &animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 -msgid "Add an email address to which to send books" +msgid "Show &donate button (restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 -msgid "&Add email" +msgid "&Toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 -msgid "Make &default" +msgid "&Icon size:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 -msgid "&Remove email" +msgid "Show &text under icons:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 +msgid "Add an email address to which to send books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +msgid "&Add email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 +msgid "Make &default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 +msgid "&Remove email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 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:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 #: /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:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 #: /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:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 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:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 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:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 msgid "Max. OPDS &ungrouped items:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 #: /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 " @@ -5558,33 +5622,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:604 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 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:605 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:610 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "&Add" msgstr "" @@ -5625,7 +5689,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Date" msgstr "Datums" @@ -5673,41 +5737,41 @@ msgstr "" msgid "Yes/No" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 msgid "No column selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:70 msgid "No column has been selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:74 msgid "Selected column is not a user-defined column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:105 msgid "No lookup name was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:107 msgid "" "The label must contain only letters, digits and underscores, and start with " "a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:116 msgid "No column heading was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:122 msgid "The lookup name %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:132 msgid "The heading %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:134 msgid "" "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" @@ -5835,7 +5899,7 @@ msgstr "" msgid "Delete from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author sort" msgstr "" @@ -5961,7 +6025,7 @@ msgid "Author s&ort: " msgstr "Autors &kÄrtoÅ¡anai: " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 -#: /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:368 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -5970,14 +6034,14 @@ msgstr "" "jÄkÄrto kÄ Dikenss, ÄŒÄrlzs." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:162 -#: /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:371 msgid "&Rating:" msgstr "&VÄ“rtÄ“jums:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 -#: /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 +#: /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 msgid "Rating of this book. 0-5 stars" msgstr "Å Ä«s grÄmatas vÄ“rtÄ“jums (0 - 5 zvaigznes)" @@ -5986,7 +6050,7 @@ msgid "No change" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 -#: /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:374 msgid " stars" msgstr " zvaigznes" @@ -5996,8 +6060,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 -#: /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 +#: /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 "Open Tag Editor" msgstr "AtvÄ“rt birku redaktoru" @@ -6037,210 +6101,237 @@ msgid "Remove &stored conversion settings for the selected books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 msgid "&Basic metadata" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:94 +msgid "Last modified: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:135 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:150 +msgid "Specify title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 +msgid "You must specify a title and author before generating a cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 msgid "Choose formats for " msgstr "IzvÄ“lieties formÄtus " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:223 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:234 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:235 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:284 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:327 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:434 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:470 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:473 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:552 msgid "Cannot use tag editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "The tags editor cannot be used if you have modified the tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "Downloading cover..." msgstr "LejupielÄdÄ“ vÄku..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:601 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:555 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:602 msgid "Could not fetch cover.
    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:587 msgid "The download timed out." msgstr "LejupielÄdes noildze." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:591 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:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:603 +msgid "" +"For the error message from each cover source, click Show details below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:610 msgid "Bad cover" msgstr "Slikts vÄks" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:644 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:674 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:637 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 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:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:750 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:751 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:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Edit Meta Information" msgstr "Rediģēt metadatus" -#: /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 msgid "Meta information" msgstr "Metadati" -#: /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:364 msgid "Swap the author and title" msgstr "MainÄ«t vietÄm autoru un nosaukumu" -#: /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:367 msgid "Author S&ort: " msgstr "" -#: /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:369 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:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "Remove unused series (Series that have no books)" 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:385 msgid "IS&BN:" msgstr "IS&BN:" -#: /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:386 msgid "Publishe&d:" msgstr "I&zdota:" -#: /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:389 msgid "dd MMM yyyy" msgstr "yyyy.MM.dd" -#: /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:390 msgid "&Date:" msgstr "&Datums:" -#: /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:391 msgid "&Comments" msgstr "&KometÄri" -#: /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:392 msgid "&Fetch metadata from server" msgstr "LejupielÄdÄ“t &metdatus" -#: /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:393 msgid "Available Formats" msgstr "Pieejamie formÄti" -#: /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:394 msgid "Add a new format for this book to the database" 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:396 msgid "Remove the selected formats for this book from the database." msgstr "" -#: /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:398 msgid "Set the cover for the book from the selected format" msgstr "UzstÄda vÄka attÄ“lu izvÄ“lÄ“tÄ formÄta grÄmatai" -#: /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:400 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Download &cover" msgstr "LejupielÄdÄ“t &vÄka attÄ“lu" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +msgid "Generate a default cover based on the title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "&Generate cover" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 msgid "Password needed" msgstr "NepiecieÅ¡ama parole" @@ -6516,21 +6607,21 @@ msgstr "" msgid "Choose formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 msgid "Authors" msgstr "Autori" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 msgid "Publishers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:114 msgid " (not on any book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:166 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" @@ -6584,7 +6675,7 @@ msgid "Select the content kind of the new category" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" msgstr "Vai esat pÄrliecinÄts?" @@ -6638,33 +6729,33 @@ msgstr "" msgid "%s (was %s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 msgid "Item is blank" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:91 msgid "No item selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:92 msgid "You must select one item from the list of Available items." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 msgid "No items selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 msgid "You must select at least one items from the list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:106 msgid "Are you certain you want to delete the following items?" msgstr "" @@ -7096,7 +7187,7 @@ msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:89 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:567 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:568 msgid "Card A" msgstr "" @@ -7105,7 +7196,7 @@ msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:91 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:569 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:570 msgid "Card B" msgstr "" @@ -7149,188 +7240,198 @@ msgid "Delete current saved search" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:302 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:108 msgid "%d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:334 -msgid "Connect to folder" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:340 -msgid "Connect to iTunes" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:360 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid "Email to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid " and delete from library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:373 -msgid "Setup email based sharing of books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "A" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "Add books" -msgstr "Pievienot grÄmatas" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "E" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "Edit metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "C" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "Convert books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -msgid "V" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 -msgid "View" -msgstr "SkatÄ«t" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:450 -msgid "Send to device" -msgstr "SÅ«tÄ«t uz ierÄ«ci" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:305 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:468 msgid "Choose calibre library to work with" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:336 +msgid "Connect to folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:341 +msgid "Connect to iTunes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:356 +msgid "Start Content Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:358 +msgid "Stop Content Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid "Email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid " and delete from library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:389 +msgid "Setup email based sharing of books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "Add books" +msgstr "Pievienot grÄmatas" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +msgid "E" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +msgid "Edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "C" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "Convert books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +msgid "V" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:568 +msgid "View" +msgstr "SkatÄ«t" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:466 +msgid "Send to device" +msgstr "SÅ«tÄ«t uz ierÄ«ci" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 msgid "F" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 msgid "Fetch news" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 msgid "S" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 msgid "Save to disk" msgstr "SaglabÄt diskÄ" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:455 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 msgid "Connect/share" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 msgid "Del" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 msgid "Remove books" msgstr "DzÄ“st grÄmatas" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 msgid "Browse the calibre User Manual" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 msgid "F1" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 msgid "Help" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 msgid "Ctrl+P" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 msgid "M" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 msgid "Merge book records" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:461 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:477 msgid "Open containing folder" msgstr "AtvÄ“rt katalogu" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:479 msgid "Show book details" msgstr "ParÄdÄ«t grÄmatas detaļas" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:481 msgid "Books by same author" msgstr "Å Ä« paÅ¡a autora grÄmatas" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:483 msgid "Books in this series" msgstr "Å Ä«s sÄ“rijas grÄmatas" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:485 msgid "Books by this publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 msgid "Books with the same tags" msgstr "GrÄmatas ar tÄdÄm paÅ¡Äm birkÄm" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:501 msgid "Edit metadata individually" msgstr "Rediģēt metadatus grÄmatai" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 msgid "Edit metadata in bulk" msgstr "Rediģēt metadatus masveidÄ" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:490 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 msgid "Download metadata and covers" msgstr "LejupielÄdÄ“t metadatus un vÄkus" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:510 msgid "Download only metadata" msgstr "LejupielÄdÄ“t tikai metadatus" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:512 msgid "Download only covers" msgstr "LejupielÄdÄ“t tikai vÄkus" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 msgid "Download only social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:521 msgid "Merge into first selected book - delete others" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:524 msgid "Merge into first selected book - keep others" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:532 msgid "Add books from a single directory" msgstr "Pievienot vienÄ katalogÄ esoÅ¡as grÄmatas" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 msgid "" "Add books from directories, including sub-directories (One book per " "directory, assumes every ebook file is the same book in a different format)" @@ -7339,7 +7440,7 @@ msgstr "" "(KatalogÄ viena grÄmata, katrs e-grÄmatu fails tiek uzskatÄ«tas par vienu un " "to paÅ¡u grÄmatu dažÄdos formÄtos)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 msgid "" "Add books from directories, including sub directories (Multiple books per " "directory, assumes every ebook file is a different book)" @@ -7348,61 +7449,61 @@ msgstr "" "(VairÄkas grÄmatas katalogÄ, atsevišķi e-grÄmatu faili tiek uzskatÄ«ti par " "dažÄdÄm grÄmatÄm)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:541 msgid "Add Empty book. (Book entry with no formats)" msgstr "Pievienot tukÅ¡u grÄmatu. (GrÄmatas ierakstu bez formÄtiem)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:553 msgid "Save to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:385 msgid "Save only %s format to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:542 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:388 msgid "Save only %s format to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 msgid "View specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:575 msgid "Remove selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:577 msgid "Remove files of a specific format from selected books.." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:580 msgid "Remove all formats from selected books, except..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:583 msgid "Remove covers from selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 msgid "Remove matching books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:603 msgid "Convert individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:605 msgid "Bulk convert" msgstr "Masveida pÄrveidoÅ¡ana" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:609 msgid "Create catalog of books in your calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:617 msgid "Run welcome wizard" msgstr "" @@ -7493,11 +7594,7 @@ msgstr "" msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:560 -msgid "Not allowed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:567 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -7594,7 +7691,7 @@ msgid "Do not check for updates" msgstr "NemeklÄ“t atjauninÄjumus" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:598 msgid "Calibre Library" msgstr "" @@ -7712,11 +7809,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:93 msgid "Book has neither title nor ISBN" msgstr "GrÄmatai nav ne nosaukuma ne ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:119 msgid "No matches found for this book" msgstr "" @@ -7962,69 +8059,69 @@ msgstr "" msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:367 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:363 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:368 msgid "Cannot configure before calibre is restarted." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:415 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:416 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:457 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:496 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:469 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:471 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:482 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:497 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:537 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. " "Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:563 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:566 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:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:570 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:625 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -8541,60 +8638,60 @@ msgstr "" msgid "Hide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:370 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:371 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:374 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:373 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:376 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:450 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:453 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:470 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:524 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525 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:533 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:536 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:590 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:665 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/finish_ui.py:42 #: /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 @@ -8602,7 +8699,7 @@ msgid "Welcome to calibre" msgstr "Laipni lūdzam calibre" #: /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/finish_ui.py:43 #: /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 @@ -8623,19 +8720,19 @@ msgstr "" msgid "&Devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:44 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 msgid "" "

    User Manual

    A User Manual is also available online." @@ -9367,31 +9464,31 @@ msgstr "" msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:565 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:566 msgid "Main" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1790 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1796 msgid "

    Migrating old database to ebook library in %s

    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1819 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1825 msgid "Copying %s" msgstr "KopÄ“ %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1836 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1929 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1935 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1970 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1976 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1992 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1998 msgid "Checked id" msgstr "" @@ -9517,7 +9614,7 @@ msgstr "" msgid "Replace whitespace with underscores." msgstr "Aizvietot atstarpes ar apakÅ¡svÄ«trÄm" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:258 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:263 msgid "Requested formats not available" msgstr "" @@ -9562,7 +9659,7 @@ msgid "" "disable grouping." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:93 +#: /home/kovid/work/calibre/src/calibre/library/server/base.py:94 msgid "Password to access your calibre library. Username is " msgstr "" @@ -9609,81 +9706,81 @@ msgstr "" msgid "Books sorted by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Newest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:49 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:34 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:78 msgid "Created by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:79 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:678 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:663 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:680 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:665 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:682 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:667 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:684 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:669 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:686 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:671 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:688 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:673 msgid "The language in which to display the user interface" msgstr "LietotÄja saskarnes valoda" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:690 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:675 msgid "The default output format for ebook conversions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:694 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:679 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:696 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:681 msgid "Read metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:698 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:683 msgid "The priority of worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:700 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:685 msgid "Swap author first and last names when reading metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:702 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:687 msgid "Add new formats to existing book records" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:707 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:692 msgid "List of named saved searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:708 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:693 msgid "User-created tag browser categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:710 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:695 msgid "How and when calibre updates metadata on the device." msgstr "" @@ -9812,6 +9909,9 @@ msgid "Control email delivery" msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:118 +msgid "Unknown section" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:140 msgid "Unknown feed" msgstr "" @@ -9844,11 +9944,11 @@ msgid "" "Do not download latest version of builtin recipes from the calibre server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:44 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:46 msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 msgid "The \"%s\" recipe needs a username and password." msgstr "" @@ -9908,33 +10008,33 @@ msgstr "" msgid "Downloading cover from %s" msgstr "LejupielÄdÄ“ vÄku no %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1002 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1003 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1192 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1172 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1263 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1243 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1274 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1254 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1291 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Fetching feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1438 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1418 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1454 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1434 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." diff --git a/src/calibre/translations/nb.po b/src/calibre/translations/nb.po index e7a2ce89a4..1d85b5e1c2 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-07-20 22:48+0000\n" -"PO-Revision-Date: 2010-07-22 16:42+0000\n" -"Last-Translator: Øyvind Øritsland \n" +"POT-Creation-Date: 2010-07-23 17:37+0000\n" +"PO-Revision-Date: 2010-07-23 16:24+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-07-23 04:05+0000\n" +"X-Launchpad-Export-Date: 2010-07-24 03:56+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -104,22 +104,22 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:242 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:814 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:815 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:855 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1149 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:492 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 @@ -130,13 +130,13 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:355 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:367 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1039 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1640 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1642 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:356 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:368 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:976 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1045 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1646 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1648 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1770 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 @@ -548,7 +548,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 #: /home/kovid/work/calibre/src/calibre/library/database2.py:187 #: /home/kovid/work/calibre/src/calibre/library/database2.py:200 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1524 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1530 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 msgid "News" msgstr "Nyheter" @@ -641,15 +641,15 @@ msgstr "Kommuniser med Hanvon N520 eBook leser" msgid "Communicate with The Book reader." msgstr "Kommuniser med The Book leser." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:52 msgid "Communicate with the SpringDesign Alex eBook reader." msgstr "Kommuniser med Spring Design Alex eBook leser." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:67 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:68 msgid "Communicate with the Azbooka" msgstr "Kommuniser med Azbooka" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:80 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:81 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "Kommuniser med Elonex EB 511 eBook reader" @@ -733,19 +733,19 @@ msgstr "Fjern bøker fra enhetens metadatalister..." msgid "Adding books to device metadata listing..." msgstr "Legg bøker til enhetens metadatalister..." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:15 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" msgstr "Kommuniser med Palm Pre" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:35 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:37 msgid "Communicate with the Booq Avant" msgstr "Kommuniser med Booq Avant" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:55 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:57 msgid "Communicate with the Sweex MM300" msgstr "Kommuniser med Sweex MM300" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:75 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:77 msgid "Communicate with the Pandigital Novel" msgstr "Kommuniser med Pandigital Novel" @@ -2138,7 +2138,7 @@ msgstr "Sammendrag:" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:408 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 @@ -2148,7 +2148,7 @@ msgstr "Nøkkelord" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:410 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 @@ -2757,7 +2757,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author" msgstr "Forfatter" @@ -3125,13 +3125,13 @@ msgid "User annotations generated from main library only" msgstr "Brukerkommentaer genereres kun fra hovedbiblioteket" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:611 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:707 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:941 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1059 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:668 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:976 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1094 msgid "No books selected" msgstr "Ingen bøker ble valgt" @@ -3177,7 +3177,7 @@ msgid "Uploading books to device." msgstr "Laster opp bøker til enheten." #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:145 msgid "Books" msgstr "Bøker" @@ -3250,8 +3250,8 @@ msgstr "Legg til i biblioteket" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:459 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1228 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1238 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1263 msgid "No book selected" msgstr "Ingen bøker ble valgt" @@ -3284,14 +3284,14 @@ msgid "Main memory" msgstr "Hovedminne" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:439 msgid "Storage Card A" msgstr "Lagring Kort A" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 msgid "Storage Card B" msgstr "Lagring Kort B" @@ -3304,7 +3304,7 @@ msgid "None of the selected books are on the device" msgstr "Ingen av de valgte bøkene finnes pÃ¥ enheten" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:598 msgid "Deleting books from device." msgstr "Sletter bøker fra enheten." @@ -3316,68 +3316,68 @@ 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/actions.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:583 msgid "" "The selected books will be permanently deleted from your device. Are " "you sure?" msgstr "" "De valgte bøkene vil bli slettet peremanent fra enheten. Er du sikker?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:610 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:608 msgid "Cannot download metadata" msgstr "Kan ikke laste ned metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:624 msgid "social metadata" msgstr "sosiale metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 msgid "covers" msgstr "Omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 msgid "metadata" msgstr "metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 msgid "Downloading %s for %d book(s)" msgstr "Laster ned %s for %d bok(bøker)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:654 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:652 msgid "Failed to download some metadata" msgstr "Klarte ikke Ã¥ laste ned en del av metadataene" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:655 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:653 msgid "Failed to download metadata for the following:" msgstr "Kunne ikke laste ned metadata for følgende:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:656 msgid "Failed to download metadata:" msgstr "Kunne ikke laste ned metadata:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:659 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:602 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Feil" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:667 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:704 msgid "Cannot edit metadata" msgstr "Kan ikke redigere metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:730 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:725 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 msgid "Cannot merge books" msgstr "Kan ikke slÃ¥ sammen bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:731 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:729 msgid "At least two books must be selected for merging" msgstr "Minst to bøker mÃ¥ velges for Ã¥ slÃ¥ sammen bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:733 msgid "" "All book formats and metadata from the selected books will be added to the " "first selected book.

    The second and subsequently selected " @@ -3389,7 +3389,7 @@ msgstr "" "ikke bli slettet eller endret.

    Vennligst bekreft at du ønsker å " "fortsette." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:746 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:744 msgid "" "All book formats and metadata from the selected books will be merged into " "the first selected book.

    After merger the second and " @@ -3405,7 +3405,7 @@ msgstr "" "valgte bøker vil bli slettet permanent fra din datamaskin.

    Er " "du sikker på at duvil fortsette?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:756 msgid "" "You are about to merge more than 5 books. Are you sure you want to " "proceed?" @@ -3413,45 +3413,45 @@ msgstr "" "Du er i ferd med å slå sammen fler enn 5 bøker. Er du sikker på at du " "ønsker å fortsette?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:910 msgid "Cannot save to disk" msgstr "Kan ikke lagre til disk" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:913 msgid "Choose destination directory" msgstr "Velg mottaksmappe" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:946 msgid "Error while saving" msgstr "Feil ved lagring" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:912 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:947 msgid "There was an error while saving." msgstr "En feil oppsto ved lagring" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:920 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:954 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:955 msgid "Could not save some books" msgstr "Kunne ikke lagre enkelte bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:921 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:956 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/actions.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:977 msgid "No books selected to generate catalog for" msgstr "Ingen bøker ble valgt for å produsere kataloger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:994 msgid "Generating %s catalog..." msgstr "Produserer %s katalog..." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:964 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:999 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "Ingen bøker ble funnet" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:965 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1000 msgid "" "No books to catalog\n" "Check exclude tags" @@ -3459,49 +3459,49 @@ msgstr "" "Ingen bøker til katalog\n" "Sjekk utelatte emneord" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:975 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1010 msgid "Catalog generated." msgstr "Katalog produsert." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1013 msgid "Export Catalog Directory" msgstr "Eksporter katalogdirektorat" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:979 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1014 msgid "Select destination for %s.%s" msgstr "Velg plassering for %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:995 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1030 msgid "Fetching news from " msgstr "Skaffer nyheter fra " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1044 msgid " fetched." msgstr " funnet." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1058 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1093 msgid "Cannot convert" msgstr "Kan ikke konvertere" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1087 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1122 msgid "Starting conversion of %d book(s)" msgstr "Starter konvertering av %d bok (bøker)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1238 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1299 msgid "Cannot view" msgstr "Kan ikke vise" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1209 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1244 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "Velg format som skal vises" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1252 msgid "Multiple Books Selected" msgstr "Flere bøker ble valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1218 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1253 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 " @@ -3513,11 +3513,11 @@ msgstr "" "startet denne prosessen, kan den ikke stanses før den er fullført. Ønsker du " "å fortsette?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1227 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1262 msgid "Cannot open folder" msgstr "Kan ikke åpne folder" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1300 msgid "%s has no available formats." msgstr "%s har ikke tilgjengelig formater." @@ -3542,7 +3542,7 @@ msgid "The specified directory could not be processed." msgstr "Den spesifiserte mappen kunne ikke prosesseres" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:804 msgid "No books" msgstr "Ingen bøker" @@ -3939,8 +3939,8 @@ msgstr "E-bok valg" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1487 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1505 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1493 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1511 msgid "Catalog" msgstr "Katalog" @@ -4411,33 +4411,33 @@ msgstr "" "som mulig." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 msgid "Choose cover for " msgstr "Velg omslag for " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:114 msgid "Cannot read" msgstr "Kan ikke lese" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 msgid "You do not have permission to read the file: " msgstr "Du har ikke tillatelse til å lese denne filen: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 msgid "Error reading file" msgstr "Feil under lesing av fil" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 msgid "

    There was an error reading from file:
    " msgstr "

    En feil oppsto under lesing fra filen:
    " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:132 msgid " is not a valid picture" msgstr " er ikke et tillatt bilde" @@ -5038,100 +5038,100 @@ msgstr "emneord som skal fjernes" msgid "No details available." msgstr "Ingen detaljer tilgjengelig." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:162 msgid "Device no longer connected." msgstr "Enheten er ikke lenger koblet til." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:278 msgid "Get device information" msgstr "Få informasjon om enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:289 msgid "Get list of books on device" msgstr "Få en liste over bøker på enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:299 msgid "Get annotations from device" msgstr "Motta kommentar fra enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:308 msgid "Send metadata to device" msgstr "Send metadata til enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:313 msgid "Send collections to device" msgstr "Overfør samlingene til enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 msgid "Upload %d books to device" msgstr "Last opp %d bøker til enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Delete books from device" msgstr "Slett bøker fra enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:369 msgid "Download books from device" msgstr "Last ned bøker fra enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:379 msgid "View book on device" msgstr "Se min bok på enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:413 msgid "Set default send to device action" msgstr "Sett stadart til send til enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:419 msgid "Send to main memory" msgstr "Send til hovedminnet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 msgid "Send to storage card A" msgstr "Send til lagringskort A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 msgid "Send to storage card B" msgstr "Send til lagringskort B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:437 msgid "Main Memory" msgstr "Hovedminne" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:448 msgid "Send and delete from library" msgstr "Overfør og slett fra biblioteket" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:449 msgid "Send specific format" msgstr "Overfør spesifisert format" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:485 msgid "Eject device" msgstr "Koble fra enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 msgid "Fetch annotations (experimental)" msgstr "Hent kommentarer (eksperimentell)" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:603 msgid "Error communicating with device" msgstr "Feil ved kommunikasjonen med enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:618 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:625 msgid "Select folder to open as device" msgstr "Velg mappe som skal åpnes som enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 msgid "Failed" msgstr "Mislykket" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:668 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:675 msgid "Error talking to device" msgstr "Feil ved komminikasjonen med enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -5139,124 +5139,124 @@ 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/device.py:711 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:718 msgid "Device: " msgstr "Enhet: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:713 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 msgid " detected." msgstr " Funnet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:798 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 msgid "selected to send" msgstr "Velg for å sende" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:803 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810 msgid "Choose format to send to device" msgstr "Velg format for å sende til enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "No device" msgstr "Ingen enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 msgid "Cannot send: No device is connected" msgstr "Kan ikke sende: Ingen enhet er koblet til" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:816 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 msgid "No card" msgstr "Ingen kort" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "Cannot send: Device has no storage card" msgstr "Kan ikke sende: Enheten har ikke noe lagringskort" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 msgid "E-book:" msgstr "E-bok" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 msgid "Attached, you will find the e-book" msgstr "Vedlagt finner du e-boken" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 msgid "by" msgstr "av" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 msgid "in the %s format." msgstr "i %s format" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:887 msgid "Sending email to" msgstr "Sender e-post til" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:910 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1193 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:917 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1019 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1081 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 msgid "No suitable formats" msgstr "Ingen passende formater" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 msgid "Auto convert the following books before sending via email?" msgstr "Autokonverter de følgende bøkene før du sender dem via e-post?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" "Kunne ikke sende følgende bøker som e-post da ingen passende formater ble " "funnet:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:944 msgid "Failed to email books" msgstr "Kunne ikke sende bøker via e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945 msgid "Failed to email the following books:" msgstr "Kunne ikke sende de følgende bøkene via e-post:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:949 msgid "Sent by email:" msgstr "Sent som e-post:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 msgid "News:" msgstr "Nyheter:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 msgid "Attached is the" msgstr "Vedlagt følger" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 msgid "Sent news to" msgstr "Sent nyheter til" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 msgid "Auto convert the following books before uploading to the device?" msgstr "Autokonverter følgende bøker før du laster dem opp til enheten?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending catalogs to device." msgstr "Sender kataloger til enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 msgid "Sending news to device." msgstr "Sender nyheter til enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1167 msgid "Sending books to device." msgstr "Sender bøker til enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1209 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." @@ -5265,11 +5265,11 @@ msgstr "" "ble funnet. Konverter boken/bøkene til et format som er støttet av din enhet " "først." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1271 msgid "No space on device" msgstr "Ikke plass på enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1272 msgid "" "

    Cannot upload books to device there is no more free space available " msgstr "" @@ -6247,23 +6247,23 @@ msgstr "Vurdering, vist ved stjerner" msgid "Yes/No" msgstr "Ja/Nei" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 msgid "No column selected" msgstr "Ingen kolonne ble valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:70 msgid "No column has been selected" msgstr "Ingen kolonne har blitt valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:74 msgid "Selected column is not a user-defined column" msgstr "Valgte kolonne er ikke en brukerdefinert kolonne" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:105 msgid "No lookup name was provided" msgstr "Ingen oppslagsord er angitt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:107 msgid "" "The label must contain only letters, digits and underscores, and start with " "a letter" @@ -6271,19 +6271,19 @@ msgstr "" "Merkelappen kan kun inneholde bokstaver, tall og understreker, og må starte " "med en bokstav" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:116 msgid "No column heading was provided" msgstr "Ingen kolonneoverskrift er angitt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:122 msgid "The lookup name %s is already used" msgstr "Søkenavnet %s er allerede benyttet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:132 msgid "The heading %s is already used" msgstr "Overskriften %s er allerede benyttet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:134 msgid "" "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" @@ -6427,7 +6427,7 @@ msgstr "Format" msgid "Delete from device" msgstr "Slett fra enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author sort" msgstr "Sortering blant forfattere" @@ -6646,124 +6646,128 @@ msgstr "&Grunnleggende metadata" msgid "&Custom metadata" msgstr "&Brukervalgte metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:90 +msgid "Last modified: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:131 msgid "Not a valid picture" msgstr "Ikke gylding bilde" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:144 msgid "Choose formats for " msgstr "Velg formater for " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:175 msgid "No permission" msgstr "Ingen tilatelse" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:176 msgid "You do not have permission to read the following files:" msgstr "Du har ikke tillatelse til å lese fra følgende filer:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:204 msgid "No format selected" msgstr "Ingen formater er valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:215 msgid "Could not read metadata" msgstr "Kunne ikke lese metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:216 msgid "Could not read metadata from %s format" msgstr "Kunne ikke lese metadata fra %s formatet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:270 msgid "Could not read cover" msgstr "Kunne ikke lese omslaget" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:265 msgid "Could not read cover from %s format" msgstr "Kunne ikke lese omslaget fra %s formatet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:271 msgid "The cover in the %s format is invalid" msgstr "Omslaget i %s format er ikke gyldig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:308 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:434 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:445 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:450 msgid "This ISBN number is valid" msgstr "Dette ISBN-nummeret er gyldig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:453 msgid "This ISBN number is invalid" msgstr "Dette ISBN-nummeret er ugyldig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:532 msgid "Cannot use tag editor" msgstr "Kan ikke bruke verktøy for emneordredigering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:533 msgid "The tags editor cannot be used if you have modified the tags" msgstr "" "Verktøyet for emneordredigering kan ikke benyttes dersom du har modifisert " "emneordene" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "Downloading cover..." msgstr "Laster ned omslag..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:576 msgid "Cannot fetch cover" msgstr "Kan ikke hente omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:577 msgid "Could not fetch cover.
    " msgstr "Kunne ikke hente omslag.
    " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:567 msgid "The download timed out." msgstr "Tidsavbrudd for nedlasting." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 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:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:583 msgid "Bad cover" msgstr "Dårlig omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:584 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:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:617 msgid "There were errors" msgstr "Det oppsto feil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:618 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:636 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:647 msgid "Cannot fetch metadata" msgstr "Kan ikke hente metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:637 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:648 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:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:719 msgid "Permission denied" msgstr "Ingen adgang" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:720 msgid "Could not open %s. Is it being used by another program?" msgstr "Kunne ikke åpne %s. Blir den benyttet i et annet program?" @@ -7132,21 +7136,21 @@ msgstr "" msgid "Choose formats" msgstr "Velg formater" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 msgid "Authors" msgstr "Forfattere" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 msgid "Publishers" msgstr "Forlag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:114 msgid " (not on any book)" msgstr " (ikke i noen av bøkene)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:166 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" @@ -7202,7 +7206,7 @@ msgid "Select the content kind of the new category" msgstr "Velg type innhold for den nye kategorien" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" msgstr "Er du sikker?" @@ -7263,34 +7267,34 @@ msgstr "" msgid "%s (was %s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 msgid "Item is blank" msgstr "Inneholder ingenting" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" "Innholdet kan ikke stilles inn for å gjøre ingenting. Slett det istedet." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:91 msgid "No item selected" msgstr "Intet innhold ble valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:92 msgid "You must select one item from the list of Available items." msgstr "Du må velge innhold fra listen over tilgjengelig innhold." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 msgid "No items selected" msgstr "Intet innhold bel valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 msgid "You must select at least one items from the list." msgstr "Du må velge minst ett av innholdet i listen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:106 msgid "Are you certain you want to delete the following items?" msgstr "Er du sikker på at du ønsker å slette det følgende innholdet?" @@ -7759,7 +7763,7 @@ msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:89 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:567 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:568 msgid "Card A" msgstr "Kort A" @@ -7768,7 +7772,7 @@ msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:91 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:569 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:570 msgid "Card B" msgstr "Kort B" @@ -8157,11 +8161,11 @@ msgstr "Vis kolonne" msgid "Restore default layout" msgstr "Gjenopprett standard visning" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:566 msgid "Not allowed" msgstr "Ikke tillatt" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:567 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -10272,31 +10276,31 @@ msgstr "" msgid "%sAverage rating is %3.1f" msgstr "%sGjennomsnittlig vurdering er %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:565 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:566 msgid "Main" msgstr "Hovedvalg" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1790 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1796 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:1819 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1825 msgid "Copying %s" msgstr "Kopierer %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1836 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Compacting database" msgstr "Komprimerer databasen" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1929 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1935 msgid "Checking SQL integrity..." msgstr "Sjekker for SQL integritet..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1970 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1976 msgid "Checking for missing files." msgstr "Sjekker etter savnede filer." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1992 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1998 msgid "Checked id" msgstr "Sjekker ID" @@ -10555,15 +10559,15 @@ msgstr "Bøker sortert av " msgid "Newest" msgstr "Nyeste" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:49 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:34 msgid "%sUsage%s: %s\n" msgstr "%sBruksområde%s: %s\n" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:78 msgid "Created by " msgstr "Utviklet av " -#: /home/kovid/work/calibre/src/calibre/utils/config.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:79 msgid "" "Whenever you pass arguments to %prog that have spaces in them, enclose the " "arguments in quotation marks." @@ -10571,63 +10575,63 @@ msgstr "" "Når du sender argumenter til %prog som har mellomrom i dem, ram inn " "argumentene i gåseøyne." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:678 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:663 msgid "Path to the database in which books are stored" msgstr "Bane til databasen der bøker lagres" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:680 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:665 msgid "Pattern to guess metadata from filenames" msgstr "Mønster for å vurdere metadata fra filnavnene" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:682 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:667 msgid "Access key for isbndb.com" msgstr "Tilgangsnøkkel for isbndb.com" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:684 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:669 msgid "Default timeout for network operations (seconds)" msgstr "Standard tidsavbrudd for nettverksoperasjoner (i sekunder)" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:686 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:671 msgid "Path to directory in which your library of books is stored" msgstr "Bane til direktoratet der ditt bibliotek av bøker er lagret." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:688 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:673 msgid "The language in which to display the user interface" msgstr "Språket som skal benyttes for å vise brukers grensesnitt" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:690 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:675 msgid "The default output format for ebook conversions." msgstr "Standard utdataformat for e-bok konverteringer." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:694 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:679 msgid "Ordered list of formats to prefer for input." msgstr "Bestilt liste av formater som foretrekkes for inndata." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:696 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:681 msgid "Read metadata from files" msgstr "Les metadata fra filer" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:698 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:683 msgid "The priority of worker processes" msgstr "Arbeidsprosessenes prioritet" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:700 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:685 msgid "Swap author first and last names when reading metadata" msgstr "Bytt mellom forfatterenes for og etternavn når den leser metadata" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:702 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:687 msgid "Add new formats to existing book records" msgstr "Legg til nye formater til eksisterende oppføringer" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:707 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:692 msgid "List of named saved searches" msgstr "Liste av navngitte søk" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:708 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:693 msgid "User-created tag browser categories" msgstr "Brukerdefinerte kategorier for emneordsøk" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:710 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:695 msgid "How and when calibre updates metadata on the device." msgstr "" diff --git a/src/calibre/translations/nl.po b/src/calibre/translations/nl.po index 04bd451966..606d4e99dd 100644 --- a/src/calibre/translations/nl.po +++ b/src/calibre/translations/nl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-07-20 22:48+0000\n" -"PO-Revision-Date: 2010-07-22 22:46+0000\n" -"Last-Translator: Koen Mercken \n" +"POT-Creation-Date: 2010-08-07 01:39+0000\n" +"PO-Revision-Date: 2010-08-06 23:43+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-07-23 04:04+0000\n" +"X-Launchpad-Export-Date: 2010-08-08 03:40+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365 @@ -31,12 +31,12 @@ msgstr "Doet helemaal niets" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:499 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:398 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:506 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:405 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:428 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:402 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:335 @@ -44,16 +44,16 @@ msgstr "Doet helemaal niets" #: /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:235 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:278 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:281 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:236 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:282 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:317 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:332 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -104,44 +104,44 @@ msgstr "Doet helemaal niets" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:240 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:234 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:236 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:814 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:829 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:855 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1149 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 #: /home/kovid/work/calibre/src/calibre/library/cli.py:213 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:355 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:367 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1039 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1640 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1642 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:356 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:368 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:976 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1045 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1646 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1648 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1770 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:199 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 @@ -260,11 +260,11 @@ msgstr "" "nuttig voor documenten die geen codering ingesteld hebben, of die een " "foutieve tekencodering aangeven." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:237 msgid "Conversion Output" msgstr "Conversie Uitvoer" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:251 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." @@ -286,7 +286,7 @@ msgstr "" "niets over het invoer document weet." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:412 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:414 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -297,62 +297,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Dit profiel is bedoeld voor de SONY PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:447 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:449 msgid "This profile is intended for the SONY PRS-900." msgstr "Dit profiel is bedoeld voor de SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:477 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 msgid "This profile is intended for the Microsoft Reader." msgstr "Dit profiel is bedoeld voor de Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:490 msgid "This profile is intended for the Mobipocket books." msgstr "Dit profiel is bedoeld voor de Mobipocket boeken." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Dit profiel is bedoeld voor de Hanlin V3 en zijn afgeleiden." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Dit profiel is bedoeld voor de Hanlin V5 en zijn afgeleiden." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:521 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:523 msgid "This profile is intended for the Cybook G3." msgstr "Dit profiel is bedoeld voor de Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:534 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 msgid "This profile is intended for the Cybook Opus." msgstr "Dit profiel is bedoeld voor de Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:545 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:547 msgid "This profile is intended for the Amazon Kindle." msgstr "Dit profiel is bedoeld voor de Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:580 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:584 msgid "This profile is intended for the Irex Illiad." msgstr "Dit profiel is bedoeld voor de Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:593 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Dit profiel is bedoeld voor de IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:607 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:611 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Dit profiel is bestemd voor de IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:621 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:625 msgid "This profile is intended for the B&N Nook." msgstr "Dit profiel is bedoeld voor de B&N Nook." @@ -369,25 +369,25 @@ msgstr "" "Dit profiel probeert zinnige instellingen te gebruiken, en is handig om een " "document te maken dat op een computer of meedere apparaten gelezen wordt." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:259 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Bedoeld voor de iPad en soortgelijke apparaten met een resolutie van 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 msgid "This profile is intended for the Kobo Reader." msgstr "Dit profiel is bedoeld voor de Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:438 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440 msgid "This profile is intended for the SONY PRS-300." msgstr "Dit profiel is bedoeld voor de SONY PRS-300" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:456 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:458 msgid "This profile is intended for the 5-inch JetBook." msgstr "Dit profiel is bedoeld voor de 5-inch JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:465 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -395,39 +395,39 @@ msgstr "" "Dit profiel is bedoeld voor de SONY PRS reeks. De 300/600 etc, in " "horizontale schermmodus. Vooral handig voor stripboeken." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:566 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Dit profiel is bedoeld voor de Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Installed plugins" msgstr "Geïnstalleerde Plug-ins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Mapping for filetype plugins" msgstr "Binding voor bestandstype plug-ins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 msgid "Local plugin customization" msgstr "Lokale plug-in aanpassing" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 msgid "Disabled plugins" msgstr "Uitgeschakelde plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:37 msgid "Enabled plugins" msgstr "Ingeschakelde plug-ins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:84 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:85 msgid "No valid plugin found in " msgstr "Geen geldige plugin gevonden in " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:478 msgid "Initialization of plugin %s failed with traceback:" msgstr "Initialisatie van de plugin %s is mislukt met een traceback:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 msgid "" " %prog options\n" "\n" @@ -439,19 +439,19 @@ msgstr "" " Pas calibre aan door externe plug-ins te laden.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:507 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "" "Voeg een plug-in toe door het pad op te geven naar het zip-bestand waarin " "deze zich bevindt." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:509 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:519 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" "Verwijder een aangepaste plug-in op naam. Heeft geen effect op ingebouwde " "plug-ins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:521 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." @@ -459,15 +459,15 @@ msgstr "" "Personaliseer plugin. Geef een naam van een plugin en personalisatie string " "gescheiden met een komma." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:523 msgid "List all installed plugins" msgstr "Toon geïnstalleerde plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:515 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:525 msgid "Enable the named plugin" msgstr "Activeer de genoemde plugin" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:527 msgid "Disable the named plugin" msgstr "Deactiveer de genoemde plugin" @@ -475,7 +475,7 @@ msgstr "Deactiveer de genoemde plugin" msgid "Communicate with Android phones." msgstr "Communiceer met Android telefoons." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:48 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -483,7 +483,7 @@ msgstr "" "Komma-gescheiden lijst van folders om e-boeken naar toe te sturen op het " "apparaat. De eerste die wordt gevonden zal worden gebruikt." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:90 msgid "Communicate with S60 phones." msgstr "Communiceert met S60 telefoons" @@ -542,13 +542,13 @@ msgstr "" "Klik op 'Details weergeven' voor een overzicht." #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2471 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:807 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:813 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:841 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:851 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 #: /home/kovid/work/calibre/src/calibre/library/database2.py:187 #: /home/kovid/work/calibre/src/calibre/library/database2.py:200 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1524 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1530 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 msgid "News" msgstr "Nieuws" @@ -609,7 +609,7 @@ msgid "Use an arbitrary folder as a device." msgstr "Gebruik een willekeurige map als apparaat." #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:14 msgid "Device Interface" msgstr "apparaat interface" @@ -641,15 +641,15 @@ msgstr "Communiceer met de Hanvon N520 eBoek lezer." msgid "Communicate with The Book reader." msgstr "Er wordt met de The Book reader gecommuniceerd." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:52 msgid "Communicate with the SpringDesign Alex eBook reader." msgstr "Communiceert met de SpringDesign Alex eBook reader." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:67 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:68 msgid "Communicate with the Azbooka" msgstr "Verbinden met de Azbooka" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:80 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:81 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "Communicatie met Elonex EB511 ebook reader" @@ -659,7 +659,7 @@ msgstr "Communiceer met de IRex Illiad e-boek lezer." #: /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:38 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:42 msgid "John Schember" msgstr "John Schember" @@ -699,53 +699,67 @@ msgstr "Communiceer met de Kindle DX eBook lezer." msgid "Communicate with the Kobo Reader" msgstr "Communiceer met de Kobo Reader" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:51 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:54 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:57 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:159 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:64 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:139 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:56 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:59 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:161 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:136 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 msgid "Getting list of books on device..." msgstr "Bezig met het ophalen van boeken van het apparaat..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:219 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:263 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:264 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:221 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:265 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:253 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 msgid "Removing books from device..." msgstr "Bezig om boeken te verwijderen van apparaat..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:269 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:278 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:283 msgid "Removing books from device metadata listing..." msgstr "Verwijderen boeken van apparaat metagegevens lijst..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:279 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:313 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:210 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:240 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:281 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:247 msgid "Adding books to device metadata listing..." msgstr "Toevoegen boeken aan apparaat metagegevens lijst..." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:15 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:441 +msgid "Not Implemented" +msgstr "Niet geïmplementeerd" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:367 +msgid "" +"\".kobo\" files do not exist on the device as books instead, they are rows " +"in the sqlite database. Currently they cannot be exported or viewed." +msgstr "" +"\".kobo\" bestanden bevinden zich niet op het apparaat als boeken, in plaats " +"daarvan zijn het rijen in de sqlite database. Op dit moment kunnen ze niet " +"geëxporteerd of bekeken worden." + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" msgstr "Communiceer met de Palm Pre" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:35 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:37 msgid "Communicate with the Booq Avant" msgstr "Verbinden met de Booq Avant" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:55 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:58 msgid "Communicate with the Sweex MM300" msgstr "Communiceer met de Sweex MM300" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:75 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:78 msgid "Communicate with the Pandigital Novel" msgstr "Communiceer met de Pandigital Novel." @@ -789,7 +803,7 @@ msgstr "" "Komma gescheiden lijst van metagegevens velden om in collecties te " "veranderen op de lezer. Mogelijkheden onder andere: " -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:140 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:144 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "Naamloos" @@ -810,23 +824,23 @@ msgstr "Verbinden met de Newsmy reader." msgid "Communicate with the iPapyrus reader." msgstr "Communiceer met de iPapyrus reader." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:245 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "Schijf %s is niet gevonden. Probeer te herstarten." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "Kan mount punt %s niet vinden. Probeer een herstart." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:490 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500 msgid "Unable to detect the %s disk drive." msgstr "Schijf %s niet gevonden" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:583 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593 msgid "Could not find mount helper: %s." msgstr "Mount helper: %s niet gevonden." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:595 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." @@ -834,25 +848,25 @@ msgstr "" "Schijf %s kan niet worden gevonden. Uw kernel gebruikt waarschijnlijk een " "verouderde versie van SYSFS" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:603 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613 msgid "Unable to mount main memory (Error code: %d)" msgstr "Niet mogelijk om met hoofdgeheugen te verbinden (Error code: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:740 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:742 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752 msgid "The reader has no storage card in this slot." msgstr "De lezer heeft geen opslag kaart in dit slot." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:744 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754 msgid "Selected slot: %s is not supported." msgstr "Geselecteerd slot: %s is niet ondersteund." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783 msgid "There is insufficient free space in main memory" msgstr "Er is onvoldoende vrije ruimte in het hoofdgeheugen." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:777 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787 msgid "There is insufficient free space on the storage card" msgstr "Er is onvoldoende vrije plaats op de geheugenkaart" @@ -890,20 +904,20 @@ msgstr "Sjabloon dat bepaald hoe boeken worden opgeslagen" msgid "Extra customization" msgstr "Extra Persoonlijke instellingen" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 msgid "Communicate with an eBook reader." msgstr "Communiceer met een e-boek lezer." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:57 msgid "Get device information..." msgstr "Haal lezer informatie op..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:190 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:192 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:194 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:196 msgid "Transferring books to device..." msgstr "Bezig om de boeken naar het aparaat over te zetten..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:314 msgid "Sending metadata to device..." msgstr "Versturen van metagegevens naar apparaat..." @@ -994,15 +1008,15 @@ msgstr "Geef boek ID" msgid "Set font delta" msgstr "Kies lettertype verschil" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:178 msgid "Rendered %s" msgstr "Gegenereerd %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:204 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:181 msgid "Failed %s" msgstr "Mislukt %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:261 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:235 msgid "" "Failed to process comic: \n" "\n" @@ -1012,7 +1026,7 @@ msgstr "" "\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:253 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 " @@ -1022,22 +1036,22 @@ msgstr "" "Waarden van minder dan 256 kunnen resulteren in wazige tekst op uw apparaat " "als de strips in EPUB formaat worden gemaakt." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:257 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Geen kleur normalisatie (contrast verbetering) voor afbeeldingen. Standaard: " "Nee (False)" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Behoudt afbeelding aspect ratio. Standaard is beeldvullend." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:262 msgid "Disable sharpening." msgstr "Geen aanscherpen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:264 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -1045,11 +1059,11 @@ msgstr "" "Schakel afknippen van strip paginas uit. Voor sommige strips, afknippen kan " "ook inhoud verwijderen samen met de marges." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:267 msgid "Don't split landscape images into two portrait images" msgstr "Splits landscape afbeeldingen niet in twee portret afbeeldingen" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:269 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -1057,7 +1071,7 @@ msgstr "" "Behoudt aspect ratio en schaal afbeelding aan de hand van de schermhoogte " "als beeld breedte voor het bekijken in landscape modus." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:272 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -1065,7 +1079,7 @@ msgstr "" "Gebruik voor rechts-naar-links publicaties zoals manga. Hierdoor worden " "landscape paginas gesplitst in portret paginas van rechts naar links." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:276 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -1073,7 +1087,7 @@ msgstr "" "Activeer ontspikkelen. Verminderd spikkel ruis. Dit kan de verwerkingstijd " "flink verlengen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:305 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -1081,7 +1095,7 @@ msgstr "" "Sorteer de bestanden in de comic niet alfabetisch op naam - gebruik de " "voldorde waarin ze zijn toegevoegd aan de comic." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:309 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 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 " @@ -1091,16 +1105,16 @@ msgstr "" "geconverteerd. U kunt experimenteren om te zien welk formaat de optimale " "grootte en visuele resultaten op uw apparaat genereren." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:313 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Apply no processing to the image" msgstr "Bewerk de afbeelding niet" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "Do not convert the image to grayscale (black and white)" msgstr "Zet afbeelding niet om in grijswaarden (zwart en wit)" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:463 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:437 msgid "Page" msgstr "Pagina" @@ -1728,17 +1742,22 @@ msgstr "U dient een epub bestand te specifieren." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:17 msgid "Fix unmanifested files" -msgstr "" +msgstr "Herstel ontbrekende bestanden in het manifest" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:21 msgid "" "Fix unmanifested files. epub-fix can either add them to the manifest or " "delete them as specified by the delete unmanifested option." msgstr "" +"Herstel ontbrekende bestanden in het manifest. epub-fix kan deze toevoegen " +"aan het manifest of ze wissen zoals gespecifieerd door de functie wis " +"bestanden die niet in het manifest zijn opgenomen." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:32 msgid "Delete unmanifested files instead of adding them to the manifest" msgstr "" +"Wis bestanden die niet in het manifest zijn opgenomen in plaats van ze toe " +"te voegen aan het manifest." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:56 msgid "" @@ -2107,7 +2126,7 @@ msgstr "De monospace familie om toe te voegen" msgid "Comic" msgstr "Stripverhaal" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 @@ -2116,11 +2135,11 @@ msgstr "Stripverhaal" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:543 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:550 msgid "Title" msgstr "Titel" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 @@ -2128,18 +2147,18 @@ msgstr "Titel" msgid "Author(s)" msgstr "Auteur(s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "Uitgeverij" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 #: /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:400 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:401 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 @@ -2151,9 +2170,9 @@ msgstr "Producent" msgid "Comments" msgstr "Opmerkingen" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:408 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:409 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 @@ -2161,9 +2180,9 @@ msgstr "Opmerkingen" msgid "Tags" msgstr "Labels" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:410 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 @@ -2171,22 +2190,22 @@ msgstr "Labels" msgid "Series" msgstr "Serie" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:412 msgid "Language" msgstr "Taal" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:414 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 msgid "Timestamp" msgstr "Tijdsaanduiding" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:416 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 msgid "Published" msgstr "Gepubliceerd" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:418 msgid "Rights" msgstr "Rechten" @@ -2321,43 +2340,75 @@ msgstr "omslag weggeschreven naar" msgid "No cover found" msgstr "Geen kaft gevonden" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:15 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:27 msgid "Cover download" msgstr "Boek omslag download" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:79 +msgid "Download covers from openlibrary.org" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:136 +msgid "ISBN: %s not found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:117 +msgid "Download covers from librarything.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 +msgid "LibraryThing.com timed out. Try again later." +msgstr "Verbinding met LibraryThing.com verbroken. Probeer later nog eens." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:135 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" +"Omslag kan niet worden gedownload, omdat de server bezig is. Probeer het " +"later nog eens." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 +msgid "LibraryThing.com server error. Try again later." +msgstr "LibraryThing.com server fout. Probeer het later nog eens." + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" msgstr "Download metagegevens van Douban.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:50 msgid "Metadata download" msgstr "Metagegevens download" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "ratings" msgstr "waarderingen" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:127 msgid "tags" msgstr "tags" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 msgid "description/reviews" msgstr "Omschrijving/Beoordelingen" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 msgid "Download %s from %s" msgstr "Download %s van %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:155 msgid "Downloads metadata from Google Books" msgstr "Download metagegevens van Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:172 msgid "Downloads metadata from isbndb.com" msgstr "Download metagegevens van isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:184 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:200 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2365,11 +2416,11 @@ msgstr "" "Om isbndb.com te gebruiken moet je je opgeven voor een %sgratis account%s, " "en je toegangs sleutel hieronder invoeren." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:210 msgid "Downloads social metadata from amazon.com" msgstr "Download sociale metadata (labels, waarderingen, etc) van amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:213 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:229 msgid "Downloads series/tags/rating information from librarything.com" msgstr "Download series/labels/waardering-informatie van librarything.com" @@ -2414,26 +2465,10 @@ msgstr "De titel van het boek om naar te zoeken." msgid "The publisher of the book to search for." msgstr "De uitgever van het boek om naar te zoeken." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 -msgid "LibraryThing.com timed out. Try again later." -msgstr "Verbinding met LibraryThing.com verbroken. Probeer later nog eens." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 -msgid "" -"Could not fetch cover as server is experiencing high load. Please try again " -"later." -msgstr "" -"Omslag kan niet worden gedownload, omdat de server bezig is. Probeer het " -"later nog eens." - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:76 msgid " not found." msgstr " niet gevonden." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 -msgid "LibraryThing.com server error. Try again later." -msgstr "LibraryThing.com server fout. Probeer het later nog eens." - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 msgid "" "\n" @@ -2778,7 +2813,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author" msgstr "Auteur" @@ -2928,7 +2963,7 @@ msgstr "" "Specificeer de karakter codering van het uitvoer document. Standaard is " "cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:200 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:194 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3117,7 +3152,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:97 msgid "tag browser categories not to display" -msgstr "markeer de browser catagorieen de verborgen moeten blijven" +msgstr "markeer de browsercategorieen die verborgen moeten blijven" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:99 msgid "The layout of the user interface" @@ -3125,15 +3160,14 @@ msgstr "De indeling van de gebruikers interface" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:101 msgid "Show the average rating per item indication in the tag browser" -msgstr "" -"Laat de gemiddelde waardering per item in de catagorieen browser zien" +msgstr "Laat de gemiddelde waardering per item in de categorieenbrowser zien" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:103 msgid "Disable UI animations" msgstr "Blokkeer GI animaties" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "Gekopieerd" @@ -3145,7 +3179,7 @@ msgstr "Kopieer" msgid "Copy to Clipboard" msgstr "Kopieer naar het Klembord" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:397 msgid "Choose Files" msgstr "Kies bestanden" @@ -3161,13 +3195,13 @@ msgstr "" "Annotaties van de gebruiker alleen gegenereerd in de hoofdbibliotheek" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:611 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:707 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:941 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1059 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:623 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:682 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:719 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1116 msgid "No books selected" msgstr "Geen boeken geselecteerd" @@ -3214,7 +3248,7 @@ msgid "Uploading books to device." msgstr "Boeken worden geupload naar de lezer." #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 msgid "Books" msgstr "Boeken" @@ -3281,71 +3315,76 @@ msgid "Failed to read metadata from the following" msgstr "Metagegevens konden niet worden gelezen van de volgende" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 msgid "Add to library" msgstr "Aan collectie toevoegen" #: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:459 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1228 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1285 msgid "No book selected" msgstr "Geen boek geselecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:442 +msgid "" +"The following books are virtual and cannot be added to the calibre library:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:448 msgid "No book files found" msgstr "Geen boek bestanden gevonden" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:470 msgid "Cannot delete" msgstr "Kan niet verwijderen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:483 msgid "Choose formats to be deleted" msgstr "Kies formaten om te verwijderen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:501 msgid "Choose formats not to be deleted" msgstr "Kies formaten die niet moeten worden verwijderd" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:521 msgid "Cannot delete books" msgstr "Kan boeken niet verwijderen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:522 msgid "No device is connected" msgstr "Geen apparaat gevonden" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:532 msgid "Main memory" msgstr "|Hoofdgeheugen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:439 msgid "Storage Card A" msgstr "Geheugenkaart A" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 msgid "Storage Card B" msgstr "Geheugenkaart B" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:539 msgid "No books to delete" msgstr "Er zijn geen boeken om te verwijderen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:540 msgid "None of the selected books are on the device" msgstr "Geen van de geselecteerde boeken bevindt zich op het apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:612 msgid "Deleting books from device." msgstr "Boeken worden verwijderd van de lezer." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:578 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -3353,7 +3392,7 @@ msgstr "" "De geselecteerde boeken zullen permanent worden verwijderd en de " "bestanden gewist van de computer. Weet je dit zeker?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:597 msgid "" "The selected books will be permanently deleted from your device. Are " "you sure?" @@ -3361,62 +3400,62 @@ msgstr "" "De geselecteerde boeken zullen definitief verwijderd worden van uw " "apparaat. Weet u het zeker?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:610 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:622 msgid "Cannot download metadata" msgstr "Metagegevens konden niet worden gedownload" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:638 msgid "social metadata" msgstr "sociale metagegevens (labels, waarderingen, etc)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 msgid "covers" msgstr "Omslag afbeeldingen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:640 msgid "metadata" msgstr "metagegevens" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:642 msgid "Downloading %s for %d book(s)" msgstr "Downloaden van %s voor %d boek(en)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:654 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:666 msgid "Failed to download some metadata" msgstr "Sommige metagegevens konden niet worden gedownload" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:655 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:667 msgid "Failed to download metadata for the following:" msgstr "Metagegevens konden niet worden gedownload voor de volgende:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 msgid "Failed to download metadata:" msgstr "Metagegevens konden niet worden gedownload:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:659 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:595 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:962 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Fout" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:681 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:718 msgid "Cannot edit metadata" msgstr "Metagegevens kunnen niet bewerkt worden" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:730 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:742 msgid "Cannot merge books" msgstr "Kan boeken niet samenvoegen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:731 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:743 msgid "At least two books must be selected for merging" msgstr "" "Er moeten tenminste twee boeken worden geselecteerd om samen te voegen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:747 msgid "" "All book formats and metadata from the selected books will be added to the " "first selected book.

    The second and subsequently selected " @@ -3428,7 +3467,7 @@ msgstr "" "verder geselecteerde boeken zullen niet verwijderd of veranderd worden. " "

    Bevestig dat u hiermee wilt doorgaan." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:746 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 msgid "" "All book formats and metadata from the selected books will be merged into " "the first selected book.

    After merger the second and " @@ -3445,7 +3484,7 @@ msgstr "" "verder geselecteerde boeken zullen permanent worden verwijderd van " "uw computer.

    Weet u zeker dat u hiermee wilt doorgaan?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:770 msgid "" "You are about to merge more than 5 books. Are you sure you want to " "proceed?" @@ -3453,45 +3492,57 @@ msgstr "" "Je staat op het punt meer dan 5 boeken samen te voegen. Weet je zeker " "dat je dat wilt doen?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:924 msgid "Cannot save to disk" msgstr "Kan niet naar schijf worden opgeslagen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:927 msgid "Choose destination directory" msgstr "Kies een bestemmingsmap" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:566 +msgid "Not allowed" +msgstr "Niet toegestaan" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:934 +msgid "" +"You are tying to save files into the calibre library. This can cause " +"corruption of your library. Save to disk is meant to export files from your " +"calibre library elsewhere." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:968 msgid "Error while saving" msgstr "Fout tijdens opslaan" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:912 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:969 msgid "There was an error while saving." msgstr "Er is een fout opgetreden tijdens het opslaan." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:920 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:976 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:977 msgid "Could not save some books" msgstr "Sommige boeken konden niet worden opgeslagen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:921 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 msgid "Click the show details button to see which ones." msgstr "Klik de 'laat details zien' knop om te zien welke" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:999 msgid "No books selected to generate catalog for" msgstr "Geen boeken geselecteerd voor catalogus" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1016 msgid "Generating %s catalog..." msgstr "Genereren %s catalogus" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:964 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1021 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "Geen boeken gevonden" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:965 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1022 msgid "" "No books to catalog\n" "Check exclude tags" @@ -3499,49 +3550,49 @@ msgstr "" "Geen boeken te catalogiseren\n" "Check uitsluitingstags" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:975 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1032 msgid "Catalog generated." msgstr "Catalogus aangemaakt" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1035 msgid "Export Catalog Directory" msgstr "Exporteer Catalogus Folder" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:979 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1036 msgid "Select destination for %s.%s" msgstr "Selecteer uitvoer voor %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:995 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1052 msgid "Fetching news from " msgstr "Downloading nieuws van " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1066 msgid " fetched." msgstr " opgehaald" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1058 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1115 msgid "Cannot convert" msgstr "Kan niet converteren" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1087 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1144 msgid "Starting conversion of %d book(s)" msgstr "Start conversie van %d boek(en)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1321 msgid "Cannot view" msgstr "Kan niet bekijken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1209 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1266 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "Kies het te bekijken formaat" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1274 msgid "Multiple Books Selected" msgstr "Meerdere Boeken Geselecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1218 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1275 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 " @@ -3553,11 +3604,11 @@ msgstr "" "je computer. Eenmaal gestart kan dit proces niet worden afgebroken totdat " "het klaar is. Wil je verder gaan?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1227 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1284 msgid "Cannot open folder" msgstr "Kan folder niet openen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1322 msgid "%s has no available formats." msgstr "%s heeft geen beschikbare formaten" @@ -3582,7 +3633,7 @@ msgid "The specified directory could not be processed." msgstr "De geselecteerde folder kan niet worden bewerkt." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:804 msgid "No books" msgstr "Geen boeken" @@ -3658,7 +3709,7 @@ msgstr "Voeg boeken toe aan Calibre" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 @@ -3722,22 +3773,22 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 -#: /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:548 -#: /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:562 +#: /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:552 #: /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:566 -#: /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:610 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /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:570 +#: /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:614 #: /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:379 -#: /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:392 -#: /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:370 +#: /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:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 @@ -3903,7 +3954,7 @@ msgstr "Formulier" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 msgid "Bib file encoding:" -msgstr "" +msgstr "Bib bestand encodering" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 @@ -3912,11 +3963,11 @@ msgstr "Velden te gebruiken in uitvoer:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 msgid "ascii/LaTeX" -msgstr "" +msgstr "ascii/Latex" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 msgid "Encoding configuration (change if you have errors) :" -msgstr "" +msgstr "Encoderings instellingen (aan te passen bij fouten)" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 msgid "strict" @@ -3932,11 +3983,11 @@ msgstr "negeer" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 msgid "backslashreplace" -msgstr "" +msgstr "backslashreplace" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 msgid "BibTeX entry type:" -msgstr "" +msgstr "Bibtex type ingave" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 msgid "mixed" @@ -3952,11 +4003,11 @@ msgstr "boek" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 msgid "Create a citation tag?" -msgstr "" +msgstr "Creëer een citaat label?" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 msgid "Expression to form the BibTeX citation tag:" -msgstr "" +msgstr "Uitdrukking voor het aanmaken van het Bibtex citaatlabel:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 msgid "" @@ -3968,6 +4019,13 @@ msgid "" " wil be selected.\n" " -For time field, only the date will be used. " msgstr "" +"Enkele ophelderingen bij dit sjabloon:\n" +" -De beschikbare velden zijn 'author_sort', 'authors', 'id',\n" +" 'isbn', 'pubdate', 'publisher', 'series_index', 'series',\n" +" 'tags', 'timestamp', 'title', 'uuid'\n" +" -Voor types van lijsten zal enkel het eerste element\n" +" geselecteerd worden.\n" +" -Voor het veld tijd zal enkel de datum gebruikt worden. " #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" @@ -3979,8 +4037,8 @@ 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:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1487 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1505 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1493 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1511 msgid "Catalog" msgstr "Catalogus" @@ -4451,38 +4509,38 @@ msgstr "" "bevatten als mogelijk is." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:111 msgid "Choose cover for " msgstr "Kies cover voor " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118 msgid "Cannot read" msgstr "Kan niet lezen" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:119 msgid "You do not have permission to read the file: " msgstr "Je hebt geen permissie om het bestand te lezen: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:127 msgid "Error reading file" msgstr "Fout bij het lezen van bestand" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 msgid "

    There was an error reading from file:
    " msgstr "

    Er is een fout opgetreden bij het lezen van bestand:
    " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 msgid " is not a valid picture" msgstr " is geen geldige afbeelding" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /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:401 msgid "Book Cover" msgstr "Boek Omslag" @@ -4491,28 +4549,28 @@ msgid "Use cover from &source file" msgstr "Gebruik omslag van &bron bestand" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 msgid "Change &cover image:" msgstr "Verander &Omslag Afbeelding" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /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:403 msgid "Browse for an image to use as the cover of this book." msgstr "Zoek een afbeelding om als omslag voor dit boek te gebruiken." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /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 msgid "&Title: " msgstr "&Titel: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /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:363 msgid "Change the title of this book" msgstr "Verander de titel van dit boek" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 #: /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:361 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid "&Author(s): " msgstr "&Auteur(s) " @@ -4530,18 +4588,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 -#: /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:375 msgid "&Publisher: " msgstr "&Uitgeverij " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /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:376 msgid "Ta&gs: " msgstr "Ta&gs " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 -#: /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:377 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

    They can be any words or phrases, separated by commas." @@ -4552,7 +4610,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /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:380 msgid "&Series:" msgstr "&Series:" @@ -4560,13 +4618,13 @@ msgstr "&Series:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 -#: /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 +#: /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 "List of known series. You can add new series." msgstr "Lijst van bekende series. Je kunt nieuwe series toevoegen." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /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:387 msgid "Book " msgstr "Boek " @@ -5081,100 +5139,100 @@ msgstr "te verwijderen labels" msgid "No details available." msgstr "Geen details beschikbaar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:162 msgid "Device no longer connected." msgstr "Apparaat niet meer verbonden." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:278 msgid "Get device information" msgstr "Lees apparaat informatie" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:289 msgid "Get list of books on device" msgstr "Lees boeken lijst van apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:299 msgid "Get annotations from device" msgstr "Haal annotaties uit apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:308 msgid "Send metadata to device" msgstr "Verstuur metagegevens naar apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:313 msgid "Send collections to device" msgstr "Stuur de collectie(s) naar apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 msgid "Upload %d books to device" msgstr "Upload %d boeken naar apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Delete books from device" msgstr "Verwijder boeken van apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:369 msgid "Download books from device" msgstr "Download boeken van apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:379 msgid "View book on device" msgstr "Bekijk book op apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:413 msgid "Set default send to device action" msgstr "Stel standaard stuur naar apparaat actie in" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:419 msgid "Send to main memory" msgstr "Stuur naar hoofdgeheugen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 msgid "Send to storage card A" msgstr "Zend naar opslag kaart A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 msgid "Send to storage card B" msgstr "Zend naar opslag kaart B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:437 msgid "Main Memory" msgstr "Hoofdgeheugen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:448 msgid "Send and delete from library" msgstr "Verzend en verwijder uit de bibliotheek" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:449 msgid "Send specific format" msgstr "Verzend specifiek formaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:485 msgid "Eject device" msgstr "Verbreek apparaat verbinding" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 msgid "Fetch annotations (experimental)" msgstr "Haal annoties op (experimenteel)" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:603 msgid "Error communicating with device" msgstr "Fout bij communicatie met lezer" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:618 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:625 msgid "Select folder to open as device" msgstr "Selecteer de \"als apparaat\" te openen map" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 msgid "Failed" msgstr "Mislukt" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:668 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:675 msgid "Error talking to device" msgstr "Fout bij communicatie met lezer" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -5182,126 +5240,126 @@ msgstr "" "Er is een tijdelijke fout opgetreden tijdens de communicatie met de lezer. " "verwijzer de lezer en plug hem opnieuw in, of herstart." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:711 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:718 msgid "Device: " msgstr "Apparaat: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:713 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 msgid " detected." msgstr " gedetecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:798 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 msgid "selected to send" msgstr "Geselecteerd om te versturen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:803 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:810 msgid "Choose format to send to device" msgstr "Kies formaat om naar apparaat te versturen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "No device" msgstr "Geen apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 msgid "Cannot send: No device is connected" msgstr "Kan niet zenden: geen apparaat beschikbaar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:816 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 msgid "No card" msgstr "Geen kaart aanwezig" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "Cannot send: Device has no storage card" msgstr "Kan niet versturen: Apparaat heeft geen opslag kaart" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 msgid "E-book:" msgstr "E-Boek:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 msgid "Attached, you will find the e-book" msgstr "Aangesloten, je zult het e-boek vinden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 msgid "by" msgstr "door" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 msgid "in the %s format." msgstr "in het %s formaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:887 msgid "Sending email to" msgstr "Versturen van email naar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:910 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1193 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:917 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1019 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1081 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 msgid "No suitable formats" msgstr "Geen geschikte formaten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 msgid "Auto convert the following books before sending via email?" msgstr "" "Auto-converteer de volgende boeken alvorens ze via email te versturen?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" "De voilgende boeken konden niet worden ge-emailed omdat geen beschikbare " "formaten zijn gevonden:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:944 msgid "Failed to email books" msgstr "Boeken konden niet worden ge-emailed." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945 msgid "Failed to email the following books:" msgstr "De volgende boeken konden niet worden ge-emailed:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:942 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:949 msgid "Sent by email:" msgstr "Verstuurd via email:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 msgid "News:" msgstr "Nieuws:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 msgid "Attached is the" msgstr "Bijgevoegd is de" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 msgid "Sent news to" msgstr "Nieuws verzonden naar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1020 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1082 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Auto-converteer de volgende boeken alvorens ze te uploaden naar het appraat?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending catalogs to device." msgstr "Verstuur catalogus naar apparaat." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 msgid "Sending news to device." msgstr "Versturen van nieuws naar apparaat." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1167 msgid "Sending books to device." msgstr "Boeken worden naar de lezer verzonden." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1209 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." @@ -5310,11 +5368,11 @@ msgstr "" "er geen geschikte bestandsformaten konden worden gevonden. Converteer " "boek(en) eerst naar een formaat dat word ondersteund door je lezer." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1264 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1271 msgid "No space on device" msgstr "Geen schijfruimte op de lezer." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1265 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1272 msgid "" "

    Cannot upload books to device there is no more free space available " msgstr "" @@ -5413,6 +5471,14 @@ msgstr "Niet leeg" msgid "The folder %s is not empty. Please choose an empty folder" msgstr "De map %s is niet leeg. Kies a.u.b. een lege map" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location selected" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 msgid "Choose your calibre library" msgstr "Kies je calibre bibliotheek" @@ -5572,11 +5638,19 @@ msgstr "Automatisch" msgid "Never" msgstr "Nooit" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:524 +msgid "Done" +msgstr "Voltooid" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525 +msgid "Confirmation dialogs have all been reset" +msgstr "Bevestiging dialogen zijn allemaal gereset" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:530 msgid "System port selected" msgstr "Systeempoort geselecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:531 msgid "" "The value %d you have chosen for the content server port is a system " "port. Your operating system may not allow the server to run on this " @@ -5587,110 +5661,110 @@ msgstr "" "voorkomen dat de server op deze poort draait. Het is veiliger te kiezen voor " "een poortnummer groter dan 1024." -#: /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 "Failed to install command line tools." msgstr "Kan commando regel commandos niet installeren." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:554 msgid "Command line tools installed" msgstr "commando regel tools geinstalleerd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:555 msgid "Command line tools installed in" msgstr "Commando regel tools geinstalleerd in" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:556 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Indien je calibre.app verplaats, zullen de commando regel tools opnieuw " "moeten worden geinstalleerd." -#: /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 "No valid plugin path" msgstr "Geen geldig plugin pad" -#: /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 "%s is not a valid plugin path" msgstr "%s is geen geldig plugin pad" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:611 msgid "Choose plugin" msgstr "Kies plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:614 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:623 msgid "Plugin cannot be disabled" msgstr "Plugin kan niet worden uitgeschakeld" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 msgid "The plugin: %s cannot be disabled" msgstr "De plugin: %s kan niet worden uitgeschakeld" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 msgid "Plugin not customizable" msgstr "Plugin ondersteund geen persoonlijke instellingen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:634 msgid "Plugin: %s does not need customization" msgstr "Plugin %s heeft geen instellingen nodig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Customize" msgstr "Aanpassen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:680 msgid "Cannot remove builtin plugin" msgstr "Ingebouwde plugin kan niet worden verwijderd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:681 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " Kan niet worden verwijderd. Het is een ingebouwde plugin. Probeer de plugin " "uit te schakelen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:703 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:712 msgid "You must select a column to delete it" msgstr "Om een kolom te verwijderen moet u deze eerst selecteren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:717 msgid "The selected column is not a custom column" msgstr "De geselecteerde kolom is geen \"custom\" kolom" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:718 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" msgstr "Weet je het zeker?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:719 msgid "Do you really want to delete column %s and all its data?" msgstr "Wilt u werkelijk kolom %s en al zijn gegevens verwijderen?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:777 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:786 msgid "Error log:" msgstr "Foutmeldigenlogbestand:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:784 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:793 msgid "Access log:" msgstr "Toeganglog-bestand:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:318 msgid "Failed to start content server" msgstr "Content server kon niet worden gestart" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:846 msgid "Invalid size" msgstr "Ongeldige grootte" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:838 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:847 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "De grootte %s is ongeldig. Moet in de vorm BreedtexHoogte zijn" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:899 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:908 msgid "Must restart" msgstr "Moet herstarten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:900 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:909 msgid "" "The changes you made require that Calibre be restarted. Please restart as " "soon as practical." @@ -5698,19 +5772,19 @@ msgstr "" "De door u aangebrachte wijzigingen vereisen dat Calibre opnieuw opgestart " "moet worden. Herstart zo spoedig mogelijk." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:943 msgid "Checking database integrity" msgstr "Verifieren database integriteit" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:954 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:963 msgid "Failed to check database integrity" msgstr "Database integriteit kon niet worden geverifieerd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:959 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:968 msgid "Some inconsistencies found" msgstr "Inconsistente data gevonden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:960 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:969 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 " @@ -5762,6 +5836,14 @@ msgid "" "Title match ignores leading indefinite articles (\"the\", \"a\", \"an\"), " "punctuation, case, etc. Author match is exact." msgstr "" +"Als er reeds een boek met soortgelijke titel en auteur bestaat wat het toe " +"te voegen formaat niet heeft,wordt dit toegevoegd\n" +"aan dit bestaande boek, in plaats van het aanmaken van een nieuw item. Als " +"het bestaande boek het formaat al bevat, dan wordt het stilletjes " +"genegeerd.\n" +"\n" +"Titel vergelijking negeert voorvoegsels (\"de\", \"a\", \"een\"), " +"interpunctie, hoofd/kleine letters, enz. Auteur vergelijking is exact." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:142 msgid "" @@ -5825,7 +5907,7 @@ msgstr "&Bewaren boeken" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:155 msgid "Metadata &management:" -msgstr "" +msgstr "Metadata &beheer:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:156 msgid "Manual management" @@ -5874,30 +5956,30 @@ msgstr "" msgid "Sending to &device" msgstr "Verstuur naar &apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:616 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 msgid "Preferences" msgstr "Voorkeuren" -#: /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:537 msgid "Show notification when &new version is available" msgstr "Notificeer als een &nieuwe versie beschikbaar is" -#: /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:538 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "Download &sociale metadata (labels, waarderingen, etc) standaard" -#: /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:539 msgid "&Overwrite author and title by default when fetching metadata" msgstr "&Overschrijf auteur en titel standaard met geladen metadata" -#: /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:540 msgid "Default network &timeout:" msgstr "Standaard netwerk &timeout:" -#: /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:541 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -5905,146 +5987,150 @@ msgstr "" "Geef de standaard timeout voor netwerk downloads. (bv. wanneer we informatie " "van het Internet moeten halen)" -#: /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:542 msgid " seconds" msgstr " seconden" -#: /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:543 msgid "Choose &language (requires restart):" msgstr "Kier &taal (herstart nodig)" -#: /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:544 msgid "Normal" msgstr "Standaard" -#: /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:545 msgid "High" msgstr "Hoog" -#: /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:546 msgid "Low" msgstr "Laag" -#: /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:547 msgid "Job &priority:" msgstr "werk &prioriteit:" -#: /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:548 msgid "Preferred &output format:" msgstr "Voorkeur &uitvoer formaat:" -#: /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:549 +msgid "Reset all disabled &confirmation dialogs" +msgstr "Reset alle uitgeschakelde &bevestiging dialogen" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Preferred &input format order:" msgstr "Voorkeur &invoer formaat volgorde:" -#: /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 "Use &Roman numerals for series number" msgstr "Gebruik &Romeinse nummers voor de series" -#: /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 msgid "Enable system &tray icon (needs restart)" msgstr "Activeer systeemvak icoon" -#: /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 msgid "Show ¬ifications in system tray" msgstr "Laat ¬ificaties zien in het systeemvak" -#: /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 "Show &splash screen at startup" msgstr "Laat het opstartscherm zien" -#: /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 "Show cover &browser in a separate window (needs restart)" msgstr "Beeld omslag &verkenner in een apart scherm (herstart nodig)" -#: /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 "Show &average ratings in the tags browser" -msgstr "L&aat de gemiddelde waarderingen in de catagorieen browser zien" +msgstr "L&aat de gemiddelde waarderingen in de categorieenbrowser zien" -#: /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 msgid "Search as you type" msgstr "Zoek al typend" -#: /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 "Automatically send downloaded &news to ebook reader" msgstr "Zend gedownload &nieuws automatisch naar eboek lezer" -#: /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 "&Delete news from library when it is automatically sent to reader" msgstr "" "&Verwijder nieuws van bibliotheek zodra het automatisch naar de lezer is " "verstuurd" -#: /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 "&Number of covers to show in browse mode (needs restart):" msgstr "&Aantal omslagen zichtbaar in verkenner modus (herstart nodig)" -#: /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 "Select visible &columns in library view" msgstr "Selecteer zichtbare &kolommen in bibliotheek weergave" -#: /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 "Remove a user-defined column" msgstr "Verwijder een door de gebruiker gedefinieerde kolom" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 msgid "Add a user-defined column" msgstr "Voeg een door de gebruiker gedefinieerde kolom toe" -#: /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 "Edit settings of a user-defined column" msgstr "Bewerk een door de gebruiker gedefinieerde kolom" -#: /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 "Use internal &viewer for:" msgstr "Gebruik interne &viewer voor:" -#: /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 "User Interface &layout (needs restart):" msgstr "Gebruikers Interface &layout (heeft een herstart nodig):" -#: /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:574 msgid "Disable all animations. Useful if you have a slow/old computer." msgstr "" "Blokkeer alle animaties. Bruikbaar als u een langzame/oude computer heeft." -#: /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 "Disable &animations" msgstr "Blokkeer &animaties" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 msgid "Show &donate button (restart)" msgstr "Geef &donatieknop weer (herstart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 msgid "&Toolbar" -msgstr "" +msgstr "&Werkbalk" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 msgid "&Icon size:" -msgstr "" +msgstr "&Icoon grootte" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 msgid "Show &text under icons:" -msgstr "" +msgstr "Geef &tekst onder de iconen weer:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 msgid "Add an email address to which to send books" msgstr "Voeg een email adres toe om boeken naar toe te sturen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 msgid "&Add email" msgstr "&Voeg email toe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 msgid "Make &default" msgstr "Maak &standaard" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 msgid "&Remove email" msgstr "Verwijde&r email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 msgid "" "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-" @@ -6054,33 +6140,33 @@ msgstr "" "automatisch gestuurd voor gedownload nieuws naar alle email adressen " "waarvoor automatisch opsturen is aangevinkt." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "&Maximum aantal wachten werk processen (herstart nodig)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 msgid "&Check database integrity" msgstr "&Controleer database integriteit" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 msgid "&Install command line tools" msgstr "Installeer commando regel tools" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 msgid "Open calibre &configuration directory" msgstr "Open calibre &configuratie folder" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Limiteer het max. aantal gelijktijdige werk processen aan het aantal " "beschikbare processor &cores" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 msgid "Debug &device detection" msgstr "Foutopsporing &apparaat detectie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 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 " @@ -6090,25 +6176,25 @@ msgstr "" "bekijken in een webbrowser van waar dan ook ter wereld. Wijzigingen in de " "instellingen hebben pasd effect na het herstarten van de server." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 msgid "Server &port:" msgstr "Server &poort:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "Gebr&uikersnaam:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "W&achtwoord:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -6116,7 +6202,7 @@ msgstr "" "Als je het wachtwoord blank laat, dan kan iedereen je boek collectie zien " "via de web interface" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -6124,45 +6210,45 @@ msgstr "" "De maximum dimensie (BreedtexHoogte) voor weergegeven omslagen. Grotere " "omslagen worden in grootte aangepast. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 msgid "Max. &cover size:" msgstr "Max. &Omslag grootte:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "&Geef wachtwoord weer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 msgid "Max. &OPDS items per query:" msgstr "Max. &OPDS onderdelen per zoekopdracht" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 msgid "Max. OPDS &ungrouped items:" msgstr "Max. OPDS &ongegroepeerde items:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 msgid "&Start Server" msgstr "&Start Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 msgid "St&op Server" msgstr "St&op Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "&Test Server" msgstr "&Test Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 msgid "Run server &automatically on startup" msgstr "Start server &automatisch tijdens opstarten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 msgid "View &server logs" msgstr "Bekijk &server logs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 #: /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 " @@ -6180,7 +6266,7 @@ msgstr "" "gequalificeerde hostname of het IP adres van de computer waar calibre op " "draait." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -6188,27 +6274,27 @@ msgstr "" "Hiere kun je het gedrag van calibre instellen door te configureren welke " "plugins te gebruiken." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "Enable/&Disable plugin" msgstr "Activeer/&Deactiveer plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:610 msgid "&Customize plugin" msgstr "&Persoonlijke instellingen plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 msgid "&Remove plugin" msgstr "&Verwijder plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612 msgid "Add new plugin" msgstr "Voeg nieuwe plugin toe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Plugin &file:" msgstr "Plugin &bestand:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "&Add" msgstr "&Toevoegen" @@ -6249,7 +6335,7 @@ msgstr "Nummer" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Date" msgstr "Datum" @@ -6276,7 +6362,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:25 msgid "Long text, like comments, not shown in the tag browser" -msgstr "" +msgstr "Lange tekst, zoals commentaren, niet weergegeven in de labelbrowser" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:28 msgid "Text column for keeping series-like information" @@ -6298,23 +6384,23 @@ msgstr "Waarderingen,met sterren aangegeven" msgid "Yes/No" msgstr "Ja/Nee" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 msgid "No column selected" msgstr "Geen kolom geselecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:70 msgid "No column has been selected" msgstr "Er is geen kolom geselecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:74 msgid "Selected column is not a user-defined column" msgstr "Geselecteerde kolom is geen door de gebruiker gedefinieerde kolom" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:105 msgid "No lookup name was provided" msgstr "Er was geen opzoek naam gegeven" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:107 msgid "" "The label must contain only letters, digits and underscores, and start with " "a letter" @@ -6322,19 +6408,19 @@ msgstr "" "Het label mag alleen letters, cijfers en onderstreep tekens bevatten en moet " "beginnen met een letter" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:116 msgid "No column heading was provided" msgstr "Er was geen kolom koptekst gegeven" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:122 msgid "The lookup name %s is already used" msgstr "De opzoeknaam %s is al in gebruik" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:132 msgid "The heading %s is already used" msgstr "De koptekst %s is al in gebruik" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:134 msgid "" "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" @@ -6481,7 +6567,7 @@ msgstr "Formaat" msgid "Delete from device" msgstr "Van apparaat verwijderen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author sort" msgstr "auteur sortering" @@ -6613,7 +6699,7 @@ msgid "Author s&ort: " msgstr "Auteur s&ortering: " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 -#: /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:368 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -6622,14 +6708,14 @@ msgstr "" "Bijvoorbeeld: Charles Dickens moet worden gesorteerd als: Dickens, Charles" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:162 -#: /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:371 msgid "&Rating:" msgstr "&Rangschikking" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 -#: /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 +#: /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 msgid "Rating of this book. 0-5 stars" msgstr "Rangschikking van dit boek. 0-5 sterren" @@ -6638,7 +6724,7 @@ msgid "No change" msgstr "Geen wijzigingen" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 -#: /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:374 msgid " stars" msgstr " sterren" @@ -6648,8 +6734,8 @@ msgstr "Voeg tags toe: " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 -#: /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 +#: /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 "Open Tag Editor" msgstr "Open Tag Editor" @@ -6698,222 +6784,249 @@ msgstr "" "Verwijder voor de geselecteerde boeken de opge&slagen conversie instellingen." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 msgid "&Basic metadata" msgstr "&Basis metagegevens" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "&Custom metadata" msgstr "&Aangepaste metagegevens" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:94 +msgid "Last modified: %s" +msgstr "Het laatst aangepast: %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:135 msgid "Not a valid picture" msgstr "Geen geldige afbeelding" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:150 +msgid "Specify title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 +msgid "You must specify a title and author before generating a cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 msgid "Choose formats for " msgstr "Kies formaat voor " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 msgid "No permission" msgstr "Geen toestemming" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 msgid "You do not have permission to read the following files:" msgstr "Je hebt geen toestemming om de volgende bestanden te lezen:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:223 msgid "No format selected" msgstr "Geen formaat geselecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:234 msgid "Could not read metadata" msgstr "Metagegevens kunnen niet worden gelezen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:235 msgid "Could not read metadata from %s format" msgstr "Kan metagegevens van %s formaat niet lezen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 msgid "Could not read cover" msgstr "Omslag afbeelding kan niet worden gelezen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:284 msgid "Could not read cover from %s format" msgstr "Kan omslag afbeelding van %s formaat niet lezen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "The cover in the %s format is invalid" msgstr "De omslag afbeelding in het %s formaat is ongelding" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:327 msgid "Abort the editing of all remaining books" msgstr "Annuleer het bewerken van alle overgebleven boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:434 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:470 msgid "This ISBN number is valid" msgstr "Dit ISBN nummer is geldig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:473 msgid "This ISBN number is invalid" msgstr "Dit ISBN nummer is ongeldig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:552 msgid "Cannot use tag editor" msgstr "Het is niet mogelijk om het labelopmaakprogramma te gebruiken" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "The tags editor cannot be used if you have modified the tags" msgstr "" "Het labelopmaakprogramma kan niet gebruikt worden als u de labels hebt " "gewijzigd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "Downloading cover..." msgstr "Downloaden omslag afbeelding..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:585 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:601 msgid "Cannot fetch cover" msgstr "Kan omslag niet downloaden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:555 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:602 msgid "Could not fetch cover.
    " msgstr "Omslag kon niet worden gedownload
    " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:587 msgid "The download timed out." msgstr "De download is verbroken" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:591 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "Kan geen omslag afbeelding voor dit book vinden. Probeer eerst het ISBN " "nummer op te geven." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:603 +msgid "" +"For the error message from each cover source, click Show details below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:610 msgid "Bad cover" msgstr "Ongeldige omslag afbeelding" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 msgid "The cover is not a valid picture" msgstr "De omslag afbeelding is geen geldige afbeelding" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:644 msgid "There were errors" msgstr "Er zijn fouten opgetreden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645 msgid "There were errors downloading social metadata" msgstr "" "Er waren fouten tijdens het downloaden van de sociale metagegevens (labels, " "waarderingen, etc)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:674 msgid "Cannot fetch metadata" msgstr "Metagegevens kunnen niet worden opgevraagd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:637 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" "Tenminste een van de volgende gegevens is noodzakelijk: ISBN, Titel, Auteurs " "of Uitgever" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:750 msgid "Permission denied" msgstr "Geen toegang" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:751 msgid "Could not open %s. Is it being used by another program?" msgstr "" "%s van niet worden geopend. Is het in gebruik door een ander programma?" -#: /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:360 msgid "Edit Meta Information" msgstr "Verander Meta Informatie" -#: /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 msgid "Meta information" msgstr "Meta informatie" -#: /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:364 msgid "Swap the author and title" msgstr "Wissel auteur en titel van plaats" -#: /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:367 msgid "Author S&ort: " msgstr "Auteur S&ortering: " -#: /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:369 msgid "" "Automatically create the author sort entry based on the current author entry" msgstr "" "Creër automatisch de auteur sortering gebaseerd op de huidige auteur ingave" -#: /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:383 msgid "Remove unused series (Series that have no books)" msgstr "Verwijder ongebruikte series (Series die geen boeken bevatten)" -#: /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:385 msgid "IS&BN:" msgstr "IS&BN:" -#: /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:386 msgid "Publishe&d:" -msgstr "Uitegeve&n" +msgstr "Uitgegeve&n" -#: /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:389 msgid "dd MMM yyyy" msgstr "dd MMM yyyy" -#: /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:390 msgid "&Date:" msgstr "&Datum:" -#: /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:391 msgid "&Comments" msgstr "&Commentaar" -#: /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:392 msgid "&Fetch metadata from server" msgstr "&Download metagegevens van de server" -#: /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:393 msgid "Available Formats" msgstr "Beschikbare Formaten" -#: /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:394 msgid "Add a new format for this book to the database" msgstr "Voeg een nieuw formaat voor dit boek toe aan de database" -#: /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 msgid "Remove the selected formats for this book from the database." msgstr "Verwijder de geselecteerde formaten voor dit boek van de database." -#: /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:398 msgid "Set the cover for the book from the selected format" msgstr "Zet de omslag afbeelding van het book van het geselecteerde formaat" -#: /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:400 msgid "Update metadata from the metadata in the selected format" msgstr "" "Update metagegevens van de metagegevens die in het geselecteerde formaat " "staan" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405 msgid "Reset cover to default" msgstr "Vervang omslag afbeelding door de standaard afbeelding" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Download &cover" msgstr "Download &omslag afbeelding" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +msgid "Generate a default cover based on the title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "&Generate cover" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 msgid "Password needed" msgstr "Wachtwoord Noodzakelijk" @@ -7210,21 +7323,21 @@ msgstr "" msgid "Choose formats" msgstr "Kies formaten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 msgid "Authors" msgstr "Auteurs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 msgid "Publishers" msgstr "Uitgevers" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:114 msgid " (not on any book)" msgstr " (in geen enkel boek)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:166 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" @@ -7282,7 +7395,7 @@ msgid "Select the content kind of the new category" msgstr "Selecteer het type inhoud voor de nieuwe categorie" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" msgstr "Weet U het zeker?" @@ -7343,34 +7456,34 @@ msgstr "" msgid "%s (was %s)" msgstr "%s (was %s)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 msgid "Item is blank" msgstr "Veld is leeg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 msgid "An item cannot be set to nothing. Delete it instead." msgstr "Een veld kan niet leeg zijn. U dient het te verwijderen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:91 msgid "No item selected" msgstr "Geen item geselecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:92 msgid "You must select one item from the list of Available items." msgstr "" "U dient één van de items te selecteren uit de lijst van beschikbare items." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 msgid "No items selected" msgstr "Geen items geselecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 msgid "You must select at least one items from the list." msgstr "Je dient minstens één van de items uit de lijst te selecteren." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:106 msgid "Are you certain you want to delete the following items?" msgstr "Bent je zeker dat je deze items wilt verwijderen?" @@ -7841,7 +7954,7 @@ msgid "Show books in the main memory of the device" msgstr "Geef de boeken in de het hoofdgeheugen van het apparaat weer" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:89 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:567 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:568 msgid "Card A" msgstr "Geheugenkaart A" @@ -7850,7 +7963,7 @@ msgid "Show books in storage card A" msgstr "Geef de boeken weer die op geheugenkaart A staan" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:91 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:569 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:570 msgid "Card B" msgstr "Geheugenkaart B" @@ -7898,188 +8011,198 @@ msgid "Delete current saved search" msgstr "Verwijder de huidige bewaarde zoekopdracht" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:302 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:108 msgid "%d books" msgstr "%d boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:334 -msgid "Connect to folder" -msgstr "Verbind met folder" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:340 -msgid "Connect to iTunes" -msgstr "Verbind met iTunes" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:360 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid "Email to" -msgstr "Email naar" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:362 -msgid " and delete from library" -msgstr " en verwijder ze uit de bibliotheek" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:373 -msgid "Setup email based sharing of books" -msgstr "Stel het delen van boeken via email in" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "A" -msgstr "A" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:446 -msgid "Add books" -msgstr "Voeg boeken toe" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "E" -msgstr "E" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:447 -msgid "Edit metadata" -msgstr "Bewerk metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "C" -msgstr "C" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:448 -msgid "Convert books" -msgstr "Converteer boeken" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -msgid "V" -msgstr "V" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:449 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 -msgid "View" -msgstr "Bekijk" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:450 -msgid "Send to device" -msgstr "Zend naar lezer" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:305 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:468 msgid "Choose calibre library to work with" msgstr "Kies een calibre bibliotheek om mee te werken" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:336 +msgid "Connect to folder" +msgstr "Verbind met folder" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:341 +msgid "Connect to iTunes" +msgstr "Verbind met iTunes" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:356 +msgid "Start Content Server" +msgstr "Start Content Server" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:358 +msgid "Stop Content Server" +msgstr "Stop Content Server" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid "Email to" +msgstr "Email naar" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:377 +msgid " and delete from library" +msgstr " en verwijder ze uit de bibliotheek" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:389 +msgid "Setup email based sharing of books" +msgstr "Stel het delen van boeken via email in" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "A" +msgstr "A" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:462 +msgid "Add books" +msgstr "Voeg boeken toe" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +msgid "E" +msgstr "E" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +msgid "Edit metadata" +msgstr "Bewerk metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "C" +msgstr "C" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:464 +msgid "Convert books" +msgstr "Converteer boeken" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +msgid "V" +msgstr "V" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:568 +msgid "View" +msgstr "Bekijk" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:466 +msgid "Send to device" +msgstr "Zend naar lezer" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 msgid "F" msgstr "F" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:453 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 msgid "Fetch news" msgstr "Download nieuws" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 msgid "S" msgstr "S" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:454 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:551 msgid "Save to disk" msgstr "Opslaan op schijf" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:455 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 msgid "Connect/share" msgstr "Connectie/deel" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 msgid "Del" msgstr "Del" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:472 msgid "Remove books" msgstr "Verwijder boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 msgid "Browse the calibre User Manual" msgstr "Blader door de calibre gebruiksaanwijzing" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 msgid "F1" msgstr "F1" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:457 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:473 msgid "Help" msgstr "Hulp" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:474 msgid "Ctrl+P" msgstr "Ctrl+P" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 msgid "M" msgstr "M" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:460 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:476 msgid "Merge book records" msgstr "Voeg gegevens van boeken samen" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:461 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:477 msgid "Open containing folder" msgstr "Open betreffende map" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:479 msgid "Show book details" msgstr "Laat boek details zien" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:481 msgid "Books by same author" msgstr "Boeken van dezelfde auteur" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:483 msgid "Books in this series" msgstr "Boeken in deze serie" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:485 msgid "Books by this publisher" msgstr "Boeken van deze uitgever" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 msgid "Books with the same tags" msgstr "Boeken met dezelfde labels" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:501 msgid "Edit metadata individually" msgstr "Bewerk metagegevens individueel" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 msgid "Edit metadata in bulk" msgstr "Bewerk metagegevens op groepsniveau" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:490 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 msgid "Download metadata and covers" msgstr "Download metagegevens en omslag afbeeldingen" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:510 msgid "Download only metadata" msgstr "Download alleen metagegevens" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:512 msgid "Download only covers" msgstr "Download alleen omslag afbeeldingen" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 msgid "Download only social metadata" msgstr "Download alleen sociale metagegevens (labels, waarderingen, etc)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:521 msgid "Merge into first selected book - delete others" msgstr "Samenvoegen met het eerste geselecteerde boek - verwijder de anderen" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:524 msgid "Merge into first selected book - keep others" msgstr "Samenvoegen met het eerste geselecteerde boek - behoudt de anderen" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:532 msgid "Add books from a single directory" msgstr "Voeg boeken toe uit een enkele folder" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:534 msgid "" "Add books from directories, including sub-directories (One book per " "directory, assumes every ebook file is the same book in a different format)" @@ -8087,7 +8210,7 @@ msgstr "" "Voeg boeken toe uit folders, inclusief sub-folders (Een boek per folder, " "neemt aan dat ieder eboek bestand hetzelfde boek in een ander formaat bevat)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 msgid "" "Add books from directories, including sub directories (Multiple books per " "directory, assumes every ebook file is a different book)" @@ -8095,62 +8218,62 @@ msgstr "" "Voeg boeken toe uit folders, inclusief sub-folders (Meerdere boeken per " "folder, neemt aan dat ieder eboek bestand een ander boek bevat)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:541 msgid "Add Empty book. (Book entry with no formats)" msgstr "Voeg leeg boek toe (Boek zonder formaten)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:553 msgid "Save to disk in a single directory" msgstr "Opslaan op schijf in een enkele folder" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:385 msgid "Save only %s format to disk" msgstr "Bewaar alleen %s formaat op schijf" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:542 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:388 msgid "Save only %s format to disk in a single directory" msgstr "Bewaar enkel %s formaat op de harde schijf, in één enkele map" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 msgid "View specific format" msgstr "Bekijk specifiek formaat" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:575 msgid "Remove selected books" msgstr "Verwijder geselecteerde boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:577 msgid "Remove files of a specific format from selected books.." msgstr "" "Verwijder bestanden in een specifiek formaat van de geselecteerde boeken.." -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:580 msgid "Remove all formats from selected books, except..." msgstr "Verwijder alle formaten van de geselecterde boeken, behalve..." -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:583 msgid "Remove covers from selected books" msgstr "Verwijder omslagen van de geselecteerde boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 msgid "Remove matching books from device" msgstr "Verwijder de boeken die aan de criteria voldoen van het apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:603 msgid "Convert individually" msgstr "Converteer Individueel" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:605 msgid "Bulk convert" msgstr "Converteer Groep" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:609 msgid "Create catalog of books in your calibre library" msgstr "Maak catalogus van boeken in je calibre bibliotheek" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:617 msgid "Run welcome wizard" msgstr "Start de welkom wizard" @@ -8241,11 +8364,7 @@ msgstr "Geef kolom weer" msgid "Restore default layout" msgstr "Herstel standaard layout" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:560 -msgid "Not allowed" -msgstr "Niet toegestaan" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:567 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8345,7 +8464,7 @@ msgid "Do not check for updates" msgstr "Check niet voor updates" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:598 msgid "Calibre Library" msgstr "Calibre Bibliotheek" @@ -8474,11 +8593,11 @@ msgstr "&Afsluiten" msgid "ERROR: Unhandled exception" msgstr "FOUT: Niet-verwerkte uitzondering" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:93 msgid "Book has neither title nor ISBN" msgstr "Boek heeft geen titel en geen ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:119 msgid "No matches found for this book" msgstr "Geen overeenkomsten gevonden voor dit boek" @@ -8735,33 +8854,33 @@ msgstr "&Herstarten" msgid "Calibre Quick Start Guide" msgstr "Calibre snelstart handboek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:367 msgid "Cannot configure" msgstr "Kan niet configureren" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:363 msgid "Cannot configure while there are running jobs." msgstr "Can niet configueren terwijl bestaande opdrachten bezig zijn" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:368 msgid "Cannot configure before calibre is restarted." msgstr "Is niet te configureren alvorens calibre opnieuw is opgestart" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:415 msgid "No detailed info available" msgstr "Geen details beschikbaar" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:416 msgid "No detailed information is available for books on the device." msgstr "Geen details zijn beschikbaar voor de boeken op de lezer." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:457 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:496 msgid "Conversion Error" msgstr "Converteer Fout" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:469 msgid "" "

    Could not convert: %s

    It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -8769,15 +8888,15 @@ msgstr "" "

    Kon %s niet converteren.

    Het is een eboek met DRM. " "Je moet eerst de DRM verwijderen met externe programma's." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:482 msgid "Recipe Disabled" msgstr "Recept uitgeschakeld" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:497 msgid "Failed" msgstr "Mislukt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:537 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. " @@ -8788,12 +8907,12 @@ msgstr "" "van het programma te steunen. Jouw donatie helpt om de ontwikkeling voort te " "zetten." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:563 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" "Er zijn actieve werk opdrachten. Weet je zeker dat je af wilt sluiten?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:566 msgid "" " is communicating with the device!
    \n" " Quitting may cause corruption on the device.
    \n" @@ -8804,11 +8923,11 @@ msgstr "" "apparaat.
    \n" " Weet je zeker dat je af wilt sluiten?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:570 msgid "WARNING: Active jobs" msgstr "Waarschuwing: actieve werk opdrachten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:625 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -9341,7 +9460,7 @@ msgstr "Weergeven" msgid "Hide" msgstr "Verberg" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:370 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 " @@ -9351,7 +9470,7 @@ msgstr "" "kun je de calibre boek collectie direct op je telefoon bekijken. Om dit te " "doen zul je de content server moeten inschakelen." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:374 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." @@ -9359,7 +9478,7 @@ msgstr "" "Denk er aan om calibre open te laten, aangezien de server alleen werkt " "zolang calibre draait" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:376 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 " @@ -9369,20 +9488,20 @@ msgstr "" "bibliotheek. myhostname is de volledige hostname of het IP address van de " "computer waar calibre op draait." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:450 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:453 msgid "Moving library..." msgstr "Verplaatsen bibliotheek..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:470 msgid "Failed to move library" msgstr "Bibliotheek kon niet worden verplaatst" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:524 msgid "Invalid database" msgstr "ongeldige database" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525 msgid "" "

    An invalid library already exists at %s, delete it before trying to move " "the existing library.
    Error: %s" @@ -9390,21 +9509,21 @@ msgstr "" "

    Een ongeldige bibliotheek bestaat at in %s, verwijder deze alvorens " "nogmaals te proberen de bestaande bibliotheek te verplaatsen.
    Fout: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:536 msgid "Could not move library" msgstr "Bibliotheek kon niet worden verplaatst" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:590 msgid "Select location for books" msgstr "Selecteer de locatie voor boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:665 msgid "welcome wizard" msgstr "Welkom Wizard" #: /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/finish_ui.py:42 #: /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 @@ -9412,7 +9531,7 @@ msgid "Welcome to calibre" msgstr "Welkom bij calibre" #: /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/finish_ui.py:43 #: /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 @@ -9435,7 +9554,7 @@ msgstr "&Fabricanten" msgid "&Devices" msgstr "A&pparaten" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:44 msgid "" "

    Congratulations!

    You have successfully setup calibre. Press the %s " "button to apply your settings." @@ -9443,7 +9562,7 @@ msgstr "" "

    Gefeliciteerd!

    de installatie van calibre was succesvol. Druk op de " "%s knop om je instellingen toe te passen." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 msgid "" "

    Demo videos

    Videos demonstrating the various features of calibre are " "available online." @@ -9451,7 +9570,7 @@ msgstr "" "

    Demo videos

    Videos die de diverse functies van calibre demonstreren " "zijn beschikbaar online." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 msgid "" "

    User Manual

    A User Manual is also available online." @@ -9727,6 +9846,11 @@ msgid "" "Default: '%%default'\n" "Applies to: BIBTEX output format" msgstr "" +"De velden die dienen weergegeven bij het catalogeren van boeken in de " +"database. Dit zou een door komma's gescheiden lijst van velden moeten zijn.\n" +"Beschikbare velden: %s.\n" +"Standaard: '%%default'\n" +"Van toepassing voor: BIBTEX weergave formaat" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:216 msgid "" @@ -9735,6 +9859,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Weergave veld om op te sorteren.\n" +"Beschikbare velden: author_sort, id, rating, size, timestamp, title.\n" +"Standaard: '%default'\n" +"Van toepassing voor: BIBTEX weergave formaat" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:225 msgid "" @@ -9743,6 +9871,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Creëer een citaat voor BIBTEX ingaves.\n" +"Boolean waarde : True, False\n" +"Standaard: '%default'\n" +"Van toepassing voor: BIBTEX weergave formaat" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:234 msgid "" @@ -9752,6 +9884,12 @@ msgid "" "Default: '%%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Het sjabloon voor het creëren van citaten gebaseerd op velden uit de " +"database.\n" +" Zou een sjabloon moeten zijn met velden ingesloten door {}.\n" +"Beschikbare velden: %s.\n" +"Standaard: '%%default'\n" +"Van toepassing voor: BIBTEX weergave formaat" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" @@ -9760,6 +9898,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"BibTeX bestandscodering weergave.\n" +"Beschikbare types: utf8, cp1252, ascii.\n" +"Standaard: '%default'\n" +"Van toepassing op: BIBTEX weergave formaat" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" @@ -9768,6 +9910,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"BibTeX bestandscodering vlag.\n" +"Beschikbare types: strict, replace, ignore, backslashreplace.\n" +"Standaard: '%default'\n" +"Van toepassing op: BIBTEX weergave formaat" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:262 msgid "" @@ -9776,6 +9922,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Ingave type voor Bibtex catalogus.\n" +"Beschikbare types: book, misc, mixed\n" +"Standaard: '%default'\n" +"Van toepassing op: BIBTEX weergave formaat" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:530 msgid "" @@ -10226,6 +10376,8 @@ msgid "" "A dictionary of options to customize how the data in this column will be " "interpreted." msgstr "" +"Een woordenboek met opties voor het personaliseren van de manier waarop de " +"gegevens in deze kolom worden geïnterpreteerd" #: /home/kovid/work/calibre/src/calibre/library/cli.py:573 msgid "You must specify label, name and datatype" @@ -10292,12 +10444,24 @@ msgid "" " command.\n" " " msgstr "" +"\n" +" %prog set_custom [options] kolom identificatie waarde\n" +"\n" +" Stel de waarde in van een gepersonaliseerde kolom voor het boek " +"geïdentificeerd door de identificatie.\n" +" Je kan een lijst van identificaties krijgen via de list opdracht.\n" +" Je kan een lijst van gepersonaliseerde kolom namen krijgen door gebruik " +"van de custom_columns\n" +" opdracht.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:721 msgid "" "If the column stores multiple values, append the specified values to the " "existing ones, instead of replacing them." msgstr "" +"Als de kolom meerdere gegevens bevat, voeg dan de gespecificeerde waardes " +"toe aan de bestaande, in plaats van ze te vervangen." #: /home/kovid/work/calibre/src/calibre/library/cli.py:732 msgid "Error: You must specify a field name, id and value" @@ -10311,6 +10475,12 @@ msgid "" " List available custom columns. Shows column labels and ids.\n" " " msgstr "" +"\n" +" %prog custom_columns [options]\n" +"\n" +" Maak een lijst van alle beschikbare gepersonaliseerde kolommen. Toon " +"kolom labels en identificaties.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:758 msgid "Show details for each column." @@ -10319,6 +10489,7 @@ msgstr "Toon details voor iedere kolom." #: /home/kovid/work/calibre/src/calibre/library/cli.py:770 msgid "You will lose all data in the column: %r. Are you sure (y/n)? " msgstr "" +"Je zult alle gegevens in de kolom: %r verliezen. Ben je zeker (j/n)? " #: /home/kovid/work/calibre/src/calibre/library/cli.py:772 msgid "y" @@ -10333,6 +10504,13 @@ msgid "" " columns with the custom_columns command.\n" " " msgstr "" +"\n" +" %prog remove_custom_column [options] label\n" +"\n" +" Verwijder de gepersonaliseerde kolom geïdentificeerd via het label. Je " +"kan beschikbare\n" +" kolommen zien via de opdracht custom_columns.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:786 msgid "Do not ask for confirmation" @@ -10364,33 +10542,33 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/database2.py:71 msgid "%sAverage rating is %3.1f" -msgstr "" +msgstr "%sGemiddelde waardering is %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:565 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:566 msgid "Main" -msgstr "" +msgstr "Algemeen" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1790 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1796 msgid "

    Migrating old database to ebook library in %s

    " msgstr "

    Migreer oude database naar eboek bibliotheek in %s

    " -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1819 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1825 msgid "Copying %s" msgstr "Copieer %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1836 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1842 msgid "Compacting database" msgstr "Comprimeren database" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1929 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1935 msgid "Checking SQL integrity..." msgstr "Verifiëren SQL integriteit..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1970 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1976 msgid "Checking for missing files." msgstr "Zoeken naar verloren bestanden" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1992 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1998 msgid "Checked id" msgstr "id gecontroleerd" @@ -10543,7 +10721,7 @@ msgstr "Converteer folders naar kleine letters" msgid "Replace whitespace with underscores." msgstr "Vervang witruimte met underscores" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:258 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:263 msgid "Requested formats not available" msgstr "Gewenste formaten niet beschikbaar" @@ -10592,8 +10770,11 @@ msgid "" "more than this number of items. Default: %default. Set to a large number to " "disable grouping." msgstr "" +"Groepeer items in categorieën zoals auteur/labels op de eerste letter als er " +"meer dan dit aantal items zijn. Standaard: %default. Maak hier een groot " +"getal van om groeperen uit te zetten." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:93 +#: /home/kovid/work/calibre/src/calibre/library/server/base.py:94 msgid "Password to access your calibre library. Username is " msgstr "" "Wachtwoord om toegang te verkrijgen tot je calibre bibliotheek. " @@ -10619,45 +10800,45 @@ msgstr "Schrijf het proces-PID naar het opgegeven bestand." #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:127 msgid "%d items" -msgstr "" +msgstr "%d items" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:144 msgid "RATING: %s
    " -msgstr "" +msgstr "SCORE: %s
    " #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:147 msgid "TAGS: %s
    " -msgstr "" +msgstr "LABELS: %s
    " #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:151 msgid "SERIES: %s [%s]
    " -msgstr "" +msgstr "SERIES: %s [%s]
    " #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:231 msgid "Books in your library" -msgstr "" +msgstr "Boeken in uw bibliotheek" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:237 msgid "By " -msgstr "" +msgstr "Door " #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:238 msgid "Books sorted by " -msgstr "" +msgstr "Boeken gesorteerd op " -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:549 msgid "Newest" -msgstr "" +msgstr "Nieuwste" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:49 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:34 msgid "%sUsage%s: %s\n" msgstr "%sGebruik%s: %s\n" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:78 msgid "Created by " msgstr "Gemaakt door " -#: /home/kovid/work/calibre/src/calibre/utils/config.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:79 msgid "" "Whenever you pass arguments to %prog that have spaces in them, enclose the " "arguments in quotation marks." @@ -10665,67 +10846,67 @@ msgstr "" "Als je parameters met spaties meegeeft aan %prog , denk er dan aan om hier " "quotatie tekens ( \" ) om heen te zetten." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:678 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:663 msgid "Path to the database in which books are stored" msgstr "Pad naar de database waarin boeken zijn opgeslagen" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:680 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:665 msgid "Pattern to guess metadata from filenames" msgstr "Patroon om metagegevens uit bestandsnamen aan te maken" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:682 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:667 msgid "Access key for isbndb.com" msgstr "Toegangssleutel voor isbndb.com" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:684 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:669 msgid "Default timeout for network operations (seconds)" msgstr "Standaard timeout voor netwerk operaties" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:686 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:671 msgid "Path to directory in which your library of books is stored" msgstr "Pad naar folder waarin je bibliotheek is opgeslagen" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:688 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:673 msgid "The language in which to display the user interface" msgstr "De taal waarin de gebruikers vensters worden weergegeven" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:690 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:675 msgid "The default output format for ebook conversions." msgstr "Het standaard uitvoer formaat voor eboek conversies." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:694 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:679 msgid "Ordered list of formats to prefer for input." msgstr "Gesorteerde lijst met gewenste formaten foor invoer." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:696 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:681 msgid "Read metadata from files" msgstr "Lees metagegevens uit bestanden" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:698 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:683 msgid "The priority of worker processes" msgstr "De prioriteit van werk processen" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:700 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:685 msgid "Swap author first and last names when reading metadata" msgstr "" "Verwissel de voor- en achternaam van de auteur bij het inlezen van de " "metagegevens" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:702 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:687 msgid "Add new formats to existing book records" msgstr "Voeg nieuwe formaten toe aan bestaande boeken" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:707 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:692 msgid "List of named saved searches" msgstr "Lijst van opgeslagen zoekopdrachten" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:708 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:693 msgid "User-created tag browser categories" -msgstr "" +msgstr "Door de gebruiker gecreëerde labelbrowser categoriën" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:710 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:695 msgid "How and when calibre updates metadata on the device." -msgstr "" +msgstr "Hoe en wanneer calibre metadata actualiseert op het apparaat." #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." @@ -10797,7 +10978,7 @@ msgstr "Engels (Pakistan)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "English (Israel)" -msgstr "" +msgstr "Engels (Israël)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 msgid "English (Singapore)" @@ -10813,7 +10994,7 @@ msgstr "Engels (Ierland)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:112 msgid "English (China)" -msgstr "" +msgstr "Engels (China)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:113 msgid "Spanish (Paraguay)" @@ -10852,6 +11033,9 @@ msgid "Control email delivery" msgstr "Wijzig email verzending" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:118 +msgid "Unknown section" +msgstr "Onbekende sectie" + #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:140 msgid "Unknown feed" msgstr "Onbekende feed" @@ -10888,11 +11072,11 @@ msgstr "" "Download niet de laatste versies van ingebouwde recepten van de calibre " "server" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:44 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:46 msgid "Unknown News Source" msgstr "Onbekende Nieuwe Bron" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 msgid "The \"%s\" recipe needs a username and password." msgstr "Het \"%s\" recept heeft een gebruikernaam en wachtwoord nodig" @@ -10952,27 +11136,27 @@ msgstr "Kon omslag niet downloaden: %s" msgid "Downloading cover from %s" msgstr "Download omslag van %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1002 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1003 msgid "Masthead image downloaded" msgstr "Colofon plaatje gedownload" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1192 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1172 msgid "Untitled Article" msgstr "Artikel zonder Naam" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1263 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1243 msgid "Article downloaded: %s" msgstr "Artikel gedownload: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1274 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1254 msgid "Article download failed: %s" msgstr "Artikel download mislukt: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1291 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Fetching feed" msgstr "Downloading feed" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1438 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1418 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." @@ -10980,7 +11164,7 @@ msgstr "" "Inloggen niet gelukt. Controleer je gebruikersnaam en wachtwoord voor de " "calibre periodiekendienst." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1454 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1434 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." @@ -12534,3 +12718,6 @@ msgstr "Download geen CSS stylesheets" #~ msgid "&Restrict to:" #~ msgstr "&Beperkt tot:" + +#~ msgid "Communicate with the Promedia eBook reader" +#~ msgstr "Communicatie met de Promedia eBook reader" diff --git a/src/calibre/translations/pl.po b/src/calibre/translations/pl.po index c729f6b13d..6bf8abd6fc 100644 --- a/src/calibre/translations/pl.po +++ b/src/calibre/translations/pl.po @@ -7,170 +7,170 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-07-20 22:48+0000\n" -"PO-Revision-Date: 2010-07-22 21:11+0000\n" -"Last-Translator: Bartosz Kaszubowski \n" +"POT-Creation-Date: 2010-08-09 13:57+0000\n" +"PO-Revision-Date: 2010-08-09 19:04+0000\n" +"Last-Translator: Piotr StrÄ™bski \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-07-23 04:05+0000\n" +"X-Launchpad-Export-Date: 2010-08-10 03:33+0000\n" "X-Generator: Launchpad (build Unknown)\n" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" msgstr "Ta opcja zupeÅ‚nie nic nie zmienia" -#: /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:75 -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 -#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:499 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:398 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:428 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:335 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 -#: /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:235 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:278 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:281 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:317 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:123 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:125 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:945 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057 -#: /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/txt.py:14 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:39 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:65 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 -#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 -#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 -#: /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:97 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:240 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:242 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:287 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:814 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:135 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:855 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:864 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1149 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:355 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:367 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1039 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1640 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1642 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:268 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:134 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:137 -#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:68 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:117 -#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46 -#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64 -#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:78 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:50 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/trunk/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:75 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/trunk/src/calibre/devices/prs500/books.py:267 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/sony_cache.py:506 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:405 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/input.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/input.py:100 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/metadata.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:402 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/input.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/input.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:335 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1896 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:24 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:236 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:279 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:282 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/book/base.py:20 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/book/base.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/ereader.py:36 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/ereader.py:61 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fb2.py:46 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:332 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:36 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:123 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/meta.py:125 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/opf2.py:945 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/opf2.py:1057 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pdb.py:39 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pdf.py:28 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/pml.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/txt.py:14 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:39 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:65 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:78 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:119 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:153 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:611 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:817 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/trunk/src/calibre/ebooks/odt/input.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/odt/input.py:51 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:911 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:916 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/reader.py:137 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/reader.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/jacket.py:108 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/writer.py:174 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/input.py:39 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/palmdoc/writer.py:29 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ztxt/writer.py:27 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:82 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:83 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:73 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:74 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:52 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:65 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:81 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:82 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/writer.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/writer.py:98 +#: /home/kovid/work/trunk/src/calibre/ebooks/rtf/input.py:234 +#: /home/kovid/work/trunk/src/calibre/ebooks/rtf/input.py:236 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:287 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:294 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:826 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:829 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/__init__.py:22 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:868 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:877 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1162 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:512 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:173 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:382 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:882 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1060 +#: /home/kovid/work/trunk/src/calibre/gui2/metadata.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/metadata.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:185 +#: /home/kovid/work/trunk/src/calibre/library/cli.py:213 +#: /home/kovid/work/trunk/src/calibre/library/database.py:913 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:358 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:370 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:979 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1048 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1649 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1651 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1773 +#: /home/kovid/work/trunk/src/calibre/library/server/mobile.py:199 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:134 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:137 +#: /home/kovid/work/trunk/src/calibre/library/server/xml.py:68 +#: /home/kovid/work/trunk/src/calibre/utils/localization.py:117 +#: /home/kovid/work/trunk/src/calibre/utils/podofo/__init__.py:46 +#: /home/kovid/work/trunk/src/calibre/utils/podofo/__init__.py:64 +#: /home/kovid/work/trunk/src/calibre/utils/podofo/__init__.py:78 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/collection.py:47 +#: /home/kovid/work/trunk/src/calibre/web/feeds/recipes/collection.py:50 msgid "Unknown" msgstr "Nieznany" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "Baza" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:172 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:172 msgid "File type" msgstr "Typ pliku" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:206 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:206 msgid "Metadata reader" msgstr "Czytnik metadanych" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:235 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:235 msgid "Metadata writer" msgstr "Zapisywanie metadanych" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:263 +#: /home/kovid/work/trunk/src/calibre/customize/__init__.py:263 msgid "Catalog generator" msgstr "Generator katalogu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:16 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:16 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 " @@ -180,7 +180,7 @@ msgstr "" "zawierajÄ…cy wszystkie podlinkowane pliki. Ta wtyczka jest uruchamiana za " "każdym razem, gdy dodasz plik HTML do biblioteki." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:52 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:52 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -188,7 +188,7 @@ msgstr "" "Kodowanie znaków dla źródÅ‚owych plików HTML. Popularne wybory to: cp1252, " "latin1, iso-8859-1 i utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:59 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:59 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 " @@ -198,57 +198,57 @@ msgstr "" "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:93 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:93 msgid "Extract cover from comic files" msgstr "WyodrÄ™bnij okÅ‚adki z plików komisów" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:131 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:143 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:153 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:163 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:174 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:184 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:214 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:224 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:235 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:258 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:279 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:290 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:300 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:310 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:120 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:131 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:143 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:153 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:163 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:174 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:184 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:194 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:204 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:214 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:224 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:235 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:246 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:258 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:279 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:290 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:300 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:310 msgid "Read metadata from %s files" msgstr "Odczytaj metadane z %s plików" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:269 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:269 msgid "Read metadata from ebooks in RAR archives" msgstr "Odczyt metadanych z e-booków w archiwach RAR" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:321 msgid "Read metadata from ebooks in ZIP archives" msgstr "Odczyt metadanych z e-booków w archiwach ZIP" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:334 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:344 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:354 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:397 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:334 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:344 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:354 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:376 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:387 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:397 msgid "Set metadata in %s files" msgstr "Ustaw metadane w %s plikach" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365 +#: /home/kovid/work/trunk/src/calibre/customize/builtins.py:365 msgid "Set metadata from %s files" msgstr "Pobierz metadane z %s plików" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 +#: /home/kovid/work/trunk/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "ŹródÅ‚owy format do konwersji" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 +#: /home/kovid/work/trunk/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 " @@ -260,11 +260,11 @@ msgstr "" "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:241 +#: /home/kovid/work/trunk/src/calibre/customize/conversion.py:237 msgid "Conversion Output" msgstr "Docelowy format po konwersji" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/trunk/src/calibre/customize/conversion.py:251 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." @@ -273,11 +273,11 @@ msgstr "" "dane, tak by byÅ‚y jak najbardziej czytelne dla czÅ‚owieka. Dla niektórych z " "wtyczek generujÄ…cych dane wyjÅ›ciowe może nie dawać to żadnych efektów ." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:45 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:45 msgid "Input profile" msgstr "Profil źródÅ‚owy" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:49 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:49 msgid "" "This profile tries to provide sane defaults and is useful if you know " "nothing about the input document." @@ -285,84 +285,84 @@ msgstr "" "Ten profil próbuje zapewnić rozsÄ…dne wartoÅ›ci domyÅ›lne i jest użyteczny, " "jeÅ›li nie wiesz nic o dokumencie wejÅ›ciowym." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:412 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:57 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:414 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" "Ten profil przeznaczony jest dla urzÄ…dzeÅ„ SONY z linii PRS. 500/505/600/700 " "itp." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:69 msgid "This profile is intended for the SONY PRS 300." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:447 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:78 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:449 msgid "This profile is intended for the SONY PRS-900." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia SONY PRS-900." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:477 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:86 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:479 msgid "This profile is intended for the Microsoft Reader." msgstr "Ten profil przeznaczony jest dla programu Microsoft Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:97 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:490 msgid "This profile is intended for the Mobipocket books." msgstr "Ten profil przeznaczony jest dla urzÄ…dzeÅ„ Mobipocket." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:501 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:110 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:503 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Hanlin V3 i jego klonów." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:122 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Hanlin V5 i jego klonów." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:521 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:132 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:523 msgid "This profile is intended for the Cybook G3." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Cybook G3." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:534 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:145 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:536 msgid "This profile is intended for the Cybook Opus." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Cybook Opus." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:545 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:157 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:547 msgid "This profile is intended for the Amazon Kindle." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Amazon Kindle." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:580 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:169 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:584 msgid "This profile is intended for the Irex Illiad." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Irex Illiad." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:593 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:181 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:597 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "" "Ten profil przeznaczony jest dla urzÄ…dzenia IRex Digital Reader 1000." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:607 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:611 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia IRex Digital Reader 800." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:621 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:206 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:625 msgid "This profile is intended for the B&N Nook." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia B&N Nook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:228 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:228 msgid "Output profile" msgstr "Profil wyjÅ›ciowy" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:232 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:232 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 " @@ -372,25 +372,25 @@ msgstr "" "jeÅ›li chcesz stworzyć dokument przeznaczony do odczytu na komputerze lub " "wiÄ™kszej liczbie urzÄ…dzeÅ„." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:259 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Przeznaczone dla iPada i podobnych urzÄ…dzeÅ„ z rozdzielczoÅ›ciÄ… 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:427 msgid "This profile is intended for the Kobo Reader." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:438 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:440 msgid "This profile is intended for the SONY PRS-300." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:456 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:458 msgid "This profile is intended for the 5-inch JetBook." msgstr "Ten profil przeznaczony jest dla 5 calowego urzÄ…dzenia JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:465 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:467 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -398,39 +398,39 @@ msgstr "" "Ten profil przeznaczony jest dla urzÄ…dzeÅ„ z linii SONY PRS w trybie " "panoramicznym. Np. 500/505/700 itd. Głównie użyteczny przy komiksach." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/trunk/src/calibre/customize/profiles.py:566 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:33 msgid "Installed plugins" msgstr "Zainstalowane wtyczki" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:34 msgid "Mapping for filetype plugins" msgstr "Mapowanie wtyczek dla róznych typów plików" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:35 msgid "Local plugin customization" msgstr "Lokalne dostosowanie wtyczek" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:35 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:36 msgid "Disabled plugins" msgstr "Wyłączone wtyczki" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:36 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:37 msgid "Enabled plugins" msgstr "Załączone wtyczki" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:84 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:85 msgid "No valid plugin found in " msgstr "Nie znaleziono wtyczki w " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:468 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:478 msgid "Initialization of plugin %s failed with traceback:" msgstr "Inicjacja wtyczki %s nie udaÅ‚a siÄ™ - przeÅ›ledź komunikaty:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:511 msgid "" " %prog options\n" "\n" @@ -442,16 +442,16 @@ msgstr "" " Spersonalizuj calibre poprzez zaÅ‚adowanie zewnÄ™trznych wtyczek\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:507 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:517 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "Dodaj wtyczkÄ™ przez podanie Å›cieżki do pliku, który jÄ… zawiera." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:509 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:519 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" "UsuÅ„ wtyczkÄ™ użytkownika - po nazwie. Nie ma wpÅ‚ywu na wtyczki wbudowane." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:511 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:521 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." @@ -459,23 +459,23 @@ msgstr "" "Dostosuj wtyczkÄ™. Wprowadź nazwÄ™ wtyczki i polecenie dostosowujÄ…ce " "oddzielajÄ…c przecinkami." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:513 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:523 msgid "List all installed plugins" msgstr "WyÅ›wietl wszystkie zainstalowane wtyczki" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:515 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:525 msgid "Enable the named plugin" msgstr "Włącz wtyczkÄ™" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:517 +#: /home/kovid/work/trunk/src/calibre/customize/ui.py:527 msgid "Disable the named plugin" msgstr "Wyłącz wtyczkÄ™" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 +#: /home/kovid/work/trunk/src/calibre/devices/android/driver.py:13 msgid "Communicate with Android phones." msgstr "Umożliwia komunikacjÄ™ z telefonami z Androidem." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:46 +#: /home/kovid/work/trunk/src/calibre/devices/android/driver.py:48 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -483,47 +483,47 @@ msgstr "" "Oddzielonych przecinkami listÄ™ katalogów, aby wysÅ‚ać e-książek w urzÄ…dzeniu. " "Pierwszy z nich, że istnieje zostanÄ… wykorzystane" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:88 +#: /home/kovid/work/trunk/src/calibre/devices/android/driver.py:90 msgid "Communicate with S60 phones." msgstr "Umożliwia komunikacjÄ™ z telefonami S60." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:87 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:87 msgid "Communicate with iTunes/iBooks." msgstr "Umożliwia komunikacjÄ™ z aplikacjami iTunes/iBooks." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:93 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:93 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "UrzÄ…dzenie Apple wykryte, uruchamianie iTunes, proszÄ™ czekać..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:249 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:246 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:249 msgid "Updating device metadata listing..." -msgstr "" +msgstr "Uaktualnianie listy metadanych..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:323 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:362 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:921 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:957 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2802 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2841 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:323 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:362 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:921 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:957 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2802 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2841 msgid "%d of %d" msgstr "%d z %d" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:369 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:962 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2847 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:369 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:962 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2847 msgid "finished" msgstr "zakoÅ„czone" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:544 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:544 msgid "Use Series as Category in iTunes/iBooks" -msgstr "Używaj serii jako kategorii w iTunes/iBooks" +msgstr "Używaj cyklu jako kategorii w iTunes/iBooks" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:546 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:546 msgid "Cache covers from iTunes/iBooks" -msgstr "" +msgstr "Przechowuj okÅ‚adki z iTunes/iBooks" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:558 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:558 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" @@ -533,7 +533,7 @@ msgstr "" "Usuwam używajÄ…c aplikacji iBooks.\n" "Kliknij 'Pokaż szczegóły', aby zobaczyć listÄ™." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:886 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:886 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." @@ -541,245 +541,258 @@ msgstr "" "Niektóre grafiki okÅ‚adek nie mogÅ‚y zostać przekonwertowane.\n" "Kliknij 'Pokaż szczegóły', aby zobaczyć listÄ™." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2471 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:807 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:813 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:841 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1524 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2471 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:817 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:823 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:851 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:244 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:187 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:200 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1533 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:132 msgid "News" msgstr "AktualnoÅ›ci" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2709 +#: /home/kovid/work/trunk/src/calibre/devices/apple/driver.py:2709 msgid "Communicate with iTunes." msgstr "Umożliwia komunikacjÄ™ z aplikacjÄ… iTunes" -#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/binatone/driver.py:17 msgid "Communicate with the Binatone Readme eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Binatone Readme." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/trunk/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Umożliwia komunikacjÄ™ z telefonami Blackberry." -#: /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 +#: /home/kovid/work/trunk/src/calibre/devices/blackberry/driver.py:14 +#: /home/kovid/work/trunk/src/calibre/devices/nuut2/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" msgstr "Kovid Goyal" -#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +#: /home/kovid/work/trunk/src/calibre/devices/cybook/driver.py:22 msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Cybook Gen 3 / Opus." -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 +#: /home/kovid/work/trunk/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek EB600." -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:193 +#: /home/kovid/work/trunk/src/calibre/devices/eb600/driver.py:193 msgid "Communicate with the Astak Mentor EB600" msgstr "Umożliwia komunikacjÄ™ z czytnikiem Astak Mentor EB600" -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:216 +#: /home/kovid/work/trunk/src/calibre/devices/eb600/driver.py:216 msgid "Communicate with the PocketBook 301 reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek PocketBook 301." -#: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" -#: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/edge/driver.py:18 msgid "Communicate with the Entourage Edge." msgstr "Umożliwia komunikacjÄ™ z czytnikiem Entourage Edge." -#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/eslick/driver.py:16 msgid "Communicate with the ESlick eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek ESlick." -#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:49 +#: /home/kovid/work/trunk/src/calibre/devices/eslick/driver.py:49 msgid "Communicate with the Sigmatek eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Sigmatek." -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:16 -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:30 +#: /home/kovid/work/trunk/src/calibre/devices/folder_device/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/folder_device/driver.py:30 msgid "Use an arbitrary folder as a device." msgstr "Użyj dowolnego folderu jako urzÄ…dzenia." -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/trunk/src/calibre/devices/folder_device/driver.py:26 +#: /home/kovid/work/trunk/src/calibre/devices/interface.py:14 msgid "Device Interface" msgstr "Interfejs urzÄ…dzenia" -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:19 msgid "Communicate with Hanlin V3 eBook readers." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Hanlin V3." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:87 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:87 msgid "Communicate with Hanlin V5 eBook readers." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Hanlin V5." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:106 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:106 msgid "Communicate with the BOOX eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek BOOX." -#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:123 +#: /home/kovid/work/trunk/src/calibre/devices/hanlin/driver.py:123 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used." msgstr "" +"Oddzielona przecinkami lista katalogów do przesyÅ‚ania e-booków na " +"urzÄ…dzenie. Zostanie użyta pierwsza istniejÄ…ca pozycja." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:18 msgid "Communicate with the Hanvon N520 eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Hanvon N520." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:40 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:40 msgid "Communicate with The Book reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek The Book." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:51 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:52 msgid "Communicate with the SpringDesign Alex eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek SpringDesign Alex." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:67 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:68 msgid "Communicate with the Azbooka" msgstr "Umożliwia komunikacjÄ™ z czytnikiem Azbooka." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:80 +#: /home/kovid/work/trunk/src/calibre/devices/hanvon/driver.py:81 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Elonex EB 511." -#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek IRex Iliad." -#: /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:38 +#: /home/kovid/work/trunk/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:42 msgid "John Schember" msgstr "John Schember" -#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 +#: /home/kovid/work/trunk/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek IRex Digital Reader 1000." -#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:42 +#: /home/kovid/work/trunk/src/calibre/devices/irexdr/driver.py:42 msgid "Communicate with the IRex Digital Reader 800" msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek IRex Digital Reader 800." -#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 +#: /home/kovid/work/trunk/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Iriver Story." -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 +#: /home/kovid/work/trunk/src/calibre/devices/jetbook/driver.py:20 msgid "Communicate with the JetBook eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek JetBook." -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:86 +#: /home/kovid/work/trunk/src/calibre/devices/jetbook/driver.py:86 msgid "Communicate with the MiBuk Wolder reader." -msgstr "" +msgstr "Umożliwia komunikacjÄ™ z czytnikiem MiBuk Wolder" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:42 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:42 msgid "Communicate with the Kindle eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Kindle." -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:169 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:169 msgid "Communicate with the Kindle 2 eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Kindle 2." -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:210 +#: /home/kovid/work/trunk/src/calibre/devices/kindle/driver.py:210 msgid "Communicate with the Kindle DX eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Kindle DX." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:22 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:22 msgid "Communicate with the Kobo Reader" msgstr "Umożliwia komunikacjÄ™ z czytnikiem Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:51 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:54 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:57 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:159 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:64 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:139 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:53 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:56 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:59 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:161 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:68 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:74 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:136 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:166 msgid "Getting list of books on device..." msgstr "Pobieranie listy książek znajdujÄ…cych siÄ™ na urzÄ…dzeniu" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:219 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:263 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:264 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:221 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:265 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:253 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:271 msgid "Removing books from device..." msgstr "Usuwanie książek z urzÄ…dzenia..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:267 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:276 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:269 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:276 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:278 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:283 msgid "Removing books from device metadata listing..." msgstr "Usuwanie książki z urzÄ…dzenia metadanych lista" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:279 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:313 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:210 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:240 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:281 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:217 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:247 msgid "Adding books to device metadata listing..." msgstr "Dodanie książki do urzÄ…dzenia metadanych lista..." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:15 +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:366 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:441 +msgid "Not Implemented" +msgstr "Niezaimplementowane" + +#: /home/kovid/work/trunk/src/calibre/devices/kobo/driver.py:367 +msgid "" +"\".kobo\" files do not exist on the device as books instead, they are rows " +"in the sqlite database. Currently they cannot be exported or viewed." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" msgstr "Umożliwia komunikacjÄ™ z telefonem Palm Pre." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:35 +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:37 msgid "Communicate with the Booq Avant" msgstr "Umożliwia komunikacjÄ™ z czytnikiem Booq Avant" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:55 +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:58 msgid "Communicate with the Sweex MM300" msgstr "Umożliwia komunikacjÄ™ z czytnikiem Sweex MM300." -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:75 +#: /home/kovid/work/trunk/src/calibre/devices/misc.py:78 msgid "Communicate with the Pandigital Novel" msgstr "Umożliwia komunikacjÄ™ z czytnikiem Pandigital Novel." -#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Umożliwia komunikacjÄ™ z tabletem internetowym Nokia 770." -#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +#: /home/kovid/work/trunk/src/calibre/devices/nokia/driver.py:40 msgid "Communicate with the Nokia 810 internet tablet." msgstr "Umożliwia komunikacjÄ™ z tabletem internetowym Nokia 810." -#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:74 +#: /home/kovid/work/trunk/src/calibre/devices/nokia/driver.py:74 msgid "Communicate with the Nokia E52" msgstr "Umożliwia komunikacjÄ™ z telefonem Nokia E52." -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:20 msgid "The Nook" msgstr "Nook" -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 +#: /home/kovid/work/trunk/src/calibre/devices/nook/driver.py:21 msgid "Communicate with the Nook eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Nook." -#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Nuut2." -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 +#: /home/kovid/work/trunk/src/calibre/devices/prs500/driver.py:89 msgid "Communicate with the Sony PRS-500 eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Sony PRS-500." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:22 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/driver.py:22 msgid "Communicate with all the Sony eBook readers." msgstr "Umożliwia komunikacjÄ™ ze wszystkimi czytnikami książek Sony." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:61 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/driver.py:61 msgid "" "Comma separated list of metadata fields to turn into collections on the " "device. Possibilities include: " @@ -787,44 +800,44 @@ msgstr "" "Lista oddzielonych przecinkami pól metadanych do włączenia do zbiorów w " "urzÄ…dzeniu. MożliwoÅ›ci obejmujÄ…: " -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:140 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 +#: /home/kovid/work/trunk/src/calibre/devices/prs505/sony_cache.py:144 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "Nienazwany" -#: /home/kovid/work/calibre/src/calibre/devices/sne/driver.py:17 +#: /home/kovid/work/trunk/src/calibre/devices/sne/driver.py:17 msgid "Communicate with the Samsung SNE eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Samsung SNE." -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:11 +#: /home/kovid/work/trunk/src/calibre/devices/teclast/driver.py:11 msgid "Communicate with the Teclast K3 reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Teclast K3." -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:37 +#: /home/kovid/work/trunk/src/calibre/devices/teclast/driver.py:37 msgid "Communicate with the Newsmy reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem Newsmy." -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:49 +#: /home/kovid/work/trunk/src/calibre/devices/teclast/driver.py:49 msgid "Communicate with the iPapyrus reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem iPapyrus." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:245 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:255 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "Wykrycie dysku %s niemożliwe. Spróbuj ponownie uruchomić komputer." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:435 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "Nie można wykryć %s punkt montowania. Spróbuj zrestartować system." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:490 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:500 msgid "Unable to detect the %s disk drive." msgstr "Nie można wykryć %s dysku." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:583 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:593 msgid "Could not find mount helper: %s." msgstr "Nie można znaleźć pomocnika montowania: %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:595 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:605 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." @@ -832,171 +845,173 @@ msgstr "" "Nie można wykryć %s dysku. JÄ…dro jest prawdopodobnie eksportujÄ…cych " "przestarzaÅ‚a wersja SYSFS." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:603 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:613 msgid "Unable to mount main memory (Error code: %d)" msgstr "Nie można zamontować pamiÄ™ci głównej (Kod błędu: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:740 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:742 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:750 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:752 msgid "The reader has no storage card in this slot." msgstr "Brak pamiÄ™ci na karcie urzÄ…dzenia w tym wejÅ›ciu." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:744 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:754 msgid "Selected slot: %s is not supported." msgstr "Wybrane gniazda: %s nie jest obsÅ‚ugiwany." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:783 msgid "There is insufficient free space in main memory" msgstr "NiewystarczajÄ…ca ilość wolnej pamiÄ™ci głównej" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:777 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:785 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/device.py:787 msgid "There is insufficient free space on the storage card" msgstr "Na karcie pamiÄ™ci jest niewystarczajÄ…ca ilość wolnego miejsca" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" msgstr "Konfiguruj urzÄ…dzenie" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:37 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:37 msgid "settings for device drivers" msgstr "ustawienia dla sterowników urzÄ…dzeÅ„" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:39 msgid "Ordered list of formats the device will accept" msgstr "UporzÄ…dkowana lista formatów akceptowanych przez urzÄ…dzenie" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:41 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:41 msgid "Place files in sub directories if the device supports them" msgstr "Umieszczaj pliki w podfolderach, jeÅ›li urzÄ…dzenie wpiera ich obsÅ‚ugÄ™" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:43 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:81 msgid "Read metadata from files on device" msgstr "Odczytaj dane meta z książek na urzÄ…dzeniu" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:45 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:45 msgid "Use author sort instead of author" -msgstr "" +msgstr "Użyj sortowania wedÅ‚ug autora zamiast autora" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:47 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:47 msgid "Template to control how books are saved" msgstr "Szablon do kontrolowania sposobu, w jaki książki sÄ… zapisywane" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:84 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/deviceconfig.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:84 msgid "Extra customization" msgstr "Dodatkowa personalizacja" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:41 msgid "Communicate with an eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:53 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:57 msgid "Get device information..." msgstr "Pobierz informacje o urzÄ…dzeniu..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:190 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:192 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:194 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:196 msgid "Transferring books to device..." msgstr "Przenoszenie książek na urzÄ…dzenie..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:307 +#: /home/kovid/work/trunk/src/calibre/devices/usbms/driver.py:314 msgid "Sending metadata to device..." msgstr "PrzesyÅ‚anie danych meta do urzÄ…dzenia..." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:41 msgid "%prog [options] mybook.chm" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:42 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:42 msgid "Output directory. Defaults to current directory" msgstr "Katalog docelowy. DomyÅ›lnie aktualny katalog" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:45 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:45 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:589 msgid "Set the book title" msgstr "Ustaw tytuÅ‚ książki" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:47 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:47 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:591 msgid "Set sort key for the title" msgstr "Ustaw klucz sortowania dla tytuÅ‚u" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:49 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:593 msgid "Set the author" msgstr "Ustaw autora" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:51 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:595 msgid "Set sort key for the author" msgstr "Ustaw klucz sortowania dla autorów" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:53 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:53 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:597 msgid "The category this book belongs to. E.g.: History" msgstr "Kategoria do jakiej należy tak książka np.: Historia" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:600 msgid "Path to a graphic that will be set as this files' thumbnail" msgstr "Åšciezka do grafiki, która ma być miniaturkÄ… tego pliku." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:59 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:59 msgid "Path to a txt file containing a comment." msgstr "Åšcieżka do pliku TXT zawierajÄ…cego komentarz." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:62 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:607 msgid "Extract thumbnail from LRF file" msgstr "Wypakuj miniaturkÄ™ z pliku LRF" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:63 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:63 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:608 msgid "Set the publisher" msgstr "Ustaw wydawcÄ™" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:609 msgid "Set the book classification" msgstr "Wpisz klasyfikacjÄ™ książki" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:65 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:65 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:610 msgid "Set the book creator" msgstr "Wpisz twórcÄ™ książki" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:611 msgid "Set the book producer" msgstr "Ustaw wytwórcÄ™ książki" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:68 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:68 +#: /home/kovid/work/trunk/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 "" +"Wypakuj okÅ‚adkÄ™ z pliku LRF. Format LRF nie zawiera zdefiniowanej okÅ‚adki " +"jako takiej, dlatego postaramy siÄ™ odgadnąć gdzie jest." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:615 msgid "Set book ID" msgstr "Wpisz identyfikator książki" -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/chm/reader.py:72 msgid "Set font delta" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:201 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:178 msgid "Rendered %s" msgstr "Wykonane %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:204 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:181 msgid "Failed %s" msgstr "Nieudane %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:261 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:235 msgid "" "Failed to process comic: \n" "\n" @@ -1006,7 +1021,7 @@ msgstr "" "\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:279 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:253 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 " @@ -1016,24 +1031,24 @@ msgstr "" "WartoÅ›ci mniejszej niż 256 może powodować niewyraźne tekst na urzÄ…dzeniu, " "jeÅ›li tworzenia komiksów w formacie EPUB." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:257 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Nie zezwalaj na normalizowanie (poprawianie kontrastu) głębi kolorów. " "DomyÅ›lne: FaÅ‚sz" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:286 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:260 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Zachowuj proporcjÄ™ wymiarów grafiki. DomyÅ›lnie grafika rozszerzana jest na " "caÅ‚y ekran." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:262 msgid "Disable sharpening." msgstr "Wyłącz wyostrzanie" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:264 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -1041,11 +1056,11 @@ msgstr "" "Wyłącz przyciÄ™cie komiks stron. Dla niektórych komiksy, przycinanie może " "usunąć treÅ›ci, jak również granice." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:267 msgid "Don't split landscape images into two portrait images" msgstr "Nie dziel grafik panoramicznych na dwie części" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:295 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:269 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -1053,7 +1068,7 @@ msgstr "" "Zachowaj format i skalÄ™ obrazu używajÄ…c wysokoÅ›ci ekranu jako szerokość " "obrazu podczas wyÅ›wietlania w trybie panoramicznym." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:298 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:272 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -1061,7 +1076,7 @@ msgstr "" "SÅ‚uży do prawej do lewej publikacje jak manga. Przyczyny stron krajobraz " "byÅ‚a podzielona na stronach portret od prawej do lewej." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:276 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -1069,7 +1084,7 @@ msgstr "" "Włącza odplamiacz. Zmniejsza zakłócenia powodowane plamami. Może znacznie " "wydÅ‚użyć czas przetwarzania." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:305 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:279 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -1077,7 +1092,7 @@ msgstr "" "Nie sortowanie plików znajdujÄ…cych siÄ™ w komiks alfabetycznie wedÅ‚ug nazwy. " "Zamiast korzystać z kolejnoÅ›ci, w jakiej zostaÅ‚y dodane do komiksu." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:309 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:283 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 " @@ -1086,20 +1101,20 @@ msgstr "" "Format zdjÄ™cia w stworzonym ebook sÄ… zamieniane na. Można eksperymentować, " "aby zobaczyć, w jakim formacie daje optymalny rozmiar i wyglÄ…d urzÄ…dzenia." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:313 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:287 msgid "Apply no processing to the image" msgstr "Nie uruchamiaj żadnych przeksztaÅ‚ceÅ„ obrazka." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:289 msgid "Do not convert the image to grayscale (black and white)" msgstr "Nie przeksztaÅ‚caj grafiki do skali szaroÅ›ci (czarno-biaÅ‚e)" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:463 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:426 +#: /home/kovid/work/trunk/src/calibre/ebooks/comic/input.py:437 msgid "Page" msgstr "Strona" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:19 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:19 msgid "" "input_file output_file [options]\n" "\n" @@ -1125,32 +1140,32 @@ msgid "" "For full documentation of the conversion system see\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:97 msgid "INPUT OPTIONS" msgstr "OPCJE PLIKU ŹRÓDÅOWEGO" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:98 msgid "Options to control the processing of the input %s file" msgstr "Opcje umożliwiajÄ…ce kontrolÄ™ nad przetwarzaniem pliku źródÅ‚owego %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:104 msgid "OUTPUT OPTIONS" msgstr "OPCJE PLIKU WYJÅšCIOWEGO" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:105 msgid "Options to control the processing of the output %s" msgstr "Opcje umożliwiajÄ…ce kontrolÄ™ nad przetwarzaniem pliku wyjÅ›ciowego %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:119 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:119 msgid "Options to control the look and feel of the output" msgstr "" "Opcje umożliwiajÄ…ce kontrolÄ™ nad wyglÄ…dem i zachowaniem pliku wyjÅ›ciowego" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:135 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:135 msgid "Control auto-detection of document structure." msgstr "Kontrola autodetekcji struktury dokumentu." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:145 +#: /home/kovid/work/trunk/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 " @@ -1160,58 +1175,72 @@ msgstr "" "źródÅ‚owy ma już spis treÅ›ci, to ma on pierwszeÅ„stwo przed tym wygenerowanym " "automatycznie." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:155 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:155 msgid "Options to set metadata in the output" msgstr "Opcje odpowiedzialne za ustawienia metadanych w plikach wyjÅ›ciowych" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:158 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:158 msgid "Options to help with debugging the conversion" msgstr "Opcje pomocy przy debugowaniu konwersji" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:183 msgid "List builtin recipes" msgstr "Lista wbudowanych źródeÅ‚" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:256 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/cli.py:256 msgid "Output saved to" msgstr "Plik wyjÅ›ciowy zapisany do" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:95 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:95 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:102 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:102 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 "" +"Zapisz wyniki z różnych etapów procesu konwersji do okreÅ›lonego katalogu. " +"Przydatne, gdy nie jesteÅ› pewien, na którym etapie procesu konwersji pojawia " +"siÄ™ błąd." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:111 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:111 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 "" +"OkreÅ›l profil wejÅ›cia. Profil wejÅ›cia podaje systemowi konwersji informacje " +"jak interpretować różne informacje w dokumencie wejÅ›ciowym. Na przykÅ‚ad " +"dÅ‚ugoÅ›ci zależne od rozdzielczoÅ›ci (tj. dÅ‚ugość w pikselach). Do wyboru jest:" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:122 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:122 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 "" +"OkreÅ›l profil wyjÅ›cia. Profil wyjÅ›cia informuje system konwersji, jak " +"zoptymalizować stworzony dokument dla okreÅ›lonego urzÄ…dzenia. W niektórych " +"przypadkach profil wyjÅ›cia jest konieczny, aby stworzyć dokument dziaÅ‚ajÄ…cy " +"na urzÄ…dzeniu. Na przykÅ‚ad EPUB na czytniku SONY. Do wyboru jest:" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:133 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:133 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 "" +"Rozmiar czcionki w punktach. Wszystkie rozmiary czcionki w książce bÄ™dÄ… " +"przeskalowane w oparciu o ten rozmiar. WybierajÄ…c wiÄ™kszy otrzymasz wiÄ™ksze " +"czcionki w dokumencie wyjÅ›ciowym. DomyÅ›lnie rozmiar czcionki jest okreÅ›lany " +"na podstawie wybranego profilu wyjÅ›ciowego." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:143 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:143 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-" @@ -1219,12 +1248,17 @@ msgid "" "algorithm uses these sizes to intelligently rescale fonts. The default is to " "use a mapping based on the output profile you chose." msgstr "" +"Mapowanie z CSS nazw czcionek do rozmiaru w punktach. PrzykÅ‚adowe ustawienia " +"to: 10,12,14,16,18,20,22,24. SÄ… to mapowania dla rozmiarów od xx-maÅ‚y do xx-" +"duży, gdzie ostatni rozmiar jest bardzo duży. Algorytm przeskalowywania " +"używa tych rozmiarów, aby inteligentnie zmieniać wielkość czcionki. " +"DomyÅ›lnie używane jest mapowanie bazujÄ…ce na wybranym profilu wyjÅ›ciowym." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:155 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:155 msgid "Disable all rescaling of font sizes." msgstr "Nie skaluj rozmiaru czcionek." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:162 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:162 msgid "" "The line height in pts. Controls spacing between consecutive lines of text. " "By default no line height manipulation is performed." @@ -1232,15 +1266,19 @@ msgstr "" "Wysokość linii w punktach. Kontroluje odstÄ™p miÄ™dzy kolejnymi liniami " "tekstu. DomyÅ›lnie żadne zmiany wysokoÅ›ci linii nie sÄ… zastosowane." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:170 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:170 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 "" +"Niektóre źle zaprojektowane dokumenty używajÄ… tabel do kontrolowania " +"rozmieszczenia tekstu na stronie. CzÄ™sto po konwersji w takich dokumentach " +"pojawia siÄ™ tekst wychodzÄ…cy poza stronÄ™ i inne błędy. Ta opcja wyÅ‚uska " +"tekst z tabel i przedstawi go w sposób ciÄ…gÅ‚y." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:180 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:180 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 " @@ -1250,7 +1288,7 @@ msgstr "" "zawartoÅ›ci spisu treÅ›ci na poziomie pierwszym, przed wszystkimi formami auto-" "wykrywania." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:189 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:189 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 " @@ -1260,7 +1298,7 @@ msgstr "" "zawartoÅ›ci spisu treÅ›ci na poziomie drugim. Każde wejÅ›cie jest dodawane pod " "wczeÅ›niejszy pierwszy poziom." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:197 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:197 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 " @@ -1270,7 +1308,7 @@ msgstr "" "zawartoÅ›ci spisu treÅ›ci na poziomie trzecim. Każde wejÅ›cie jest dodawane pod " "wczeÅ›niejszy drugi poziom." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:205 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:205 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 " @@ -1280,11 +1318,11 @@ msgstr "" "wygenerowanego automatycznie. Z tÄ… opcjÄ…, wygenerowany automatycznie spis " "treÅ›ci jest zawsze używany." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:213 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:213 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "Nie dodawaj automatycznie wykrytych rozdziałów do Spisu TreÅ›ci" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:220 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:220 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" @@ -1292,20 +1330,25 @@ msgstr "" "JeÅ›li wykryto mniej niż tyle rozdziałów, odnoÅ›niki sÄ… dodawane do spisu " "treÅ›ci (TOC). DomyÅ›lnie: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:227 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:227 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 "" +"Maksymalna ilość odnoÅ›ników do wstawienia do TOC. Ustaw 0 aby wyłączyć. " +"DomyÅ›lnie ustawienie: %default. OdnoÅ›niki sÄ… dodawane do TOC tylko jeÅ›li " +"odnaleziono mniej rozdziałów niż okreÅ›lony próg." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:235 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:235 msgid "" "Remove entries from the Table of Contents whose titles match the specified " "regular expression. Matching entries and all their children are removed." msgstr "" +"Usuwa wpisy ze Spisu TreÅ›ci, których tytuÅ‚y pasujÄ… do okreÅ›lonego wyrażenia. " +"PasujÄ…ce wpisy i wszystkie podrzÄ™dne zostanÄ… usuniÄ™te." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:246 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:246 msgid "" "An XPath expression to detect chapter titles. The default is to consider " "

    or

    tags that contain the words \"chapter\",\"book\",\"section\" or " @@ -1315,7 +1358,7 @@ msgid "" "User Manual for further help on using this feature." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:260 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:260 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 " @@ -1327,49 +1370,51 @@ msgstr "" "rozdziałami. Wartość \"brak\" wyłącza zaznaczanie rozdziałów, a \"wszystko\" " "włącza linie i strony przerw jednocześnie." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:270 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:270 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 "" +"Ścieżka do pliku stylów CSS lub sam CSS. Plik CSS zostanie dodany to stylów " +"z pliku źródłowego, może więc zostać użyty do nadpisania tych zasad." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:279 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:279 msgid "" "An XPath expression. Page breaks are inserted before the specified elements." msgstr "" "Wyrażenie XPath. Znaczniki końca strony są wstawiane przez określonymi " "elementami." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:285 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:285 msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Ustaw górny margines w punktach. Domyślna wartość %default. Informacja: 72 " "punkty to 1 cal." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:290 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:290 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Ustaw dolny margines w punktach. Domyślna wartość %default. Informacja: 72 " "punkty to 1 cal." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:295 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:295 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Ustaw lewy margines w punktach. Domyślna wartość %default. Informacja: 72 " "punkty to 1 cal." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:300 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:300 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Ustaw prawy margines w punktach. Domyślna wartość %default. Informacja: 72 " "punkty to 1 cal." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:306 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:306 msgid "" "Change text justification. A value of \"left\" converts all justified text " "in the source to left aligned (i.e. unjustified) text. A value of " @@ -1378,27 +1423,27 @@ msgid "" "Note that only some output formats support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:316 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:323 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:323 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:330 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:330 msgid "" "Use the cover detected from the source file in preference to the specified " "cover." msgstr "Preferuj okładkę z pliku źródłowego w stosunku do wybranej okładki." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:336 msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (

    or

    tags)." @@ -1406,7 +1451,7 @@ msgstr "" "Wstaw pusta linię pomiędzy paragrafami. Ustawienie nie będzie działać, jeśli " "plik źródłowy nie używa pragrafów (znaczników

    lub

    )." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:343 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:343 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." @@ -1415,37 +1460,37 @@ msgstr "" "książka na pierwszej stronie zawiera okÅ‚adkÄ™, a ty wybraÅ‚eÅ› okÅ‚adkÄ™ " "zewnÄ™trznÄ…." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:351 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:351 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." +"ebook nie obsÅ‚uguje wyÅ›wietlania/wyszukiwania metadanych bezpoÅ›rednio." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:359 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:367 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:367 msgid "Use a regular expression to try and remove the header." msgstr "Użyj wyrażenia regularnego aby spróbować usunąć nagłówek." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:374 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:374 msgid "The regular expression to use to remove the header." msgstr "Wyrażenie regularne używane do usuwania nagłówka." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:380 msgid "Use a regular expression to try and remove the footer." msgstr "Użyj wyrażenia regularnego aby spróbować usunąć stopkÄ™." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:387 msgid "The regular expression to use to remove the footer." msgstr "Wyrażenie regularne używane do usuwania stopki." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:394 msgid "" "Read metadata from the specified OPF file. Metadata read from this file will " "override any metadata in the source file." @@ -1453,7 +1498,7 @@ msgstr "" "Odczytaj metadane ze wybranego pliku OPF. Metadane odczytane z tego pliku " "nadpiszÄ… każde metadane pliku źródÅ‚owego." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:401 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1463,7 +1508,7 @@ msgid "" "number of people will be used (Chinese in the previous example)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:416 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:416 msgid "" "Preserve ligatures present in the input document. A ligature is a special " "rendering of a pair of characters like ff, fi, fl et cetera. Most readers do " @@ -1473,115 +1518,115 @@ msgid "" "instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:428 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:428 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:38 msgid "Set the title." msgstr "Wpisz tytuÅ‚." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:432 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:432 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" "Wpisz autorów. JeÅ›li jest wiÄ™cej niż jeden, należy oddzielić ich znakami et " "(\"&\")." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:437 msgid "The version of the title to be used for sorting. " msgstr "Wersja tytuÅ‚u używana przy sortowaniu. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:441 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:441 msgid "String to be used when sorting by author. " msgstr "ÅaÅ„cuch znaków używany przy sortowaniu po autorze. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:445 msgid "Set the cover to the specified file or URL" msgstr "Ustaw okÅ‚adkÄ™ wybierjąć plik lub podajÄ…c adres URL." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:449 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:54 msgid "Set the ebook description." msgstr "Wpisz opis książki." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:453 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:56 msgid "Set the ebook publisher." msgstr "Wpisz wydawcÄ™ książki." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:457 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:457 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:60 msgid "Set the series this ebook belongs to." -msgstr "Wpisz seriÄ™, do której należy książka." +msgstr "Wpisz cykl, do którego należy książka." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:461 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:461 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." -msgstr "Ustaw indeks ksiÄ…zki w serii." +msgstr "Ustaw numer ksiÄ…zki w cyklu." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:465 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:465 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:64 msgid "Set the rating. Should be a number between 1 and 5." msgstr "Wpisz ocenÄ™. Musi to być cyfra pomiÄ™dzy 1 a 5." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:469 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:469 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:66 msgid "Set the ISBN of the book." msgstr "Wpisz numer ISBN książki." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:473 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:68 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:473 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:68 msgid "Set the tags for the book. Should be a comma separated list." msgstr "Wpisz etykiety dla książki. Kolejne etykiety oddzielaj przecinkami." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:477 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:477 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:70 msgid "Set the book producer." -msgstr "" +msgstr "Ustaw producenta książki." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:481 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:481 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:72 msgid "Set the language." msgstr "Wpisz jÄ™zyk." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:485 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:485 msgid "Set the publication date." msgstr "Ustaw datÄ™ publikacji." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:489 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:489 msgid "Set the book timestamp (used by the date column in calibre)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:589 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:589 msgid "Could not find an ebook inside the archive" msgstr "Nie znaleziono książki w archiwum" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:647 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:647 msgid "Values of series index and rating must be numbers. Ignoring" -msgstr "WartoÅ›ci indeksu serii i oceny muszÄ… być cyframi. IgnorujÄ™" +msgstr "WartoÅ›ci numeru w cyklu i oceny muszÄ… być liczbami. IgnorujÄ™" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:654 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:654 msgid "Failed to parse date/time" msgstr "Nie udaÅ‚o siÄ™ porzetworzyć daty/czasu" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:809 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:809 msgid "Converting input to HTML..." msgstr "KonwertujÄ™ plik źródÅ‚owy na plik HTML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:836 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:836 msgid "Running transforms on ebook..." msgstr "Wykonywanie przeksztaÅ‚ceÅ„ na książce..." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:923 +#: /home/kovid/work/trunk/src/calibre/ebooks/conversion/plumber.py:923 msgid "Creating" msgstr "Tworzenie" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/__init__.py:18 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/__init__.py:18 msgid "ePub Fixer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/epubcheck.py:18 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/epubcheck.py:18 msgid "Workaround epubcheck bugs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/epubcheck.py:22 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/epubcheck.py:22 msgid "" "Workarounds for bugs in the latest release of epubcheck. epubcheck reports " "many things as errors that are not actually errors. epub-fix will try to " @@ -1589,7 +1634,7 @@ msgid "" "cause significant changes to your epub, complain to the epubcheck project." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:19 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/main.py:19 msgid "" "%prog [options] file.epub\n" "\n" @@ -1600,31 +1645,31 @@ msgid "" "detected. Use the options to control which errors are automatically fixed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:50 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/main.py:50 msgid "You must specify an epub file" msgstr "Musisz wybrać plik EPUB" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:17 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/unmanifested.py:17 msgid "Fix unmanifested files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/unmanifested.py:21 msgid "" "Fix unmanifested files. epub-fix can either add them to the manifest or " "delete them as specified by the delete unmanifested option." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/fix/unmanifested.py:32 msgid "Delete unmanifested files instead of adding them to the manifest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:56 msgid "" "Extract the contents of the generated EPUB file to the specified directory. " "The contents of the directory are first deleted, so be careful." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:62 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:62 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 " @@ -1633,7 +1678,7 @@ msgid "" "turn off splitting on page breaks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:73 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:73 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 " @@ -1644,7 +1689,7 @@ msgstr "" "dużych rozmiarach. DomyÅ›lna wartość %defaultKB to rozmiar wymagany przez " "Adobe Digital Editions." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:80 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:80 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 " @@ -1654,15 +1699,19 @@ msgstr "" "domyÅ›lna okÅ‚adka jest generowana z tytuÅ‚em, autorami itp. Ta opcja wyłącza " "tworzenie takiej okÅ‚adki." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:86 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:86 msgid "" "Do not use SVG for the book cover. Use this option if your EPUB is going to " "be used on a device that does not support SVG, like the iPhone or the " "JetBook Lite. Without this option, such devices will display the cover as a " "blank page." msgstr "" +"Nie używaj SVG do okÅ‚adki książki. Użyj tej opcji, jeÅ›li Twój EPUB bÄ™dzie " +"odczytywany na urzÄ…dzeniu, które nie wspiera SVG, jak iPhone czy JetBook " +"Lite. Bez tej opcji takie urzÄ…dzenia bÄ™dÄ… wyÅ›wietlać okÅ‚adkÄ™ jako pustÄ… " +"stronÄ™." -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:94 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:94 msgid "" "When using an SVG cover, this option will cause the cover to scale to cover " "the available screen area, but still preserve its aspect ratio (ratio of " @@ -1671,42 +1720,42 @@ msgid "" "option the image may be slightly distorted, but there will be no borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:169 +#: /home/kovid/work/trunk/src/calibre/ebooks/epub/output.py:169 msgid "Start" msgstr "Rozpocznij" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 -#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/trunk/src/calibre/ebooks/rb/rbml.py:102 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "Spis treÅ›ci:" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/input.py:32 msgid "Do not insert a Table of Contents at the beginning of the book." msgstr "Nie wstawiaj spisu treÅ›ci na poczÄ…tku książki." -#: /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 +#: /home/kovid/work/trunk/src/calibre/ebooks/fb2/output.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/output.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/pml/output.py:37 +#: /home/kovid/work/trunk/src/calibre/ebooks/rb/output.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/output.py:35 msgid "Add Table of Contents to beginning of the book." msgstr "Dodaj spis treÅ›ci na poczÄ…tku książki." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:248 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:248 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:255 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:255 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:264 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:264 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 " @@ -1714,66 +1763,66 @@ msgid "" "pipeline." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:272 +#: /home/kovid/work/trunk/src/calibre/ebooks/html/input.py:272 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 +#: /home/kovid/work/trunk/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." msgstr "Stwórz plik LIT z pliku EPUB..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:320 msgid "\tBook Designer file detected." msgstr "\twykryto plik Book Designer." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:322 msgid "\tParsing HTML..." msgstr "\tAnalizowanie HTML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:345 msgid "\tBaen file detected. Re-parsing..." msgstr "\tWykryto plik Baen. Ponowna analiza..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:361 msgid "Written preprocessed HTML to " msgstr "Zapisano wstÄ™pnie przetworziny HTML do " -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:379 msgid "Processing %s" msgstr "Przetwarzanie %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:393 msgid "\tConverting to BBeB..." msgstr "\tKonwersja do 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 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:552 msgid "Could not parse file: %s" msgstr "Nie można przetworzyć pliku: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:544 msgid "%s is an empty file" msgstr "%s jest pustym plikiem" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:564 msgid "Failed to parse link %s %s" msgstr "Analiza odnoÅ›nika %s %s nie powiodÅ‚a siÄ™" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" msgstr "Nie można dodać odnoÅ›nika %s do spisu treÅ›ci" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" msgstr "Nie można przetworzyć obrazu %s. Błąd: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" msgstr "Nie można byÅ‚o przetworzyć pliku PNG z przepolotem %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1017 msgid "" "Could not process image: %s\n" "%s" @@ -1781,12 +1830,12 @@ msgstr "" "Nie można przetworzyć grafiki: %s\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1772 msgid "" "An error occurred while processing a table: %s. Ignoring table markup." msgstr "Błąd podczas przetwarzania tabeli: %s. IgnorujÄ™ znaczniki tabel." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1774 msgid "" "Bad table:\n" "%s" @@ -1794,23 +1843,23 @@ msgstr "" "NieprawidÅ‚owy spis:\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1796 msgid "Table has cell that is too large" msgstr "Tabela zawiera zbyt dużą komórkÄ™" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1862 msgid "Could not read cover image: %s" msgstr "Nie można odczytać grafiki okÅ‚adki: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Cannot read from: %s" msgstr "Nie można odczytać z: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/html/convert_from.py:1994 msgid "Failed to process opf file" msgstr "Nie udaÅ‚o siÄ™ przetworzyć pliku opf" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:136 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:136 msgid "" "%prog book.lrf\n" "Convert an LRF file into an LRS (XML UTF-8 encoded) file" @@ -1818,31 +1867,31 @@ msgstr "" "%prog book.lrf\n" "Konwertuje plik LRF do pliku LRS (rozkodowanego jako XML UTF-8 encoded)" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:137 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:137 msgid "Output LRS file" msgstr "WyjÅ›ciowy plik LRS" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:139 msgid "Do not save embedded image and font files to disk" msgstr "Nie zapisuj zagnieżdżonych w pliku grafik i czcionek na dysku" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:158 msgid "Parsing LRF..." msgstr "Analizowanie LRF..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:161 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:161 msgid "Creating XML..." msgstr "tworzenie XML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrfparser.py:163 msgid "LRS written to " msgstr "Plik LRS zapisany do " -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:267 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:267 msgid "Could not read from thumbnail file:" msgstr "Nie można odczytać z pliku miniaturki:" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:287 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:287 msgid "" "%prog [options] file.lrs\n" "Compile an LRS file into an LRF file." @@ -1850,24 +1899,24 @@ msgstr "" "%prog [opcje] file.lrs\n" "Skompiluj plik LRS do pliku LRF." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:288 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:288 msgid "Path to output file" msgstr "Åšcieżka do pliku wyjÅ›ciowego" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:114 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:290 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:114 msgid "Verbose processing" msgstr "Szczegółowe komunikaty w czasie pracy" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:292 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/lrs/convert_from.py:292 msgid "Convert LRS to LRS, useful for debugging." msgstr "Konwersja LRS do LRS, opcja przydatna przy debugowaniu." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:457 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:457 msgid "Invalid LRF file. Could not set metadata." msgstr "NiewÅ‚aÅ›ciwy plik LRF. Nie można ustawić metadanych." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:582 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:582 msgid "" "%prog [options] mybook.lrf\n" "\n" @@ -1881,27 +1930,27 @@ msgstr "" "Pokaż/edytuj metadane w pliku LRF.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:603 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/meta.py:603 msgid "" "Path to a txt file containing the comment to be stored in the lrf file." msgstr "" "Åšcieżka do pliku TXT zawierajÄ…cego komentarz, który ma zostać zapisany w " "pliku LRF." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:90 msgid "Enable autorotation of images that are wider than the screen width." msgstr "Włącz automatyczne obracanie obrazów, które sÄ… szersze niż ekran." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:94 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:94 msgid "Set the space between words in pts. Default is %default" msgstr "" "Ustaw odstÄ™p pomiÄ™dzy sÅ‚owami w punktach (pt). DomyÅ›lnie wynosi on %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:97 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:97 msgid "Add a header to all the pages with title and author." msgstr "Dodaj nagłówek z tytuÅ‚em i autorem do wszystkich stron." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:100 +#: /home/kovid/work/trunk/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" @@ -1909,13 +1958,13 @@ msgstr "" "Ustaw format nagłówka. %a jest zastÄ™powane nazwiskiem autora, %t - tytuÅ‚em " "książki. Styl domyÅ›lny: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:104 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:104 msgid "Add extra spacing below the header. Default is %default pt." msgstr "" "Dodaj dodatkowy odstÄ™p poniżej nagłówka. DomyÅ›lna wartość to %default " "punktów." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:107 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:107 msgid "" "Minimum paragraph indent (the indent of the first line of a paragraph) in " "pts. Default: %default" @@ -1923,7 +1972,7 @@ msgstr "" "Minimalne wciÄ™cie paragrafu (wciÄ™cie pierwszej linii paragrafu) w pts. " "DomyÅ›lnie: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:112 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:112 msgid "" "Render tables in the HTML as images (useful if the document has large or " "complex tables)" @@ -1931,7 +1980,7 @@ msgstr "" "WyÅ›wietlaj tabele w plikach HTML jako obrazki (przydatne, gdy dokument " "zawiera duże lub zÅ‚ożone tabele)" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:117 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:117 msgid "" "Multiply the size of text in rendered tables by this factor. Default is " "%default" @@ -1939,120 +1988,122 @@ msgstr "" "Pomnóż wielkość tekstu w wyÅ›wietlanych tabelach przez ten współczynnik. " "DomyÅ›lny to %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:121 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:121 msgid "The serif family of fonts to embed" msgstr "Rodzina czcionek szeryfowych do umieszczenia" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:124 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:124 msgid "The sans-serif family of fonts to embed" msgstr "Rodzina czcionek sans-serif do umieszczenia" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:127 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:127 msgid "The monospace family of fonts to embed" msgstr "Rodzina czcionek o staÅ‚ej szerokoÅ›ci do umieszczenia" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:152 +#: /home/kovid/work/trunk/src/calibre/ebooks/lrf/output.py:152 msgid "Comic" msgstr "Komiks" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:396 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:543 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:397 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:359 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:887 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:550 msgid "Title" msgstr "TytuÅ‚" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:397 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:888 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:398 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:364 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:888 msgid "Author(s)" msgstr "Autor(rzy)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:398 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:399 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "Wydawca" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:399 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:400 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Producent" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:400 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1079 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:401 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:210 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:211 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:318 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1079 msgid "Comments" msgstr "Komentarze" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:408 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:143 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:409 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:306 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1075 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:143 msgid "Tags" msgstr "Etykiety" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:410 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:91 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:323 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1084 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:91 msgid "Series" -msgstr "Seria" +msgstr "Cykl" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:411 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:412 msgid "Language" msgstr "JÄ™zyk" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:414 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1067 msgid "Timestamp" msgstr "Data" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:416 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:70 msgid "Published" msgstr "Opublikowana" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:417 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/__init__.py:418 msgid "Rights" msgstr "Uprawnienia" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:85 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/amazon.py:85 msgid "EDITORIAL REVIEW" msgstr "PRZEGLÄ„D REDAKCYJNY" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/archive.py:41 msgid "" "Extract common e-book formats from archives (zip/rar) files. Also try to " "autodetect if they are actually cbz/cbr files." msgstr "" +"Wypakuj popularne formaty e-booków z plików archiwów (zip/rar). Spróbuj " +"także automatycznie wykryć, czy sÄ… to pliki cbz/cbr." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:20 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:20 msgid "options" msgstr "opcje" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:21 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:21 msgid "" "\n" "Read/Write metadata from/to ebook files.\n" @@ -2066,7 +2117,7 @@ msgid "" "silently ignored.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:40 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:40 msgid "" "Set the authors. Multiple authors should be separated by the & character. " "Author names should be in the order Firstname Lastname." @@ -2074,7 +2125,7 @@ msgstr "" "Ustaw autorów. JeÅ›li wystÄ™puje kilku autorów oddzielaj ich za pomocÄ… znaku " "\"&\". Dane autorów powinny być podane w kolejnoÅ›ci: ImiÄ™ Nazwisko." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:44 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:44 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." @@ -2082,106 +2133,140 @@ msgstr "" "Wersja tytuÅ‚u używana przy sortowaniu. JeÅ›li nie jest okreÅ›lona, a tytuÅ‚ " "jest podany, zostanie ona automatycznie wygenerowana z tytuÅ‚u." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:48 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:48 msgid "" "String to be used when sorting by author. If unspecified, and the author(s) " "are specified, it will be auto-generated from the author(s)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:52 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:52 msgid "Set the cover to the specified file." msgstr "Wybierz okÅ‚adkÄ™ dla wybranego pliku." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:58 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:58 msgid "Set the book category." msgstr "Wpisz kategoriÄ™ książki." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:74 msgid "Set the published date." msgstr "Ustaw datÄ™ publikacji." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:77 msgid "Get the cover from the ebook and save it at as the specified file." msgstr "Pobierz okÅ‚adkÄ™ z książki i zapisz jÄ… do okreÅ›lonego pliku." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:80 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:80 msgid "" "Specify the name of an OPF file. The metadata will be written to the OPF " "file." msgstr "OkreÅ›l nazwÄ™ dla pliku OPF. Metadane zostanÄ… zapisane w tym pliku." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:83 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:83 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:88 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:88 msgid "Set the BookID in LRF files" msgstr "Ustaw identyfikator książki w plikach LFR" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:153 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:153 msgid "No file specified" msgstr "Nie wybrano pliku" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:168 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:168 msgid "Original metadata" msgstr "Oryginalne metadane" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:185 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:185 msgid "Changed metadata" msgstr "Zmienione metadane" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:197 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:197 msgid "OPF created in" msgstr "Plik OPF stworzony w" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:203 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:203 msgid "Cover saved to" msgstr "OkÅ‚adka zapisana do" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:205 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/cli.py:205 msgid "No cover found" msgstr "Nie znaleziono okÅ‚adki" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:15 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:27 msgid "Cover download" msgstr "Pobiranie okÅ‚adki" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:79 +msgid "Download covers from openlibrary.org" +msgstr "Pobierz okÅ‚adki z openlibrary.org" + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:136 +msgid "ISBN: %s not found" +msgstr "ISBN: %s nie znaleziono" + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:117 +msgid "Download covers from librarything.com" +msgstr "Pobierz okÅ‚adki z librarything.com" + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:128 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:68 +msgid "LibraryThing.com timed out. Try again later." +msgstr "" +"Czas oczekiwania na odpowiedź z LibraryThing.com minÄ…Å‚. Spróbuj ponownie " +"później." + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:135 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:75 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" +"Nie można pobrać okÅ‚adki z serwera, z powodu zbyt dużego obciążenia. Spróbuj " +"ponownie później." + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/covers.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:79 +msgid "LibraryThing.com server error. Try again later." +msgstr "Błąd serwera LibraryThing.com. Spróbuj ponownie poźniej." + +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" msgstr "Pobierz metadane z Douban.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:50 msgid "Metadata download" msgstr "Pobieranie metadanych" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:127 msgid "ratings" msgstr "oceny" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:127 msgid "tags" -msgstr "tagi" +msgstr "etykiety" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:128 msgid "description/reviews" msgstr "opis/recenzje" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:129 msgid "Download %s from %s" msgstr "Pobierz %s z %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:139 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:155 msgid "Downloads metadata from Google Books" msgstr "Pobierz metadane z Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:172 msgid "Downloads metadata from isbndb.com" msgstr "Pobierz metadane z isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:184 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:200 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2189,15 +2274,15 @@ msgstr "" "Aby użyć bazy isbndb.com musisz stworzyc %sdarmowe konkto%s i wpisać poniżej " "klucz dostÄ™pu." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:194 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:210 msgid "Downloads social metadata from amazon.com" msgstr "Pobierz metadane spoÅ‚ecznoÅ›ciowe z amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:213 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/fetch.py:229 msgid "Downloads series/tags/rating information from librarything.com" -msgstr "Pobieraj seriÄ™/etykiety/oceny z librarything.com" +msgstr "Pobieraj cykl/etykiety/oceny z librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:95 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:95 msgid "" "\n" "%prog [options] key\n" @@ -2211,45 +2296,27 @@ msgid "" "\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:106 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:106 msgid "The ISBN ID of the book you want metadata for." msgstr "Kod ISBN książki, dla której chcesz pobrać metadane." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:108 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:108 msgid "The author whose book to search for." -msgstr "Autor, którego książki majÄ… być wyszukane." +msgstr "Autor poszukiwanych książek." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:110 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:110 msgid "The title of the book to search for." -msgstr "TutyÅ‚ poszukiwane książki." +msgstr "TytuÅ‚ poszukiwanej książki." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:112 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/isbndb.py:112 msgid "The publisher of the book to search for." -msgstr "" +msgstr "Wydawca poszukiwanej książki." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 -msgid "LibraryThing.com timed out. Try again later." -msgstr "" -"Czas oczekiwania na odpowiedź z LibraryThing.com minÄ…Å‚. Spróbuj ponownie " -"później." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 -msgid "" -"Could not fetch cover as server is experiencing high load. Please try again " -"later." -msgstr "" -"Nie można pobrać okÅ‚adki z serwera, z powodu zbyt dużego obciążenia. Spróbuj " -"ponownie później." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:76 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:76 msgid " not found." msgstr " nie znaleziono" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 -msgid "LibraryThing.com server error. Try again later." -msgstr "Błąd serwera LibraryThing.com. Spróbuj ponownie poźniej." - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/library_thing.py:86 msgid "" "\n" "%prog [options] ISBN\n" @@ -2258,20 +2325,20 @@ msgid "" "LibraryThing.com\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1226 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/trunk/src/calibre/ebooks/metadata/opf2.py:1226 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1399 msgid "Cover" msgstr "OkÅ‚adka" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:22 msgid "Modify images to meet Palm device size limitations." msgstr "Przekształć grafiki tak, aby odpowiadaÅ‚y limitom urzÄ…dzenia Palm." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:26 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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." @@ -2279,146 +2346,146 @@ msgstr "" "Nie dodawaj spisu treÅ›ci na koÅ„cu książki. Użyteczne jeÅ›li książka posiada " "wÅ‚asny spis treÅ›ci." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:33 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:33 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/htmltoc.py:56 msgid "Title for any generated in-line table of contents." msgstr "TytuÅ‚ dla automatuycznie wygenerowanego spisu treÅ›ci." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:37 msgid "Disable compression of the file contents." msgstr "Wyłącz kompresjÄ™ zawartoÅ›ci pliku." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:40 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:40 msgid "Tag marking book to be filed with Personal Docs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:108 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/output.py:108 msgid "All articles" msgstr "Wszystkie artykuÅ‚y" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/trunk/src/calibre/ebooks/mobi/reader.py:259 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "" "To jest książka z czytnika Amazon Topaz. Nie może ona zostać przetworzona." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1400 msgid "Title Page" msgstr "Strona tytuÅ‚owa" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:194 msgid "Table of Contents" msgstr "Spis treÅ›ci" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1402 msgid "Index" msgstr "Spis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1403 msgid "Glossary" msgstr "SÅ‚owniczek" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1404 msgid "Acknowledgements" msgstr "PodziÄ™kowania" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1405 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1406 msgid "Colophon" msgstr "Kolofon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1407 msgid "Copyright" msgstr "Prawa autorskie" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1408 msgid "Dedication" msgstr "Dedykacja" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1409 msgid "Epigraph" msgstr "Epigraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1410 msgid "Foreword" msgstr "PrzedsÅ‚owie" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1411 msgid "List of Illustrations" msgstr "Lista ilustracji" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1412 msgid "List of Tables" msgstr "Lista tabel" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1413 msgid "Notes" msgstr "Notatki" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1414 msgid "Preface" msgstr "WstÄ™p" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/base.py:1415 msgid "Main Text" msgstr "Tekst główny" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/iterator.py:41 msgid "%s format books are not supported" msgstr "książki formatu %s nie sÄ… wspierane" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 msgid "HTML TOC generation options." msgstr "Opcje generowania spisu treÅ›ci w HTML." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:113 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/transforms/jacket.py:113 msgid "Book Jacket" msgstr "Obwoluta" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 +#: /home/kovid/work/trunk/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 "" "Nie można znaleźć odpowiedniego punktu do podziaÅ‚u %s. Rozmiar pod-drzewa: " "%d KB" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/writer.py:32 msgid "OPF/NCX/etc. generation options." msgstr "Opcje generowania pilków OPF/NCX/itp." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:35 +#: /home/kovid/work/trunk/src/calibre/ebooks/oeb/writer.py:35 msgid "OPF version to generate. Default is %default." msgstr "Wersja OPF do wygenerowania. DomyÅ›lnie %default." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:37 +#: /home/kovid/work/trunk/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:128 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/reader132.py:128 msgid "Footnotes" msgstr "Przypisy" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:135 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/ereader/reader132.py:135 msgid "Sidebar" msgstr "Pasek boczny" -#: /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:24 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/trunk/src/calibre/ebooks/tcr/input.py:23 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:24 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:28 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/trunk/src/calibre/ebooks/tcr/input.py:27 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:28 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+ " @@ -2426,11 +2493,11 @@ msgid "" "starts with an indent is reached." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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." @@ -2438,22 +2505,22 @@ msgstr "" "OkreÅ›l kodowanie znaków dokumentu wyjÅ›ciowego. DomyÅ›lnie to cp1252. Uwaga: " "ta opcja nie jest honorowana przez wszystkie formaty." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/input.py:24 msgid "Do not extract images from the document" msgstr "Nie pobieraj grafik z dokumentu" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/input.py:30 msgid "Use the new PDF conversion engine." msgstr "Używaj nowego silnika konwersji do formatu PDF." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/cli.py:31 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/cli.py:31 msgid "" "command ...\n" "\n" @@ -2465,7 +2532,7 @@ msgid "" "Manipulate a PDF.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:29 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:29 msgid "" "[options] file.pdf\n" "\n" @@ -2475,110 +2542,110 @@ msgstr "" "\n" "Przytnij plik 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 -#: /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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:38 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:32 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:36 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:33 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:41 msgid "" "Path to output file. By default a file is created in the current directory." msgstr "" "Åšcieżka do pliku wyjÅ›ciowego. DomyÅ›lnie jest on tworzony w katalogu bieżącym." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:41 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:41 msgid "Number of pixels to crop from the left most x (default is %s)" msgstr "Liczba pikseli do przyciÄ™cia od lewej osi X (domyÅ›lnie %s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:44 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:44 msgid "Number of pixels to crop from the left most y (default is %s)" msgstr "Liczba pikseli do przyciÄ™cia od lewej osi Y (domyÅ›lnie %s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:47 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:47 msgid "Number of pixels to crop from the right most x (default is %s)" msgstr "Liczba pikseli do przyciÄ™cia od prawej osi X (domyÅ›lnie %s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:50 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:50 msgid "Number of pixels to crop from the right most y (default is %s)" msgstr "Liczba pikseli do przyciÄ™cia od prawej osi Y (domyÅ›lnie %s)" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:53 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:73 msgid "Crop Options:" msgstr "Opcje przycinania:" -#: /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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/crop.py:73 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Options to control the transformation of pdf" msgstr "Opcje zwiÄ…zane z transformacjami plików PDF" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:23 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 msgid "Decrypt Options:" msgstr "Opcje dekodowania:" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 msgid "Encrypt Options:" msgstr "Opcje kodowania:" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 +#: /home/kovid/work/trunk/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 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author" msgstr "Autor" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:47 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:47 msgid "Subject" msgstr "Temat" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:48 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:48 msgid "Creator" msgstr "Autor" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:50 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:50 msgid "Pages" msgstr "Strony" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:51 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:51 msgid "File Size" msgstr "Rozmiar pliku" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/info.py:52 msgid "PDF Version" msgstr "Wersja PDF" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:25 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:25 msgid "" "[options] file1.pdf file2.pdf ...\n" "\n" @@ -2587,33 +2654,33 @@ msgid "" "Merges individual PDFs.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/merge.py:56 msgid "Merge Options:" msgstr "Opcje scalania:" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:25 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/reverse.py:54 msgid "Reverse Options:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:24 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/rotate.py:53 msgid "Rotate Options:" msgstr "Opcje obracania:" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:25 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:25 msgid "" "\n" "%prog %%name [options] file.pdf page_to_split_on ...\n" @@ -2628,11 +2695,11 @@ msgid "" "Split a PDF.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Split Options:" msgstr "Opcje dzielenia:" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:31 +#: /home/kovid/work/trunk/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!" @@ -2640,7 +2707,7 @@ msgstr "" "Jednostka miary. DomyÅ›lnie cale. Aktualnie to %s. Uwaga: Ta opcja nie " "zmienia jednostek miar dla marginesów!" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:36 +#: /home/kovid/work/trunk/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" @@ -2648,7 +2715,7 @@ msgstr "" "Rozmiar papieru. Rozmiar ten bÄ™dzie nadpisany, jeÅ›li używany jest któryÅ› z " "profili wyjÅ›cia. DomyÅ›lny rozmiar to rozmiar listu. Do wyboru masz %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:40 +#: /home/kovid/work/trunk/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." @@ -2657,11 +2724,11 @@ msgstr "" "szerokośćxwysokość np. \"123x321\". Nadpisuje każde domyÅ›lne ustawienia " "papieru." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:45 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/output.py:45 msgid "The orientation of the page. Default is portrait. Choices are %s" msgstr "Orientacja strony. DomyÅ›lnie pionowo. Aktualnie %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:49 +#: /home/kovid/work/trunk/src/calibre/ebooks/pdf/output.py:49 msgid "" "Preserve the aspect ratio of the cover, instead of stretching it to fill the " "ull first page of the generated pdf." @@ -2669,28 +2736,31 @@ msgstr "" "Zachowaj pierwotne proporcje boków okÅ‚adki zamiast rozciÄ…gania jej, by " "zajmowaÅ‚a całą pierwszÄ… stronÄ™ wygenerowanego pliku pdf." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/ebooks/pml/output.py:33 msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "OkreÅ›l kodowanie znaków dokumentu wyjÅ›ciowego. DomyÅ›lnie to cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:200 +#: /home/kovid/work/trunk/src/calibre/ebooks/rtf/input.py:194 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" "%s" msgstr "" +"Ten plik RTF zawiera opcjÄ™, której calibre nie wspiera. Skonwertuj go " +"najpierw do HTML, a potem spróbuj ponownie.\n" +"%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 +#: /home/kovid/work/trunk/src/calibre/ebooks/tcr/output.py:23 msgid "" "Specify the character encoding of the output document. The default is utf-8." msgstr "OkreÅ›l kodowanie znaków dokumentu wyjÅ›ciowego. DomyÅ›lnie to utf-8." -#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27 +#: /home/kovid/work/trunk/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 " @@ -2700,30 +2770,30 @@ msgstr "" "kompresja, ale najszybsze generowanie dokumentu, a 10 to najwyższa " "kompresja, ale najwolniejsze generowanie dokumentu." -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:34 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:34 msgid "" "Normally extra spaces are condensed into a single space. With this option " "all spaces will be displayed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:37 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:37 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:40 +#: /home/kovid/work/trunk/src/calibre/ebooks/txt/input.py:40 msgid "Do not insert a Table of Contents into the output text." msgstr "Nie wstawiaj spisu treÅ›ci do dokumentu wyjśćiowego." -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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." @@ -2731,7 +2801,7 @@ msgstr "" "OkreÅ›l kodowanie znaków dokumentu wyjÅ›ciowego. DomyÅ›lnie to utf-8. Uwaga: ta " "opcja nie jest honorowana przez wszystkie formaty." -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 +#: /home/kovid/work/trunk/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 " @@ -2739,405 +2809,413 @@ msgid "" "minimum of 25 characters. Use 0 to disable line splitting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 +#: /home/kovid/work/trunk/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:33 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:33 msgid "Send file to storage card instead of main memory by default" msgstr "" "WyÅ›lij plik do karty pamiÄ™ci zamiast domyÅ›lnie ustawionej głównej pamiÄ™ci." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:35 msgid "Confirm before deleting" msgstr "Potwierdź przed usuniÄ™ciem" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Struktura głównego okna" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Powiadom mnie, gdy dostÄ™pna jest nowa wersja" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" -msgstr "Używaj numeracji rzymskiej do numerowania serii" +msgstr "Używaj liczb rzymskich do numerowania cyklu" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by name, popularity, or rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "Liczba okÅ‚adek wyÅ›wietlanych w trybie przeglÄ…dania okÅ‚adek" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "DomyÅ›lne wartoÅ›ci dla konwersji do LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Lista formatów które bÄ™dÄ… otwierane w wewnÄ™trznej przeglÄ…darce" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Kolumny wyÅ›wietlane na liÅ›cie książek" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Automatycznie włączaj serwer zawartoÅ›ci przy starcie aplikacji" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Najstarsze aktualnoÅ›ci trzymane w bazie danych" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Pokaż ikonÄ™ w zasobniku systemowym" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "PrzeÅ›lij pobrane aktualnoÅ›ci na urzÄ…dzenie" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "UsuÅ„ książki z biblioteki po przesÅ‚aniu ich na urzÄ…dzenie" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Zablokuj powiadomienia z ikony w zasobniku systemowym" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "DomyÅ›lne dziaÅ‚anie do wykonania, gdy zostaÅ‚ klikniÄ™ty przycisk przesyÅ‚ania " "na urzÄ…dzenie" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Maksymalna liczba oczekujÄ…cych zadaÅ„" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Pobierz metadane spoÅ‚ecznoÅ›ciowe (etykiety/oceny/itd.)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:93 msgid "Overwrite author and title with new metadata" msgstr "Nadpisz autora i tytuÅ‚ z nowych metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" "Ogranicz maksymalnÄ… liczbÄ™ jednoczeÅ›nie przetwarzanych zadaÅ„ do liczby rdzeni" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:97 msgid "tag browser categories not to display" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:99 msgid "The layout of the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:101 msgid "Show the average rating per item indication in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:103 msgid "Disable UI animations" -msgstr "" +msgstr "Zablokuj animacje UI" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:476 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:151 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/__init__.py:479 msgid "Copied" msgstr "Skopiowano" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:185 msgid "Copy" msgstr "Kopiuj" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:185 msgid "Copy to Clipboard" msgstr "Kopiuj do schowka" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:396 +#: /home/kovid/work/trunk/src/calibre/gui2/__init__.py:397 msgid "Choose Files" msgstr "Wybiesz pliki" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:245 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:245 msgid "Use library only" msgstr "Użyj tylko biblioteki" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:246 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:246 msgid "User annotations generated from main library only" msgstr "Użyj tylko adnotacji wygenerowanych na podstawie biblioteki" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:611 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:670 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:707 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:941 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1059 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:623 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:682 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:719 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:740 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:925 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:998 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1116 msgid "No books selected" msgstr "Nie wybrano ksiÄ…zek" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:76 msgid "No books selected to fetch annotations from" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:101 msgid "Merging user annotations into database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:129 msgid "%s
    Last Page Read: %d (%d%%)" msgstr "%s
    Ostatnio czytana strona: %d (%d%%)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:135 msgid "%s
    Last Page Read: Location %d (%d%%)" msgstr "%s
    Ostatnio czytana strona: Lokalizacja %d (%d%%)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:154 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:154 msgid "Location %d • %s
    %s
    " msgstr "Lokalizacja %d • %s
    %s
    " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:163 msgid "Page %d • %s
    " msgstr "Strona %d • %s
    " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:168 msgid "Location %d • %s
    " msgstr "Lokalizacja %d • %s
    " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:291 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:291 msgid "How many empty books?" msgstr "Jak wiele pustych książek?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:292 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:292 msgid "How many empty books should be added?" msgstr "Jak wiele pustych książek powinno zostać dodanych?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:390 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:339 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:390 msgid "Uploading books to device." msgstr "Przesyłam książki na urządzenie." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:350 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:164 msgid "Books" msgstr "Książki" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:351 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:351 msgid "EPUB Books" msgstr "Książki EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:352 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:352 msgid "LRF Books" msgstr "Książki LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:353 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:353 msgid "HTML Books" msgstr "Książki HTML" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:354 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:354 msgid "LIT Books" msgstr "Książki LIT" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:355 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:355 msgid "MOBI Books" msgstr "Książki MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:356 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:356 msgid "Topaz books" -msgstr "" +msgstr "Książki Topaz" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:357 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:357 msgid "Text books" msgstr "Książki tekstowe" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:358 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:358 msgid "PDF Books" msgstr "Książki PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:359 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:359 msgid "Comics" msgstr "Komiksy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:360 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:360 msgid "Archives" msgstr "Archiwa" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:364 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:364 msgid "Supported books" msgstr "Wspierane książki" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:399 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:399 msgid "Merged some books" msgstr "Scal niektóre książki" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:400 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:400 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" +"Znaleziono duplikaty i złączono je z następującymi istniejącymi książkami:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:409 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:409 msgid "Failed to read metadata" msgstr "Nie można było odczytać metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:410 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:410 msgid "Failed to read metadata from the following" msgstr "Nie można było odczytać metadanych z nastepujących" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:429 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:448 msgid "Add to library" msgstr "Dodaj do biblioteki" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:429 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:459 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1228 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:429 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:473 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1285 msgid "No book selected" msgstr "Nie wybrano ksiązki" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:434 -msgid "No book files found" +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:442 +msgid "" +"The following books are virtual and cannot be added to the calibre library:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:456 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:448 +msgid "No book files found" +msgstr "Nie znaleziono żadnych plików książek" + +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:470 msgid "Cannot delete" msgstr "Usunięcie niemożliwe." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:469 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:483 msgid "Choose formats to be deleted" msgstr "Wybierz formaty do usunięcia" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:487 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:501 msgid "Choose formats not to be deleted" msgstr "Wybierz formaty, które nie zostaną usunięte" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:507 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:521 msgid "Cannot delete books" -msgstr "" +msgstr "Nie udało się usunąć książek" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:508 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:522 msgid "No device is connected" -msgstr "" +msgstr "Żadne urządzenie nie jest podłączone" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:518 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:532 msgid "Main memory" -msgstr "" +msgstr "Pamięć głowna" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:432 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:533 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:436 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:445 msgid "Storage Card A" -msgstr "" +msgstr "Karta pamięci A" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:534 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:438 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:447 msgid "Storage Card B" -msgstr "" +msgstr "Karta pamięci B" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:525 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:539 msgid "No books to delete" -msgstr "" +msgstr "Brak książek do usunięcia" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:526 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:540 msgid "None of the selected books are on the device" -msgstr "" +msgstr "Żadna z wybranych książek nie znajduje się na urządzeniu" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:600 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:557 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:612 msgid "Deleting books from device." msgstr "Usuwanie książek z urządzenia." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:564 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:578 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -"Wybrane książki będą permanentnie usunięte i ich pliki zostaną " -"usunięte z twojego komputera. Jesteś pewny?" +"Wybrane książki będą trwale usunięte i ich pliki zostaną usunięte z " +"twojego komputera. Jesteś pewien?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:585 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:597 msgid "" "The selected books will be permanently deleted from your device. Are " "you sure?" msgstr "" +"Wybrane książki będą trwale usunięte z twojego urządzenia. Jesteś " +"pewien?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:610 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:622 msgid "Cannot download metadata" msgstr "Nie można obrac metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:626 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:638 msgid "social metadata" msgstr "metadane społecznościowe" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:640 msgid "covers" msgstr "okładki" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:628 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:640 msgid "metadata" msgstr "metadane" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:630 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:642 msgid "Downloading %s for %d book(s)" msgstr "Pobieram %s dla %d książki(ek)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:654 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:666 msgid "Failed to download some metadata" msgstr "Nie udało się pobrać niektórych metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:655 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:667 msgid "Failed to download metadata for the following:" msgstr "Nie udało się pobrać metadanych dla następujących e-ksiązek:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:658 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:670 msgid "Failed to download metadata:" msgstr "Nie udało się pobrać metadanych:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:659 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:595 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:953 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:671 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:608 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:962 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Błąd" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:706 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:681 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:718 msgid "Cannot edit metadata" msgstr "Nie można edytować metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:727 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:730 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:739 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:742 msgid "Cannot merge books" msgstr "Nie można połączyć książek" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:731 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:743 msgid "At least two books must be selected for merging" msgstr "Conajmniej dwie książki muszą zostać wybrane, aby móc je połączyć" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:735 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:747 msgid "" "All book formats and metadata from the selected books will be added to the " "first selected book.

    The second and subsequently selected " @@ -3145,7 +3223,7 @@ msgid "" "proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:746 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:758 msgid "" "All book formats and metadata from the selected books will be merged into " "the first selected book.

    After merger the second and " @@ -3155,7 +3233,7 @@ msgid "" "from your computer.

    Are you sure you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:758 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:770 msgid "" "You are about to merge more than 5 books. Are you sure you want to " "proceed?" @@ -3163,93 +3241,105 @@ msgstr "" "Chcesz połączyć więcej niż 5 książek. Jesteś pewien, że chcesz " "kontynuować?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:875 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:924 msgid "Cannot save to disk" msgstr "Nie można zapisać na dysku" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:878 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:927 msgid "Choose destination directory" msgstr "Wyberz folder docelowy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:911 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:933 +#: /home/kovid/work/trunk/src/calibre/gui2/library/views.py:566 +msgid "Not allowed" +msgstr "Niedozwolone" + +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:934 +msgid "" +"You are trying to save files into the calibre library. This can cause " +"corruption of your library. Save to disk is meant to export files from your " +"calibre library elsewhere." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:968 msgid "Error while saving" msgstr "Błąd podczas zapisywania" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:912 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:969 msgid "There was an error while saving." msgstr "Wysapił błąd podczas zapisywania." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:920 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:976 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:977 msgid "Could not save some books" msgstr "Nie można była zapisać niektórych książek" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:921 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:978 msgid "Click the show details button to see which ones." msgstr "Kliknij \"Pokaż szczegóły\", aby zobaczyć które." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:942 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:999 msgid "No books selected to generate catalog for" msgstr "Brak książek do wygenerowania katalogu" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:959 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1016 msgid "Generating %s catalog..." msgstr "Generowanie katalogu %s..." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:964 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1021 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:264 msgid "No books found" msgstr "Nie znaleziono książek" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:965 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1022 msgid "" "No books to catalog\n" "Check exclude tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:975 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1032 msgid "Catalog generated." msgstr "Katalog wygenerowany" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:978 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1035 msgid "Export Catalog Directory" msgstr "Eksportuj folder katalogu" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:979 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1036 msgid "Select destination for %s.%s" msgstr "Wybierz folder docelowy dla %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:995 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1052 msgid "Fetching news from " msgstr "Pobieranie aktualności z " -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1009 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1066 msgid " fetched." msgstr " - pobrano." -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1058 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1115 msgid "Cannot convert" msgstr "Nie można przekonwertować" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1087 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1144 msgid "Starting conversion of %d book(s)" msgstr "Rozpoczynam konwersję %d książki(ek)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1264 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1260 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1321 msgid "Cannot view" msgstr "Nie można wyświetlić" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1209 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1266 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "Wybierz format do wyświetlenia" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1217 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1274 msgid "Multiple Books Selected" msgstr "Wybrano wiele książek" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1218 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1275 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 " @@ -3257,130 +3347,130 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1227 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1284 msgid "Cannot open folder" msgstr "Nie można otworzyć folderu" -#: /home/kovid/work/calibre/src/calibre/gui2/actions.py:1265 +#: /home/kovid/work/trunk/src/calibre/gui2/actions.py:1322 msgid "%s has no available formats." msgstr "%s nie ma dostępnych formatów." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:54 msgid "Searching in" msgstr "Szukam w" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:232 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:232 msgid "Adding..." msgstr "Dodawanie..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:245 msgid "Searching in all sub-directories..." msgstr "Szukaj we wszystkich podfolderach..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:258 msgid "Path error" msgstr "Błędna ścieżka" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:259 msgid "The specified directory could not be processed." msgstr "Wybrany folder nie może byc przetworzony." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:263 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:810 msgid "No books" msgstr "Brak książek" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:330 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:330 msgid "Added" msgstr "Dodano" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:343 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:343 msgid "Adding failed" msgstr "Dodawanie nie powiodło się" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:344 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:344 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:356 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:356 msgid "Duplicates found!" msgstr "Znleziono duplikaty!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:357 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:357 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:360 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:360 msgid "Adding duplicates..." msgstr "Dodawanie duplikatów..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:427 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:427 msgid "Saving..." msgstr "Zapisywanie..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:480 +#: /home/kovid/work/trunk/src/calibre/gui2/add.py:480 msgid "Saved" msgstr "Zapisano" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:57 msgid "Searching for sub-folders" -msgstr "" +msgstr "Wyszukiwanie w podfolderach" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:62 msgid "Searching for books" -msgstr "" +msgstr "Poszukiwanie książek" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:74 msgid "Looking for duplicates based on file hash" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:109 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:65 msgid "Choose root folder" -msgstr "" +msgstr "Wybierz folder główny" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:137 msgid "Invalid root folder" -msgstr "" +msgstr "Niepoprawny folder główny" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:138 msgid "is not a valid root folder" -msgstr "" +msgstr "nie jest poprawnym folderem głównym" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:148 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/__init__.py:148 msgid "Add books to calibre" -msgstr "" +msgstr "Dodaj książki do calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/scan_ui.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/finish_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/kindle_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/library_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/stanza_ui.py:41 msgid "WizardPage" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:22 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/scan_ui.py:22 msgid "Scanning root folder for books" -msgstr "" +msgstr "Przeszukiwanie folderu głównego pod kątem książek" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:23 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/scan_ui.py:23 msgid "This may take a few minutes" -msgstr "" +msgstr "To może potrwać kilka minut" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:58 msgid "Choose the location to add books from" -msgstr "" +msgstr "Wybierz lokalizację, skąd zostaną dodane książki" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:59 msgid "Select a folder on your hard disk" -msgstr "" +msgstr "Wybierz folder na swoim dysku twardym" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:60 msgid "" "

    calibre can scan your computer for existing books automatically. These " "books will then be copied into the calibre library. This wizard will " @@ -3392,259 +3482,265 @@ msgid "" "not under the root folder you choose.

    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:63 msgid "&Root folder:" -msgstr "" +msgstr "Folder &główny:" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:64 msgid "" "This folder and its sub-folders will be scanned for books to import into " "calibre's library" msgstr "" +"Ten folder i wszystkie podfoldery zostaną przeszukane pod kątem książek do " +"zaimportowania do biblioteki calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:66 -#: /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:125 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 -#: /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:548 -#: /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:562 -#: /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:566 -#: /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:610 -#: /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:365 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 -#: /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:392 -#: /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:399 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:401 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:166 -#: /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/tag_list_editor_ui.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 -#: /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/shortcuts_ui.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:614 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:406 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:156 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:159 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:267 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:269 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:186 msgid "..." msgstr "..." -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:67 msgid "Handle multiple files per book" -msgstr "" +msgstr "Zarządzanie wieloma plikami dla książki" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:68 msgid "" "&One book per folder, assumes every ebook file in a folder is the same book " "in a different format" msgstr "" +"&Jedna książka na folder, zakłada, że każdy plik ebooka w folderze jest tą " +"samą książką w innym formacie" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/add_wizard/welcome_ui.py:69 msgid "" "&Multiple books per folder, assumes every ebook file is a different book" msgstr "" +"&Wiele książek na folder, zakłada, że każdy plik ebooka w folderze jest inną " +"książką" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:54 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1065 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:23 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:311 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1065 msgid "Path" msgstr "Ścieżka" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:24 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:312 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:100 msgid "Formats" msgstr "Formaty" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:891 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1068 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:25 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:891 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1068 msgid "Collections" -msgstr "" +msgstr "Kolekcje" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:56 msgid "Click to open" msgstr "Kliknij, aby otworzyć" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:305 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:317 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1078 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:274 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:305 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:311 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:317 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1074 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1078 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/shortcuts_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:274 msgid "None" msgstr "Brak" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:310 +#: /home/kovid/work/trunk/src/calibre/gui2/book_details.py:310 msgid "Click to open Book Details window" msgstr "Kliknij, aby otworzyć szczegóły ksiązki w oknie" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex.py:16 msgid "BibTeX Options" -msgstr "" +msgstr "Opcje BibTex" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output.py:17 msgid "Options specific to" msgstr "Opcje specyficzne dla" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output.py:17 msgid "output" msgstr "wyjście" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:66 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 -#: /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:77 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:107 msgid "Form" msgstr "Formularz" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 msgid "Bib file encoding:" -msgstr "" +msgstr "Kodowanie pliku Bib:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 msgid "Fields to include in output:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 msgid "ascii/LaTeX" -msgstr "" +msgstr "ascii/LaTeX" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 msgid "Encoding configuration (change if you have errors) :" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 msgid "strict" -msgstr "" +msgstr "ścisłe" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 msgid "replace" -msgstr "" +msgstr "zastąp" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 msgid "ignore" -msgstr "" +msgstr "ignoruj" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 msgid "backslashreplace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 msgid "BibTeX entry type:" -msgstr "" +msgstr "Typ wpisu BibTex:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 msgid "mixed" -msgstr "" +msgstr "mieszany" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 msgid "misc" -msgstr "" +msgstr "różny" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 msgid "book" -msgstr "" +msgstr "książka" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 msgid "Create a citation tag?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 msgid "Expression to form the BibTeX citation tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 msgid "" "Some explanation about this template:\n" " -The fields availables are 'author_sort', 'authors', 'id',\n" @@ -3655,38 +3751,38 @@ msgid "" " -For time field, only the date will be used. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" msgstr "Opcje CVS/XML" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 msgid "E-book options" msgstr "Opcje książki" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1487 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1505 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/trunk/src/calibre/library/catalog.py:550 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1496 +#: /home/kovid/work/trunk/src/calibre/library/database2.py:1514 msgid "Catalog" msgstr "Katalog" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "'Mark this book as read' tag:" msgstr "Etykieta 'Oznacz tę książkę jako przeczytaną':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 msgid "Additional note tag prefix:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 msgid "" "Regex tips:\n" "- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " @@ -3695,135 +3791,135 @@ msgid "" "Genre Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 msgid "Include 'Titles' Section" msgstr "Dołącz sekcję 'Tytuły'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 msgid "Include 'Recently Added' Section" msgstr "Dołącz sekcję 'Ostatnio dodane'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 msgid "Sort numbers as text" msgstr "Sortuj numery jako tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/bulk.py:67 msgid "Bulk Convert" msgstr "Masowa konwersja" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Opcje specyficzne dla formatu wyjściowego." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input.py:13 msgid "input" msgstr "źródłowy" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" msgstr "Liczba kolorów:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" msgstr "Wyłącz normalizację" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" msgstr "Zachowaj &proporcje" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" msgstr "Wyłącz wyostrzanie" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "Disable &Trimming" msgstr "Nie &przycinaj" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:94 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" msgstr "&Szerokość" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" msgstr "Pozioma" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" msgstr "Od &prawej do lewej" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" msgstr "Nie sor&tuj" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "De&speckle" msgstr "&Odpalmiacz" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:99 msgid "&Disable comic processing" msgstr "&Wyłącz przetwarzanie komiksów" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:115 msgid "&Output format:" msgstr "Format w&yjściowy" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/comic_input_ui.py:101 msgid "Disable conversion of images to &black and white" msgstr "Wyłącz konwersję grafik na &czarno-białe" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:19 msgid "Debug" msgstr "Debugowanie" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:21 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:21 msgid "Debug the conversion process." msgstr "Debuguj proces konwersji." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug_ui.py:51 msgid "Choose debug folder" msgstr "Wybierz folder debugowania" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:57 msgid "Invalid debug directory" msgstr "Niewłaściwy folder debugowania" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/debug.py:58 msgid "Failed to create debug directory" msgstr "Nie udało się storzyć folderu debugowania" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 +#: /home/kovid/work/trunk/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 " @@ -3831,65 +3927,65 @@ msgid "" "conversion parameters like Table of Contents and Chapter Detection." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output.py:15 msgid "EPUB Output" msgstr "Wyjściowy EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:49 msgid "Do not &split on page breaks" -msgstr "" +msgstr "Nie &dziel przy podziałach strony" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:50 msgid "No default &cover" msgstr "Brak domyślnej &okładki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:51 msgid "No &SVG cover" -msgstr "" +msgstr "Wyłącz okładkę &SVG" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:52 msgid "Preserve cover &aspect ratio" -msgstr "" +msgstr "Zachowaj &proporcje rozmiaru okładki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:53 msgid "Split files &larger than:" msgstr "&Dziel pliki większe niż:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/epub_output_ui.py:54 msgid " KB" msgstr " KB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input.py:12 msgid "FB2 Input" msgstr "Źródłowy FB2" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_input_ui.py:29 msgid "Do not insert a &Table of Contents at the beginning of the book." msgstr "Nie wstawiaj &spisu treści na początku książki." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output.py:14 msgid "FB2 Output" msgstr "Wyjściowy 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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/fb2_output_ui.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output_ui.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output_ui.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:47 msgid "&Inline TOC" msgstr "Spis treści w jednej &linii" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 " @@ -3905,501 +4001,504 @@ msgid "" "for a discussion of how font size rescaling works.

    " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:103 msgid "&Output document" msgstr "Dokument w&yjściowy" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:104 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:109 msgid "&Base font size:" msgstr "&Główny rozmiar czcionki:" -#: /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:123 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:105 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:123 msgid "Font size &key:" msgstr "&Klucz rozmiaru czcionki:" -#: /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:122 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py: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:121 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:112 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:127 msgid " pt" msgstr " pkt" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:107 msgid "Use &default values" msgstr "Uzyj &domuślnych wartośći" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:108 msgid "&Input document" msgstr "Dokument ź&ródłowy" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:111 msgid "&Font size: " msgstr "&Rozmiar czcionki: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:113 msgid " will map to size: " msgstr " będzie odpowiadać rozmiarowi: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/font_key_ui.py:114 msgid "0.0 pt" msgstr "0,0 pt" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:16 msgid "Look & Feel" msgstr "Wygląd i zachowanie" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:18 msgid "Control the look and feel of the output" msgstr "Kontroluj wygląd i zachowanie pliku wyjściowego" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:30 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:30 msgid "Original" -msgstr "" +msgstr "Oryginalne" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:31 msgid "Left align" -msgstr "" +msgstr "Wyrównanie do lewej" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:32 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel.py:32 msgid "Justify text" -msgstr "" +msgstr "Wyjustowanie tekstu" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:120 msgid "&Disable font size rescaling" msgstr "Nie &skaluj rozmiaru czcionek" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:121 msgid "Base &font size:" msgstr "Główny &rozmiar czcionki:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:124 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:126 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:126 msgid "Line &height:" msgstr "Wysokość &linii:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:128 msgid "Input character &encoding:" msgstr "&Kodowanie znaków w pliku źródłowym:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Remove &spacing between paragraphs" msgstr "Usuń &odstępy pomiędzy paragrafami" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:130 msgid "Indent size:" msgstr "Rozmiar wcięcia:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:131 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:132 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:132 msgid " em" msgstr " em" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:133 msgid "Text justification:" -msgstr "" +msgstr "Wyjustowanie tekstu:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "&Linearize tables" msgstr "&Przekształcaj tabele na tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:135 msgid "Extra &CSS" msgstr "Dodatkowa stylizacja kodem &CSS" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "&Transliterate unicode characters to ASCII" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:137 msgid "Insert &blank line" msgstr "Wstaw &pustą linię" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/look_and_feel_ui.py:138 msgid "Keep &ligatures" -msgstr "" +msgstr "Zachowaj &ligatury" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output.py:19 msgid "LRF Output" msgstr "Wyjściowy LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:116 msgid "Enable &autorotation of wide images" msgstr "Pozwól &automatycznie obracać szerokie grafiki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:119 msgid "Minimum para. &indent:" msgstr "Minimalne wcięcie paragrafu:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:121 msgid "Render &tables as images" msgstr "Renderuj &tabele jako grafiki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:123 msgid "Add &header" msgstr "Dodaj &nagłówek" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:124 msgid "Header &separation:" msgstr "&Odzielenie nagłówka:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:126 msgid "Header &format:" msgstr "&Format nagłówka:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:127 msgid "&Embed fonts" msgstr "&Zagnieżdżone czcionki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:128 msgid "&Serif font family:" msgstr "Rodzina czcionki &szeryfowej:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/lrf_output_ui.py:130 msgid "&Monospaced font family:" msgstr "Rodzina czcionki o &jednakowej szerokości znaków:" -#: /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:195 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:195 msgid "Metadata" msgstr "Metadane" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:43 +#: /home/kovid/work/trunk/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:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:111 msgid "Choose cover for " msgstr "Wybierz okładkę dla " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:118 msgid "Cannot read" msgstr "Nie można odczytać" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:119 msgid "You do not have permission to read the file: " msgstr "Nie masz uprawnień do odczytu pliku: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:180 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:127 msgid "Error reading file" msgstr "Błąd przy odczycie pliku" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:128 msgid "

    There was an error reading from file:
    " msgstr "

    Wystąpił błąd podczas odczytu z pliku:
    " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata.py:188 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:136 msgid " is not a valid picture" msgstr " nie jest poprawnym formatem grafiki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:167 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:401 msgid "Book Cover" msgstr "Okładka książki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:168 msgid "Use cover from &source file" msgstr "Użyj okładki z pliku ź&ródłowego" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:169 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:402 msgid "Change &cover image:" msgstr "Zmień grafikę &okładki:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:403 msgid "Browse for an image to use as the cover of this book." msgstr "Wybierz obraz, który będzie użyty jako okładka tej książki." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:362 msgid "&Title: " msgstr "&Tytuł: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:173 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "Change the title of this book" msgstr "Zmień tytuł tej ksiązki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 -#: /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:361 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid "&Author(s): " msgstr "&Autor(rzy): " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:175 msgid "Author So&rt:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:176 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:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:177 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "&Publisher: " msgstr "&Wydawca: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:178 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:376 msgid "Ta&gs: " msgstr "E&tykiety: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

    They can be any words or phrases, separated by commas." msgstr "" +"Etykiety opisują książkę. Jest to szczególnie przydatne przy wyszukiwaniu. " +"

    Etykiety mogą być dowolnymi słowami lub frazami, oddzielonymi " +"przecinkami." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:180 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:380 msgid "&Series:" -msgstr "&Serie:" +msgstr "&Cykl:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:182 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:382 msgid "List of known series. You can add new series." -msgstr "Lista znanych serii. Możesz dodać nowe serie." +msgstr "Lista znanych cykli. Możesz dodać nowe cykle." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/metadata_ui.py:183 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid "Book " msgstr "Książka " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:20 msgid "MOBI Output" msgstr "Wyjściowy MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output.py:42 msgid "Default" msgstr "Domyślne" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:67 msgid "&Title for Table of Contents:" msgstr "&Tytuł dla spisu treści:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:68 msgid "Rescale images for &Palm devices" msgstr "Przeskaluj grafiki dla urządzeń &Palm" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:69 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:70 msgid "Disable compression of the file contents" msgstr "Wyłącz kompresję zawartości pliku." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:71 msgid "Do not add Table of Contents to book" msgstr "Nie dodawaj spisu treści do ksiązki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:72 msgid "Kindle options" msgstr "Opcje Kindle" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:73 msgid "Periodical masthead font:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/mobi_output_ui.py:74 msgid "Personal Doc tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" msgstr "Ustawienia strony" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:116 msgid "&Output profile:" msgstr "Profil &wyjściowy:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:117 msgid "Profile description" msgstr "Opis profilu" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:118 msgid "&Input profile:" msgstr "Profil źródłowy:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:119 msgid "Margins" msgstr "Marginesy" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:120 msgid "&Left:" msgstr "&Lewy:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:122 msgid "&Top:" msgstr "&Górny:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:124 msgid "&Right:" msgstr "&Prawy:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/page_setup_ui.py:126 msgid "&Bottom:" msgstr "&Dolny:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input.py:12 msgid "PDB Input" msgstr "Źródłowy 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:47 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input_ui.py:32 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:47 msgid "Treat each &line as a paragraph" msgstr "Traktuj każdą &linię jako paragraf" -#: /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:48 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_input_ui.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:48 msgid "Assume print formatting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output.py:16 msgid "PDB Output" msgstr "Wyjściowy PDB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdb_output_ui.py:36 msgid "&Format:" msgstr "&Format:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input.py:12 msgid "PDF Input" msgstr "Źródłowy PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:39 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_input_ui.py:40 msgid "No &Images" msgstr "Brak &grafik" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output.py:17 msgid "PDF Output" msgstr "Wyjściowy PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:43 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:43 msgid "&Paper Size:" msgstr "Rozmiar &papieru:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:44 msgid "&Orientation:" msgstr "&Orientacja" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/pdf_output_ui.py:45 msgid "Preserve &aspect ratio of cover" -msgstr "" +msgstr "Zachowaj &proporcje rozmiaru okładki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/rb_output.py:14 msgid "RB Output" msgstr "Wyjściowy RB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:83 msgid "No formats available" msgstr "Brak dostępnych formatów" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:84 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:84 msgid "Cannot build regex using the GUI builder without a book." msgstr "" "Nie można uworzyć wyrażenia regularnego, używając konstruktora, bez książki." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder.py:103 msgid "Open book" msgstr "Otwórz książkę" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:52 msgid "Regex Builder" msgstr "Konstruktor wyrażeń regularnych" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:53 msgid "Preview" msgstr "Podgląd" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:54 msgid "Regex:" msgstr "Wyrażenie regularne:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/regex_builder_ui.py:55 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:117 msgid "Test" msgstr "Test" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single.py:171 msgid "Convert" -msgstr "Konwersja" +msgstr "Konwertuj" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single.py:196 msgid "Options specific to the input format." msgstr "Opcje dotyczące formatu źródłowego." -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:112 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" msgstr "Okno dialogowe" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:113 msgid "&Input format:" msgstr "Format ź&ródłowy:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/single_ui.py:114 msgid "Use &saved conversion settings for individual books" msgstr "Uzyj &zapisanych ustawień konwersji dla pojedynczych książek" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" "Detection" @@ -4407,72 +4506,72 @@ msgstr "" "Wykrywanie\n" "struktury" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:19 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:35 msgid "Insert page breaks before (XPath expression):" msgstr "Wstawiaj znaczniki końca strony przed (wyrażenie XPath):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:37 msgid "Header regular expression:" msgstr "Wyrażenie regularne dla nagłówka:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:40 msgid "Footer regular expression:" msgstr "Wyrażenie regularne dla stopki:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:76 msgid "Invalid regular expression" msgstr "Nieprawidłowe wyrażenie regularne" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/widgets.py:77 msgid "Invalid regular expression: %s" msgstr "Niewłaściwe wyrażenie regularne: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:38 msgid "Invalid XPath" msgstr "Nieprawidłowe wyrażenie XPath" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:39 msgid "The XPath expression %s is invalid." msgstr "Wyrażenie XPath %s jest nieprawidłowe." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:61 msgid "Chapter &mark:" msgstr "&Znacznik rozdziału:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:62 msgid "Remove first &image" msgstr "Usuń pierwszą &grafikę" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:63 msgid "Insert &metadata as page at start of book" msgstr "Wstaw &metadane jako stronę na początku książki" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:64 msgid "&Preprocess input file to possibly improve structure detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:65 msgid "Remove F&ooter" msgstr "Usuń &stopkę" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/structure_detection_ui.py:66 msgid "Remove H&eader" msgstr "Usuń &nagłówek" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:16 msgid "" "Table of\n" "Contents" @@ -4480,161 +4579,161 @@ msgstr "" "Spis\n" "treści" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:18 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:18 msgid "Control the creation/conversion of the Table of Contents." msgstr "Kontroluj tworzenie/konwersję spisu treści" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:29 msgid "Level &1 TOC (XPath expression):" msgstr "Pierwszy poziom spisu treści (wyrażenie XPath):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:30 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:30 msgid "Level &2 TOC (XPath expression):" msgstr "Drugi poziom spisu treści (wyrażenie XPath):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc.py:31 msgid "Level &3 TOC (XPath expression):" msgstr "Trzeci poziom spisu treści (wyrażenie XPath):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:63 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:63 msgid "Do not add &detected chapters to the Table of Contents" msgstr "Nie dodawaj &wykrytych rozdziałów do spisu treści" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:64 msgid "Number of &links to add to Table of Contents" msgstr "Liczba &linków do dodania do spisu tresci" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:65 msgid "Chapter &threshold" msgstr "&Wstęp do rozdziału" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:66 msgid "&Force use of auto-generated Table of Contents" msgstr "&Wymuś użycie wygenerowanego automatycznie spisu treści" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/toc_ui.py:67 msgid "TOC &Filter:" msgstr "Filtr spisu treści:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:12 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input.py:12 msgid "TXT Input" msgstr "Źródłowy TXT" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:49 msgid "Process using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:50 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:51 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:51 msgid "Do not insert Table of Contents into output text when using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_input_ui.py:52 msgid "Preserve &spaces" -msgstr "" +msgstr "Zachowaj od&stępy" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" msgstr "Wyjściowy TXT" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:46 msgid "&Line ending style:" msgstr "Styl zakończenia &linii:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:48 msgid "&Maximum line length:" msgstr "&Maksymalna długość linii:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/txt_output_ui.py:49 msgid "Force maximum line lenght" msgstr "Wymuś maksymalną długość linii" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_format_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress_ui.py:49 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress_ui.py:50 msgid "TextLabel" msgstr "Etykieta tekstowa" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xexp_edit_ui.py:52 msgid "Use a wizard to help construct the XPath expression" msgstr "Użyj kreatora pomagającego skonstruować wyrażenie XPath" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:69 msgid "*" msgstr "*" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:70 msgid "a" msgstr "a" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:71 msgid "br" msgstr "br" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:72 msgid "div" msgstr "div" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:73 msgid "h1" msgstr "h1" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:74 msgid "h2" msgstr "h2" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:75 msgid "h3" msgstr "h3" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:76 msgid "h4" msgstr "h4" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:77 msgid "h5" msgstr "h5" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:78 msgid "h6" msgstr "h6" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:79 msgid "hr" msgstr "hr" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:80 msgid "span" msgstr "span" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:81 msgid "Having the &attribute:" msgstr "Zawierające &atrybut:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:82 msgid "With &value:" msgstr "O &wartości:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/convert/xpath_wizard_ui.py:83 msgid "(A regular expression)" msgstr "(wyrażenie regularne)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 +#: /home/kovid/work/trunk/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 " @@ -4644,172 +4743,172 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/cover_flow.py:127 msgid "Cover browser could not be loaded" -msgstr "" +msgstr "Nie udało się uruchomić Przeglądarki okładek" -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/cover_flow.py:179 msgid "Browse by covers" msgstr "Przeglądaj po okładkach" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:264 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:130 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:205 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:238 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:242 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:139 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:264 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:110 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:238 +#: /home/kovid/work/trunk/src/calibre/gui2/library/delegates.py:242 msgid "Undefined" -msgstr "" +msgstr "Niezdefiniowany" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:133 msgid "Yes" msgstr "Tak" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:134 msgid "No" msgstr "Nie" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:116 msgid "star(s)" -msgstr "" +msgstr "gwiazdka(i)" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:117 msgid "Unrated" -msgstr "" +msgstr "Brak oceny" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:150 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:150 msgid "Set '%s' to today" -msgstr "" +msgstr "Ustaw '%s' na dzisiaj" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:260 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:260 msgid " index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:443 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:443 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 msgid "Automatically number books in this series" -msgstr "Automatycznie numeruj książki w serii" +msgstr "Automatycznie numeruj książki w cyklu" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:486 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:486 msgid "Remove all tags" -msgstr "" +msgstr "Usuń wszystkie etykiety" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:507 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:507 msgid "tags to add" -msgstr "" +msgstr "etykiety do dodania" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:512 +#: /home/kovid/work/trunk/src/calibre/gui2/custom_column_widgets.py:512 msgid "tags to remove" -msgstr "" +msgstr "etykiety do usunięcia" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:49 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:49 +#: /home/kovid/work/trunk/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Brak szczegółów." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:166 msgid "Device no longer connected." msgstr "Urządzenie zostało już odłączone." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:271 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:284 msgid "Get device information" msgstr "Pobierz informacje o urządzeniach" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:295 msgid "Get list of books on device" msgstr "Pozyskaj listę książek na urządzeniu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:292 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:305 msgid "Get annotations from device" msgstr "Pobierz adnotacje z urządzenia" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:314 msgid "Send metadata to device" msgstr "Prześlij metadane do urządzenia" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:306 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:319 msgid "Send collections to device" -msgstr "" +msgstr "Wyślij kolekcje na urządzenie" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:343 msgid "Upload %d books to device" msgstr "Prześlij %d książek na urządzenie" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:358 msgid "Delete books from device" msgstr "Usuń książki na urządzeniu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:375 msgid "Download books from device" msgstr "Pobierz książki z urządzenia" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:372 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:385 msgid "View book on device" msgstr "Zobacz ksiązki na urządzeniu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:419 msgid "Set default send to device action" msgstr "Ustaw domyślne działanie przesyłania na urządzenie" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:425 msgid "Send to main memory" -msgstr "Prześlij do głównej pamięci" +msgstr "Prześlij do pamięci głownej" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:427 msgid "Send to storage card A" msgstr "Prześlij na kartę pamięci A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:429 msgid "Send to storage card B" msgstr "Prześlij na kartę pamięci B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:434 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:443 msgid "Main Memory" -msgstr "" +msgstr "Pamięć głowna" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:441 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:454 msgid "Send and delete from library" msgstr "Wyślij i usuń z biblioteki" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:442 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:455 msgid "Send specific format" -msgstr "" +msgstr "Wyślij wybrany format" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:491 msgid "Eject device" -msgstr "" +msgstr "Odłącz urządzenie" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:499 msgid "Fetch annotations (experimental)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:596 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:609 msgid "Error communicating with device" msgstr "Błąd podczas komunikacji z urządzeniem" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:618 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:631 msgid "Select folder to open as device" -msgstr "" +msgstr "Ustaw folder do otwarcia jako urządzenie" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:675 msgid "Failed" -msgstr "" +msgstr "Nie udało się" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:668 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:681 msgid "Error talking to device" msgstr "Błąd komunikacji z urządzeniem" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:682 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -4817,291 +4916,299 @@ msgstr "" "Wystąpił chwilowy błąd komunikacji z urządzeniem. Odłącz i podłącz je " "ponownie lub uruchom komputer ponownie." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:711 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:724 msgid "Device: " msgstr "Urządzenie: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:713 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:726 msgid " detected." msgstr " wykryte" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:798 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:811 msgid "selected to send" msgstr "wybranych do wysłania" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:803 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:816 msgid "Choose format to send to device" msgstr "Wybierz format plików przesyłanych na urządzenie" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:825 msgid "No device" msgstr "Brak urządzenia" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:826 msgid "Cannot send: No device is connected" msgstr "Nie można było przesłać: Żadne urządenie nie jest podłączone" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:816 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:829 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:833 msgid "No card" msgstr "Brak karty" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:821 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:830 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:834 msgid "Cannot send: Device has no storage card" msgstr "Nie można przesłać: Urządzenie nie posiada karty pamięci" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:875 msgid "E-book:" msgstr "E-book:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:865 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:878 msgid "Attached, you will find the e-book" -msgstr "" +msgstr "W załączniku znajdziesz e-booka" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:181 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:879 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:181 msgid "by" msgstr "przez" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:880 msgid "in the %s format." msgstr "w formacie %s." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:893 msgid "Sending email to" msgstr "Wysyłanie wiadomości do" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:910 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1193 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:923 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:931 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1025 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1087 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1206 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1214 msgid "No suitable formats" msgstr "Brak odpowiednich formatów" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:911 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:924 msgid "Auto convert the following books before sending via email?" msgstr "" "Dokonać automatycznej konwersji następujących książek przed wysłaniem ich " "poprzez email?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:932 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" "Nie można było przesłać następujących książek poprzez email, ponieważ nie " "znaleziono odpowiednich formatów:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:950 msgid "Failed to email books" msgstr "Przesłanie książek na email nie powiodło się" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:951 msgid "Failed to email the following books:" msgstr "Przesłanie następujących książek poprzez email nie powiodło się:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:942 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:955 msgid "Sent by email:" msgstr "Preślij poprzez email:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:984 msgid "News:" msgstr "Aktualności:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:985 msgid "Attached is the" msgstr "Załączony jest" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:996 msgid "Sent news to" msgstr "Wysyłaj aktualności do" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1194 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1026 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1088 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1207 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Dokonać automatycznej konwersji następujących książek przed przesłaniem ich " "na urządzenie?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1056 msgid "Sending catalogs to device." msgstr "Trwa wysyłanie katalogów do urządzenia" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1107 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1120 msgid "Sending news to device." msgstr "Przesyłanie aktualności na urządzenie." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1173 msgid "Sending books to device." msgstr "Wysyłanie książek do urządzenia." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1215 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:1264 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1277 msgid "No space on device" msgstr "Brak miejsca na urządzeniu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1265 +#: /home/kovid/work/trunk/src/calibre/gui2/device.py:1278 msgid "" "

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

    Nie można umieścić książek na urządzeniu z powodu braku wolnego miejsca " -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:78 msgid "Select available formats and their order for this device" msgstr "Wybierz dostepne formaty i ich porządek dla tego urządzenia" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:82 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:82 msgid "Use sub directories" msgstr "Uzywaj podkatalogów" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:83 msgid "Use author sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/device_drivers/configwidget_ui.py:85 msgid "Save &template:" msgstr "&Zapisz schemat:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:68 msgid "Fit &cover to view" msgstr "Dopasuj &okładkę do rozmiaru okna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "&Poprzednia" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "&Następna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog.py:38 msgid "My Books" msgstr "Moje książki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:289 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/tools.py:289 msgid "Generate catalog" msgstr "Wygeneruj katalog" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:70 msgid "Generate catalog for {0} books" msgstr "Wygeneruj katalog dla {0} książek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:71 msgid "Catalog &format:" msgstr "&Format katalogu:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:72 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:73 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:73 msgid "&Send catalog to device automatically" msgstr "Automatycznie wyślij katalog do urządzenia" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/catalog_ui.py:74 msgid "Catalog options" msgstr "Opcje katalogu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "Wybierz format" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:38 msgid "Choose location for calibre library" -msgstr "" +msgstr "Wybierz lokalizację dla biblioteki calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:45 msgid "Same as current" -msgstr "" +msgstr "Taka sama jak obecna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:46 msgid "The location %s contains the current calibre library" -msgstr "" +msgstr "Lokalizacja %s zawiera obecną bibliotekę calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:51 msgid "No existing library found" -msgstr "" +msgstr "Nie odnaleziono żadnej biblioteki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:52 msgid "There is no existing calibre library at %s" -msgstr "" +msgstr "Nie ma żadnej biblioteki calibre pod %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:56 msgid "Not empty" -msgstr "" +msgstr "Nie pusty" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:57 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:57 msgid "The folder %s is not empty. Please choose an empty folder" +msgstr "Folder %s nie jest pusty. Proszę wybrać pusty folder." + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library.py:80 +msgid "No location selected" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:66 msgid "Choose your calibre library" -msgstr "" +msgstr "Wybierz swoją bibliotekę calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:67 msgid "Your calibre library is currently located at {0}" -msgstr "" +msgstr "Twoja biblioteka calibre jest obecnie dostępna w {0}" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:68 msgid "New &Location:" -msgstr "" +msgstr "Nowa &lokalizacja:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:69 msgid "Use &existing library at the new location" -msgstr "" +msgstr "Użyj &istniejącej biblioteki z nową lokalizacją" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:70 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:70 msgid "&Create an empty library at the new location" -msgstr "" +msgstr "&Stwórz pustą bibliotekę pod nową lokalizacją" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:71 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/choose_library_ui.py:71 msgid "&Move current library to new location" -msgstr "" +msgstr "&Przenieś obecną bibliotekę do nowej lokalizacji" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf.py:33 msgid "Set defaults for conversion of comics (CBR/CBZ files)" msgstr "Ustaw parametry domyślne konwersji komiksów (pliki CBR/CBZ)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf.py:48 msgid "Set options for converting %s" msgstr "Ustaw opcje dla konwersji %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:92 msgid "&Title:" msgstr "&Tytuł:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:93 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:93 msgid "&Author(s):" msgstr "&Autor(rzy):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:95 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comicconf_ui.py:95 msgid "&Profile:" msgstr "&Profil:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:41 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/comments_dialog_ui.py:41 msgid "Edit Comments" -msgstr "" +msgstr "Edytuj komentarze" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:174 msgid "%(plugin_type)s %(plugins)s" msgstr "%(plugins)s: %(plugin_type)s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:175 msgid "plugins" msgstr "Wtyczki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:184 msgid "" "\n" "Customization: " @@ -5109,19 +5216,19 @@ msgstr "" "\n" "Dostosowywanie: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:199 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:199 msgid "General" msgstr "Ogólne" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:200 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:200 msgid "Interface" msgstr "Interfejs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:201 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:201 msgid "Conversion" msgstr "Konwersja" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:202 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:202 msgid "" "Email\n" "Delivery" @@ -5129,15 +5236,15 @@ msgstr "" "Dostarczanie\n" "poczty email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:203 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:203 msgid "Add/Save" msgstr "Dodaj/zapisz" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:204 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:204 msgid "Advanced" msgstr "Zaawansowane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:205 msgid "" "Content\n" "Server" @@ -5145,222 +5252,234 @@ msgstr "" "Serwer\n" "zawartości" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:206 msgid "Plugins" msgstr "Wtyczki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:230 msgid "Auto send" msgstr "Wysyłaj automatycznie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:230 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:230 msgid "Email" msgstr "E-mail" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:235 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:235 msgid "Formats to email. The first matching format will be sent." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:236 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:236 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:310 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:310 msgid "new email address" msgstr "nowy adres email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:492 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:492 msgid "Wide" msgstr "Szeroki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:493 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:493 msgid "Narrow" msgstr "Wąski" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:502 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:502 msgid "Medium" msgstr "Średnie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:502 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:502 msgid "Small" msgstr "Małe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:503 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:503 msgid "Large" msgstr "Duże" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:509 msgid "Always" -msgstr "" +msgstr "Zawsze" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:509 msgid "Automatic" -msgstr "" +msgstr "Automatycznie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:510 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:510 msgid "Never" +msgstr "Nigdy" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:524 +msgid "Done" +msgstr "Gotowe" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:525 +msgid "Confirmation dialogs have all been reset" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:521 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:530 msgid "System port selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:531 msgid "" "The value %d you have chosen for the content server port is a system " "port. Your operating system may not allow the server to run on this " "port. To be safe choose a port number larger than 1024." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Failed to install command line tools." msgstr "Nie powiodła się instalacja narzędzi linii poleceń." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:545 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:554 msgid "Command line tools installed" msgstr "Narzędzia linii poleceń zostały zainstalowane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:546 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:555 msgid "Command line tools installed in" msgstr "Narzędzia linii poleceń zostały zainstalowane w" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:547 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:556 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Jeśli przeniesiesz calibre.app, będziesz musiał przeinstalować narzędzia " "linii poleceń." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:598 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:607 msgid "No valid plugin path" msgstr "Niewłaściwa ścieżka do wtyczki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:599 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "%s is not a valid plugin path" msgstr "%s nie jest właściwą ścieżką do wtyczki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:602 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:611 msgid "Choose plugin" msgstr "Wybierz wtyczkę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:614 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:623 msgid "Plugin cannot be disabled" msgstr "Wtyczka nie może zostać wyłączona" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:615 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:624 msgid "The plugin: %s cannot be disabled" msgstr "Wtyczka %s nie może zostać wyłączona" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:633 msgid "Plugin not customizable" msgstr "Tej wtyczki nie można dostosowywać" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:625 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:634 msgid "Plugin: %s does not need customization" msgstr "Wtyczka %s nie potrzebuje dodatkowego dostosowywania" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:633 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Customize" msgstr "Dostosuj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:671 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:680 msgid "Cannot remove builtin plugin" msgstr "Nie można usunąć wbudowanej wtyczki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:672 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:681 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " - ta wtyczka nie może zostać usunięta. Ta wtyczka jest wbudowana w program. " "Zamiast tego spróbuj ją wyłączyć." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:703 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:712 msgid "You must select a column to delete it" -msgstr "" +msgstr "Musisz wybrać kolumnę, by móc ją usunąć" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:717 msgid "The selected column is not a custom column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:718 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" msgstr "Na pewno?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:719 msgid "Do you really want to delete column %s and all its data?" -msgstr "" +msgstr "Czy na pewno chcesz usunąć kolumnę %s i całą jej zawartość?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:777 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:786 msgid "Error log:" msgstr "Dziennik błędów:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:784 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:793 msgid "Access log:" msgstr "Dziennik dostępów:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:312 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/trunk/src/calibre/gui2/ui.py:318 msgid "Failed to start content server" msgstr "Włączanie serwera zakończone niepowodzeniem" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:837 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:846 msgid "Invalid size" msgstr "Niewłaściwy rozmiar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:838 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:847 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" "Rozmiar %s jest nieprawidłowy. Musi on byc podany w fromacie " "wysokośćxszerokość" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:899 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:908 msgid "Must restart" -msgstr "" +msgstr "Wymagany restart" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:900 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:909 msgid "" "The changes you made require that Calibre be restarted. Please restart as " "soon as practical." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:934 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:943 msgid "Checking database integrity" msgstr "Sprawdzanie integralności bazy danych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:954 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:963 msgid "Failed to check database integrity" msgstr "Sprawdzenie integralności bazy danych się nie powiodło" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:959 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:968 msgid "Some inconsistencies found" -msgstr "" +msgstr "Znaleziono pewne nieścisłości" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:960 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/__init__.py:969 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 "" +"Następujące książki zawierały formaty wymienione w bazie danych, które nie " +"były rzeczywiście dostępne. Wpisy dla tych formatów zostały usunięte. " +"Powinieneś sprawdzić je ręcznie. Taka sytuacja może mieć miejsce, gdy " +"ręcznie manipulujesz plikami bezpośrednio w folderze biblioteki." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:133 msgid "TabWidget" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:134 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:135 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:135 msgid "Read metadata only from &file name" msgstr "Odczytaj metadane jedynie z &nazwy pliku" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:136 msgid "" "Swap the firstname and lastname of the author. This affects only metadata " "read from file names." @@ -5368,11 +5487,11 @@ msgstr "" "Zamień pozycjami imię i nazwisko autora. To ma wpływ jedynie na metadane " "odczytywane z nazw plików." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:137 msgid "&Swap author firstname and lastname" msgstr "&Zamień pozycjami imię i nazwisko" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:138 msgid "" "If an existing book with a similar title and author is found that does not " "have the format being added, the format is added\n" @@ -5383,80 +5502,84 @@ msgid "" "punctuation, case, etc. Author match is exact." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:142 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:142 msgid "" "If books with similar titles and authors found, &merge the new files " "automatically" msgstr "" +"Jeśli zostaną znalezione książki z podobnymi tytułami i autorami, &złącz " +"nowe pliki automatycznie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:143 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:143 msgid "&Configure metadata from file name" msgstr "&Konfiguruj metadane pobierane z nazwy pliku" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:144 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:144 msgid "&Adding books" msgstr "&Dodawanie książek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:145 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:145 msgid "" "Here you can control how calibre will save your books when you click the " "Save to Disk button:" msgstr "" +"Tutaj możesz zmienić sposób, w jaki calibre będzie zapisywał książki gdy " +"klikniesz przycisk Zapisz na dysku:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:146 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:146 msgid "Save &cover separately" msgstr "Zapisuj &okładki osobno" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:147 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:147 msgid "Update &metadata in saved copies" msgstr "Uaktualnij &metadane w zapisanych kopiach" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:148 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:148 msgid "Save metadata in &OPF file" msgstr "Zapisz metadane w pliku &OPF" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:149 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:149 msgid "Convert non-English characters to &English equivalents" msgstr "" "Zamieniaj znaki nie w języku angielskiem na ich &angielskie odpowiedniki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:150 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:150 msgid "Format &dates as:" msgstr "Formatuj &daty według schematu:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:151 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:151 msgid "File &formats to save:" msgstr "&Formaty pliku do zapisu:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:152 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:152 msgid "Replace space with &underscores" msgstr "Zastąp spacje &podkreślnikami" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:153 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:153 msgid "Change paths to &lowercase" msgstr "Zmieniaj ścieżki na &małe litery" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:154 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:154 msgid "&Saving books" msgstr "&Zapisywanie książek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:155 msgid "Metadata &management:" -msgstr "" +msgstr "Zarządzanie &metadanymi:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:156 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:156 msgid "Manual management" -msgstr "" +msgstr "Ręczne zarządzanie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:157 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:157 msgid "Only on send" -msgstr "" +msgstr "Tylko podczas wysyłania" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:158 msgid "Automatic management" -msgstr "" +msgstr "Automatyczne zarządzanie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:159 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:159 msgid "" "

  • Manual Management: Calibre updates the metadata and adds " "collections only when a book is sent. With this option, calibre will never " @@ -5466,219 +5589,236 @@ msgid "" "
  • Automatic management: Calibre automatically keeps metadata on the " "device in sync with the calibre library, on every connect
  • " msgstr "" +"
  • RÄ™czne zarzÄ…dzanie: Calibre uaktualni metadane i doda kolekcje " +"tylko gdy książka bÄ™dzie przesyÅ‚ana. Przy tym ustawieniu calibre nigdy nie " +"usunie kolekcji.
  • \n" +"
  • Tylko podczas wysyÅ‚ania: Calibre uaktualni metadane i doda/usunie " +"kolekcje książki tylko gdy bÄ™dzie przesyÅ‚ana na urzÄ…dzenie.
  • \n" +"
  • Automatyczne zarzÄ…dzanie: Calibre bÄ™dzie automatycznie " +"synchronizowaÅ‚ metadane na urzÄ…dzeniu z tymi w bibliotece calibre przy " +"każdym połączeniu.
  • " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:162 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 "" +"Tutaj możesz zmienić sposób, w jaki calibre bÄ™dzie zapisywaÅ‚ książki gdy " +"klikniesz przycisk PrzeÅ›lij na urzÄ…dzenie. To ustawienie może być nadpisane " +"dla pojedynczych urzÄ…dzeÅ„ poprzez dostosowanie wtyczek interfejsów urzÄ…dzeÅ„ " +"w menu Preferencje->Wtyczki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/add_save_ui.py:163 msgid "Sending to &device" msgstr "PrzesyÅ‚anie na &urzÄ…dzenie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:458 -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:599 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:474 +#: /home/kovid/work/trunk/src/calibre/gui2/layout.py:616 +#: /home/kovid/work/trunk/src/calibre/gui2/viewer/main_ui.py:201 msgid "Preferences" msgstr "Preferencje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Show notification when &new version is available" msgstr "Pokaż powiadomienie, gdy &nowa wersja jest dostÄ™pna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:538 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "Pobieraj domyÅ›lnie metadane &spoÅ‚ecznoÅ›ciowe (etykiety/oceny/itd.)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:539 msgid "&Overwrite author and title by default when fetching metadata" msgstr "DomyÅ›lnie &nadpisuj autora i tytuÅ‚ przy pobieraniu metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Default network &timeout:" msgstr "DomyÅ›lny sieciowy &czas oczekiwania:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:541 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:539 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid " seconds" msgstr " sekund" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Choose &language (requires restart):" msgstr "Wybierz &jÄ™zyk (wymaga restartu):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "Normal" msgstr "Normalny" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "High" msgstr "Wysoki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "Low" msgstr "Niski" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "Job &priority:" msgstr "&Priorytet zdaÅ„:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "Preferred &output format:" msgstr "Preferowany format &docelowy:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:549 +msgid "Reset all disabled &confirmation dialogs" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Preferred &input format order:" msgstr "Preferowany porzÄ…dek formatów &źródÅ‚owych:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Use &Roman numerals for series number" -msgstr "Używaj numeracji &rzymskiej do numerowania serii" +msgstr "Używaj liczb &rzymskich do numerowania cyklu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:554 msgid "Enable system &tray icon (needs restart)" msgstr "" "Aktywuj ikonÄ™ w &zasobniku systemowym (wymaga ponownego uruchomienia)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:555 msgid "Show ¬ifications in system tray" msgstr "Pokaż &powiadomienia w zasobniku systemowym" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "Show &splash screen at startup" -msgstr "" +msgstr "Pokaż planszÄ™ &startowÄ… podczas uruchomienia" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Pokaż &przeglÄ…darkÄ™ okÅ‚adek w nowym oknie (wymaga restartu)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Show &average ratings in the tags browser" -msgstr "" +msgstr "Pokaż &Å›rednie oceny w PrzeglÄ…darce etykiet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:559 msgid "Search as you type" msgstr "Szukaj w trakcie wpisywania" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Automatically send downloaded &news to ebook reader" msgstr "Automatycznie przesyÅ‚aj pobrane &aktualnoÅ›ci na czytnik e-książek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" "&UsuÅ„ wiadomoÅ›ci z biblioteki, gdy jest automatycznie wysyÅ‚ane do czytnika" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "&Liczba wyÅ›wietlanych okÅ‚adek w trybie przeglÄ…darki (wymaga restartu):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "Select visible &columns in library view" msgstr "Wybierz &kolumny wyÅ›wietlane w widoku biblioteki:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "Remove a user-defined column" -msgstr "" +msgstr "UsuÅ„ kolumnÄ™ użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:567 msgid "Add a user-defined column" -msgstr "" +msgstr "Dodaj kolumnÄ™ użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Edit settings of a user-defined column" -msgstr "" +msgstr "Edytuj ustawienia kolumny użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Use internal &viewer for:" msgstr "Użyj &wewnÄ™trzej przeglÄ…darki dla:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "User Interface &layout (needs restart):" -msgstr "" +msgstr "&UkÅ‚ad interfejsu użytkownika (wymaga restartu):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:574 msgid "Disable all animations. Useful if you have a slow/old computer." msgstr "" +"Zablokuj wszystkie animacje. Przydatne, jeÅ›li masz wolny/stary komputer." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "Disable &animations" -msgstr "" +msgstr "Zablokuj &animacje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:576 msgid "Show &donate button (restart)" -msgstr "" +msgstr "Pokaż przycisk &dotacji (wymaga restartu)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:577 msgid "&Toolbar" -msgstr "" +msgstr "&Pasek narzÄ™dzi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:578 msgid "&Icon size:" -msgstr "" +msgstr "&Rozmiar ikon:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:579 msgid "Show &text under icons:" -msgstr "" +msgstr "Pokaż &tekst pod ikonami:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:576 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:580 msgid "Add an email address to which to send books" msgstr "Dodaj adres email, na którego chcesz wysÅ‚ać ksiÄ…zki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:577 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:581 msgid "&Add email" msgstr "&Dodaj email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:578 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:582 msgid "Make &default" msgstr "&Ustaw jako domyÅ›lny" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:579 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:583 msgid "&Remove email" msgstr "&UsuÅ„ email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:580 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:584 msgid "" "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." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:581 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:585 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:582 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:586 msgid "&Check database integrity" msgstr "&Sprawdź integralność bazy danych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:583 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:587 msgid "&Install command line tools" msgstr "Za&instaluj narzÄ™dzia linii komend" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:584 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:588 msgid "Open calibre &configuration directory" msgstr "Otwórz katalog &konfiguracyjny calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:585 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:589 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Ogranicz liczbÄ™ jednoczeÅ›nie wykonywanych zadaÅ„ do iloÅ›ci &rdzeni procesora" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:586 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:590 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:587 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:591 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 " @@ -5688,25 +5828,25 @@ msgstr "" "pomocÄ… przeglÄ…darki z dowolnego miejsca na Å›wiecie. Jakiekolwiek zmiany w " "ustawieniach zostanÄ… zatwierdzone po ponownym uruchomieniu serwera." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:588 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:592 msgid "Server &port:" msgstr "&Port serwera" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:589 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:593 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:58 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:212 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "Nazwa &użytkownika:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:590 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:594 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:59 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:213 +#: /home/kovid/work/trunk/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&HasÅ‚o:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:591 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:595 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -5714,52 +5854,52 @@ msgstr "" "JeÅ›li pozostawisz pole hasÅ‚a puste, każdy bÄ™dzie mógÅ‚ uzyskać dostÄ™p do " "twojej kolekcji książek przez interfejs internetowy." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:592 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:596 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:593 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:597 msgid "Max. &cover size:" msgstr "Maks. rozmiar &okÅ‚adki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:594 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "&Show password" msgstr "&Pokaż hasÅ‚o" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:595 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:599 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:596 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:600 msgid "Max. OPDS &ungrouped items:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:597 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:601 msgid "&Start Server" msgstr "&Włącz serwer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:598 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:602 msgid "St&op Server" msgstr "W&yłącz serwer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:599 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:603 msgid "&Test Server" msgstr "&Testuj serwer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:600 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:604 msgid "Run server &automatically on startup" msgstr "Uruchom serwer &automatycznie przy starcie aplikacji" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:601 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:605 msgid "View &server logs" msgstr "Pokaż dziennik &serwera" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:602 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/trunk/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" @@ -5768,14 +5908,14 @@ msgid "" "on your iPhone. Here myhostname should be the fully qualified hostname or " "the IP address of the computer calibre is running on." msgstr "" -"

    Pamiętaj, aby dodać kalibru działa jako serwer działa tylko tak długo, " -"jak kalibru działa.\n" -"

    Stanza powinien zobaczyć kalibru biblioteka automatycznie. Jeśli nie, " +"

    Pamiętaj, by pozostawić calibre załączone, jako że serwer działa tylko " +"wtedy, gdy calibre pracuje.\n" +"

    Stanza powinien automatycznie zobaczyć bibliotekę calibre. Jeśli nie, " "spróbuj dodać URL http://myhostname:8080 jako nowy katalog w czytniku Stanza " -"na urządzeniu iPhone. Oto myhostname powinny być w pełni kwalifikowaną nazwę " -"hosta lub adres IP klasy komputer jest zasilany." +"na urządzeniu iPhone. myhostname powinien być poprawną nazwą hosta lub " +"adresem IP komputera, na którym działa calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:604 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:608 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -5783,187 +5923,188 @@ msgstr "" "Tutaj można dostosować zachowanie Calibre poprzez kontrolę wtyczek, których " "ma używać." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:609 msgid "Enable/&Disable plugin" msgstr "Włącz/&Wyłącz wtyczkę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:610 msgid "&Customize plugin" msgstr "&Dostosuj wtyczkę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:611 msgid "&Remove plugin" msgstr "&Usuń wtyczkę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:612 msgid "Add new plugin" msgstr "Dodaj nową wtyczkę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:613 msgid "Plugin &file:" msgstr "&Plik wtyczki:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:611 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/config_ui.py:615 msgid "&Add" msgstr "&Dodaj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:125 msgid "Create Tag-based Column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:126 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:126 msgid "Lookup name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:127 msgid "Column heading" msgstr "Nagłówek kolumny" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:128 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:128 msgid "Column type" msgstr "Typ kolumny" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:129 msgid "Use brackets" msgstr "Użyj nawiasów" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:130 msgid "Values can be edited" msgstr "Wartości mogą być edytowane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:135 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:135 msgid "Text" msgstr "Tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:136 msgid "Number" msgstr "Liczba" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:137 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:31 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:889 +#: /home/kovid/work/trunk/src/calibre/library/server/opds.py:549 msgid "Date" msgstr "Data" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:138 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:138 msgid "Tag on book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:139 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:139 msgid "Explanation text added in create_ct_column.py" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:140 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:140 msgid "Create and edit tag-based columns" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:19 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:19 msgid "Text, column shown in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:22 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:22 msgid "Comma separated text, like tags, shown in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:25 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:25 msgid "Long text, like comments, not shown in the tag browser" -msgstr "" +msgstr "Długi tekst, jak komentarze, nie pokazywany w Przeglądarce etykiet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:28 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:28 msgid "Text column for keeping series-like information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:33 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:33 msgid "Floating point numbers" -msgstr "" +msgstr "Liczby wymierne" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:35 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:35 msgid "Integers" -msgstr "" +msgstr "Liczby całkowite" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:37 msgid "Ratings, shown with stars" msgstr "Oceany pokazywane gwiazdkami" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:40 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:40 msgid "Yes/No" -msgstr "" +msgstr "Tak/Nie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:64 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:69 msgid "No column selected" -msgstr "" +msgstr "Nie wybrano kolumny" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:65 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:70 msgid "No column has been selected" -msgstr "" +msgstr "Żadna kolumna nie została wybrana" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:74 msgid "Selected column is not a user-defined column" -msgstr "" +msgstr "Wybrana kolumna nie jest kolumną użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:100 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:105 msgid "No lookup name was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:107 msgid "" "The label must contain only letters, digits and underscores, and start with " "a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:116 msgid "No column heading was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:122 msgid "The lookup name %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:132 msgid "The heading %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column.py:134 msgid "" "The lookup name must be lower case and cannot contain \":\"s or spaces" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:117 msgid "Create or edit custom columns" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:102 msgid "&Lookup name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:103 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:103 msgid "Column &heading" -msgstr "" +msgstr "&Nagłówek kolumny" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:104 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:104 msgid "" "Used for searching the column. Must contain only digits and lower case " "letters." msgstr "" +"Używany do przeszukiwania kolumny. Może zawierać tylko cyfry i małe litery." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:105 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:105 msgid "" "Column heading in the library view and category name in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:106 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:106 msgid "Column &type" -msgstr "" +msgstr "&Typ kolumny" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:107 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:107 msgid "What kind of information will be kept in the column." -msgstr "" +msgstr "Jaki typ informacji będzie przechowywany w kolumnie." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:108 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:108 msgid "" "

    Date format. Use 1-4 'd's for day, 1-4 'M's for month, and 2 or 4 'y's " "for year.

    \n" @@ -5974,43 +6115,43 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:114 msgid "Use MMM yyyy for month + year, yyyy for year only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:115 msgid "Default: dd MMM yyyy." -msgstr "" +msgstr "DomyÅ›lnie: dd MMM yyyy." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:116 msgid "Format for &dates" -msgstr "" +msgstr "Format dla &dat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/device_debug.py:22 msgid "Copy to &clipboard" msgstr "Kopiuj do &schowka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:24 +#: /home/kovid/work/trunk/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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template.py:44 msgid "Invalid template" msgstr "NiewÅ‚aÅ›ciwy szablon" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template.py:45 msgid "The template %s is invalid:" msgstr "Szablon %s jest nieprawidÅ‚owy:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template_ui.py:42 msgid "Save &template" msgstr "Zapisz &szablon" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +#: /home/kovid/work/trunk/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 " @@ -6019,93 +6160,103 @@ msgid "" "by the empty string." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/save_template_ui.py:44 msgid "Available variables:" msgstr "DostÄ™pne zmienne:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/config/social.py:34 msgid "Downloading social metadata, please wait..." msgstr "Pobieranie szpoÅ‚ecznoÅ›ciowych metadanych, proszÄ™ czekać..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 msgid "&Show this warning again" msgstr "&Zawsze pokazuj to ostrzeżenie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:42 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/conversion_error_ui.py:42 msgid "ERROR" msgstr "BÅÄ„D" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:67 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:67 msgid "" "All checked books will be permanently deleted from your device. " "Please verify the list." msgstr "" +"Wszystkie zaznaczone książki bÄ™dÄ… trwale usuniÄ™te z Twojego " +"urzÄ…dzenia. Sprawdź listÄ™." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 msgid "Location" -msgstr "" +msgstr "Lokalizacja" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1064 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/library/models.py:1064 msgid "Format" msgstr "Format" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 msgid "Delete from device" -msgstr "" +msgstr "UsuÅ„ z urzÄ…dzenia" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:29 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 msgid "Author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:63 msgid "Manage authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:64 +msgid "Sort by author" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:65 +msgid "Sort by author sort" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:60 msgid "Author Sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:62 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:62 msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:162 msgid "Finding metadata..." msgstr "WyszukujÄ™ metadane..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:176 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:176 msgid "Could not find metadata" msgstr "Nie można byÅ‚o znaleźć metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:177 msgid "The metadata download seems to have stalled. Try again later." msgstr "" "Pobieranie metadanych wydaje siÄ™ przedÅ‚użać. Spróbuj ponownie później." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:186 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:186 msgid "Warning" msgstr "Ostrzeżenie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:187 msgid "Could not fetch metadata from:" msgstr "Nie udaÅ‚o siÄ™ pobrać metadanych z:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:191 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:191 msgid "No metadata found" msgstr "Nie znaleziono metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:192 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata.py:192 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Nie odnaleziono metadanych. Spróbuj poprawić tytuÅ‚ i autora albo numer ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "Fetch metadata" msgstr "Pobierz metadane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 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 " @@ -6117,127 +6268,127 @@ msgstr "" "musisz zarejestrować się i wpisać " "poniżej swój klucz dostępu." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "&Access Key:" msgstr "Klucz &dostepu:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Fetch" msgstr "Pobierz" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "Matches" msgstr "Pasujące" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" "Wybierz książkę, która najdokładniej pasuje do Twojej kopii, z listy poniżej" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Pobierz metadane społecznościowe (etykiety/oceny/itd.) dla zaznaczonej " "książki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:92 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/fetch_metadata_ui.py:92 msgid "Overwrite author and title with author and title of selected book" msgstr "" "Nadpisz autora i tytuł danymi odnośnie autora i tytułu z zaznaczonej książki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Szczegóły zadania" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:44 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/jobs_ui.py:44 msgid "Active Jobs" msgstr "Aktywne zadanie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/jobs_ui.py:45 msgid "&Stop selected job" msgstr "&Zatrzymaj zaznaczone zadanie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:46 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/jobs_ui.py:46 msgid "Show job &details" msgstr "Pokaż &szczegóły zadania" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/jobs_ui.py:47 msgid "Stop &all non device jobs" -msgstr "" +msgstr "Zatrzymaj &wszystkie zadania nie na urządzeniu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:24 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk.py:24 msgid "Editing meta information for %d books" -msgstr "" +msgstr "Edytuję metadane dla %d książek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 msgid "Edit Meta information" msgstr "Edytuj metadane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "A&utomatically set author sort" msgstr "A&utomatycznie sortuj według autora" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "Author s&ort: " msgstr "S&ortowanie według autora: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:368 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:162 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "&Rating:" msgstr "&Ocena:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:373 msgid "Rating of this book. 0-5 stars" msgstr "Ocena tej książki. 0-5 gwiazdek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:165 msgid "No change" msgstr "Bez zmian" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid " stars" msgstr " gwiazdek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:168 msgid "Add ta&gs: " msgstr "Dodaj t&agi: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "Open Tag Editor" msgstr "Otwórz edytor etykiet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:172 msgid "&Remove tags:" msgstr "&Usuń etykiety:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:173 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:173 msgid "Comma separated list of tags to remove from the books. " -msgstr "Lista oddzielonych przecinkami tagów do usunięcia z książki. " +msgstr "Lista oddzielonych przecinkami etykiet do usunięcia z książki. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:177 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:177 msgid "Remove &format:" msgstr "Usuń &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 msgid "&Swap title and author" msgstr "Zamień tytuł i autora" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 msgid "" "Selected books will be automatically numbered,\n" "in the order you selected them.\n" @@ -6245,423 +6396,451 @@ msgid "" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" "Future conversion of these books will use the default settings." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:187 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:187 msgid "Remove &stored conversion settings for the selected books" -msgstr "" +msgstr "Usuń zapi&sane ustawienia konwersji dla wybranych książek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:410 msgid "&Basic metadata" -msgstr "" +msgstr "&Podstawowe metadane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:404 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "&Custom metadata" -msgstr "" +msgstr "&Własne metadane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:94 +msgid "Last modified: %s" +msgstr "Ostatnio modyfikacja: %s" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:135 msgid "Not a valid picture" msgstr "To nie jest działający obrazek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:150 +msgid "Specify title and author" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:151 +msgid "You must specify a title and author before generating a cover" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:163 msgid "Choose formats for " msgstr "Wybierz formaty dla " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:194 msgid "No permission" msgstr "Brak uprawnień" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:195 msgid "You do not have permission to read the following files:" msgstr "Nie masz uprawnień do odczytu następujących plików:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:222 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:223 msgid "No format selected" msgstr "Nie wybrano formatu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:234 msgid "Could not read metadata" msgstr "Nie można odczytać metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:235 msgid "Could not read metadata from %s format" msgstr "Nie można odczytać metadanych z formatu %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:260 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:283 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:289 msgid "Could not read cover" msgstr "Nie udało się odczytać okładki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:255 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:284 msgid "Could not read cover from %s format" msgstr "Nie można odczytać okładki z formatu %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:261 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "The cover in the %s format is invalid" msgstr "Okładka w formacie %s jest nieprawidłowa" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:327 msgid "Abort the editing of all remaining books" msgstr "Przerwij edycję wszystkich pozostałych książek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:434 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:439 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:465 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:470 msgid "This ISBN number is valid" msgstr "Numer ISBN jest poprawny" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:442 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:473 msgid "This ISBN number is invalid" msgstr "Numer ISBN nie jest poprawny" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:552 msgid "Cannot use tag editor" -msgstr "" +msgstr "Nie można użyć edytora etykiet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:553 msgid "The tags editor cannot be used if you have modified the tags" -msgstr "" +msgstr "Edytor etykiet nie może zostać użyty, jeśli zmodyfikowałeś etykiety" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "Downloading cover..." msgstr "Pobieranie okładki..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:565 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:585 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:590 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:596 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:601 msgid "Cannot fetch cover" msgstr "Nie można pobrać okładki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:555 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:566 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:586 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:602 msgid "Could not fetch cover.
    " msgstr "Nie można pobrać okładki.
    " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:556 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:587 msgid "The download timed out." msgstr "Czas pobierania minął." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:591 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "Nie udało się odnaleźć okładki dla tej książki. Spróbuj podać najpierw numer " "ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:603 +msgid "" +"For the error message from each cover source, click Show details below." +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:610 msgid "Bad cover" msgstr "Zła okładka" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:611 msgid "The cover is not a valid picture" msgstr "Ta okładka nie jest działającym obrazkiem" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:606 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:644 msgid "There were errors" msgstr "Pojawiły się błędy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:607 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:645 msgid "There were errors downloading social metadata" msgstr "Wystepiły błędy podczas pobierania społecznościowych metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:636 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:674 msgid "Cannot fetch metadata" msgstr "Nie można pobrać metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:637 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:675 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" "Musisz określić co najmniej jeden element - kod ISBN, tytuł, autor lub " "wydawca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:708 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:750 msgid "Permission denied" msgstr "Brak dostępu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:709 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single.py:751 msgid "Could not open %s. Is it being used by another program?" msgstr "" "Nie można otworzyć %s. Czy ten plik nie jest przypadkiem używany przez inny " "program?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Edit Meta Information" msgstr "Edytuj metadane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:361 msgid "Meta information" msgstr "Metadane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:364 msgid "Swap the author and title" msgstr "Zamień autora z tytułem" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "Author S&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:369 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:378 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "Remove unused series (Series that have no books)" msgstr "" -"Usuń nieużywane serie (serie, które są nie przypisane do żadnej książki)" +"Usuń nieużywane cykle (cykle, które są nie przypisane do żadnej książki)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:385 msgid "IS&BN:" msgstr "IS&BN:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:386 msgid "Publishe&d:" msgstr "Wy&dana:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:389 msgid "dd MMM yyyy" msgstr "dd MMM rrrr" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "&Date:" msgstr "&Data:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:391 msgid "&Comments" msgstr "&Komentarze" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:392 msgid "&Fetch metadata from server" msgstr "&Pobierz metadane z serwera" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Available Formats" msgstr "Dostępne formaty" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:394 msgid "Add a new format for this book to the database" msgstr "Dodaj nowy format tej książki do bazy danych." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:396 msgid "Remove the selected formats for this book from the database." msgstr "Usuń zaznaczone formaty tej ksiązki z bazy danych." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:398 msgid "Set the cover for the book from the selected format" msgstr "Przypisz okładkę dla tej książki z wybranego formatu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:400 msgid "Update metadata from the metadata in the selected format" msgstr "Uaktualnij metadane pobierając je z metadanych wybranego formatu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:405 msgid "Reset cover to default" msgstr "Przywróć domyślną okładkę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:407 msgid "Download &cover" msgstr "Pobierz o&kładkę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +msgid "Generate a default cover based on the title and author" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +msgid "&Generate cover" +msgstr "" + +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/password_ui.py:56 msgid "Password needed" msgstr "Wymagane hasło" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/progress.py:52 msgid "Aborting..." msgstr "Przerywanie..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:54 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor.py:54 msgid "" "The current saved search will be permanently deleted. Are you sure?" msgstr "" +"Obecnie zapisane wyszukanie będzie trwale usunięte. Jesteś pewien?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:83 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:83 msgid "Saved Search Editor" -msgstr "" +msgstr "Edytor zapisanych wyszukań" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:84 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:84 msgid "Saved Search: " -msgstr "" +msgstr "Zapisane wyszukania: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:85 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:85 msgid "Select a saved search to edit" -msgstr "" +msgstr "Wybierz zapisane wyszukanie do edycji" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:86 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:86 msgid "Delete this selected saved search" -msgstr "" +msgstr "Usuń wybrane zapisane wyszukanie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 msgid "Enter a new saved search name." -msgstr "" +msgstr "Podaj nazwę nowego zapisanego wyszukania." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 msgid "Add the new saved search" -msgstr "" +msgstr "Dodaj nowe zapisane wyszukanie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 msgid "Change the contents of the saved search" -msgstr "" +msgstr "Zmień zawartość zapisanego wyszukania" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:120 msgid "Need username and password" msgstr "Potrzebna jest nazwa użytkownika oraz hasło" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:121 msgid "You must provide a username and/or password to use this news source." msgstr "" "Musisz podać nazwę użytkownik i/lub hasło, aby móc korzystać z tego źródła " "aktualności." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:172 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:172 msgid "Created by: " msgstr "Stworzone przez: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:179 msgid "Last downloaded: never" msgstr "Ostatnio pobrano: nigdy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:194 msgid "%d days, %d hours and %d minutes ago" msgstr "%d dni, %d godzin i %d minut temu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:196 msgid "Last downloaded" msgstr "Ostatnio pobrano" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:220 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:192 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:220 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:192 msgid "Schedule news download" msgstr "Zaplanuj pobieranie aktualności" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:223 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:223 msgid "Add a custom news source" msgstr "Dodaj własne źródło aktualności" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:228 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:228 msgid "Download all scheduled new sources" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:328 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:328 msgid "No internet connection" msgstr "Brak połączenia z internetem" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:329 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler.py:329 msgid "Cannot download news as no internet connection is active" msgstr "" "Nie można pobrac żadnych aktualności dopóki żadne połączenie internetowe nie " "jest aktywne" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:278 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:193 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:278 msgid "Recipes" msgstr "Źródła" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:194 msgid "Download all scheduled recipes at once" msgstr "Pobierz wszystkie zaplanowane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:195 msgid "Download &all scheduled" msgstr "Pobierz &wszystkie zaplanowane aktualności" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:196 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:196 msgid "blurb" -msgstr "" +msgstr "blurb" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:197 msgid "&Schedule for download:" msgstr "&Zaplanuj do pobrania:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:198 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:208 msgid "Every " msgstr "Co " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:199 msgid "day" msgstr "dzień" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:200 msgid "Monday" msgstr "poniedziałek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:201 msgid "Tuesday" msgstr "wtorek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:202 msgid "Wednesday" msgstr "środę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:203 msgid "Thursday" msgstr "czwartek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:204 msgid "Friday" msgstr "piątek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:205 msgid "Saturday" msgstr "sobotę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:206 msgid "Sunday" msgstr "niedzielę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:207 msgid "at" msgstr "o" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:209 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:210 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:210 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:222 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:263 msgid " days" msgstr " dni" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:211 msgid "&Account" msgstr "&Konto" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:215 msgid "For the scheduling to work, you must leave calibre running." msgstr "" "Aby zaplanowane działania były wykonywane, musisz zostawić włączone calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:216 msgid "&Schedule" msgstr "&Planowanie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:217 msgid "Add &title as tag" msgstr "Dodaj &tytuł jako etykietę" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:218 msgid "&Extra tags:" msgstr "&Dodatkowe etykiety:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:219 msgid "&Advanced" msgstr "Z&aawansowane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:220 msgid "&Download now" msgstr "&Pobierz teraz" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:221 msgid "" "Delete downloaded news older than the specified number of days. Set to zero " "to disable." @@ -6669,20 +6848,20 @@ msgstr "" "Usuń pobrane aktualności starsze niż podana liczba dni. Ustaw zero, aby " "wyłączyć usuwanie." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:223 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/scheduler_ui.py:223 msgid "Delete downloaded news older than " msgstr "Usuń pobrane aktualności starsze niż " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:36 msgid "contains" msgstr "zawiera" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:37 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:37 msgid "The text to search for. It is interpreted as a regular expression." msgstr "" "Tekst, którego szukasz. Jest on interpretowany jako wyrażenie regularne." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:38 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:38 msgid "" "

    Negate this match. That is, only return results that do not match " "this query." @@ -6690,146 +6869,147 @@ msgstr "" "

    Zaneguj to wyszukiwanie. Wynikami będą książki, które nie pasują " "do tekstu wyszukiwania." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:39 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_item_ui.py:39 msgid "Negate" msgstr "Zaneguj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:113 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:113 msgid "Advanced Search" -msgstr "Zaawansowane wyszukiwanie" +msgstr "Wyszukiwanie zaawansowane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:114 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:114 msgid "Find entries that have..." msgstr "Znajdź wpisy zawierające..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:115 msgid "&All these words:" msgstr "&Wszystkie te słowa:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:116 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:116 msgid "This exact &phrase:" -msgstr "Dokładnie tą &frazę:" +msgstr "Dokładnie tę &frazę:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:117 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:117 msgid "&One or more of these words:" msgstr "&Jedno lub więcej z tych słów:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:118 msgid "But dont show entries that have..." msgstr "Ale nie pokazuj wpisów zawierających..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:119 msgid "Any of these &unwanted words:" msgstr "Którekolwiek z &niechcianych słów:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:120 msgid "What kind of match to use:" msgstr "Jaki rodzaj porównywania ma być używany:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:121 msgid "Contains: the word or phrase matches anywhere in the metadata" msgstr "Zawieranie: słowo lub fraza występuje gdziekolwiek w metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:122 msgid "Equals: the word or phrase must match an entire metadata field" msgstr "" "Równość: słowo lub fraza musi w całości pasować do wpisu w metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:123 msgid "" "Regular expression: the expression must match anywhere in the metadata" msgstr "" "Wyrażenie regularne: wyrażenie musi pasować gdziekolwiek w metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:124 msgid " " msgstr " " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/search_ui.py:125 msgid "" "See the User Manual for more help" msgstr "" "Zerknij do Podręcznika Użytkownika aby uzyskać więcej informacji" +"search-interface\">Podręcznika Użytkownika, aby uzyskać więcej informacji" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "Wybierz formaty" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:80 msgid "Authors" msgstr "Autorzy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:45 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/trunk/src/calibre/library/field_metadata.py:111 msgid "Publishers" msgstr "Wydawcy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:109 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:114 msgid " (not on any book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories.py:166 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" +"Obecna kategoria etykiet będzie trwale usunięta. Jesteś pewien?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:153 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:153 msgid "User Categories Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:154 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:154 msgid "A&vailable items" -msgstr "" +msgstr "D&ostępne elementy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:155 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:155 msgid "Apply tags to current tag category" -msgstr "" +msgstr "Przypisz etykiety do obecnej kategorii etykiet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:157 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:157 msgid "A&pplied items" -msgstr "" +msgstr "Elementy do &zastosowania" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:158 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:158 msgid "Unapply (remove) tag from current tag category" -msgstr "" +msgstr "Usuń etykiety z obecnej kategorii etykiet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:160 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:160 msgid "Category name: " -msgstr "" +msgstr "Nazwa kategorii: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:161 msgid "Select a category to edit" -msgstr "" +msgstr "Wybierz kategorię do edycji" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:162 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:162 msgid "Delete this selected tag category" -msgstr "" +msgstr "Usuń wybraną kategorię etykiet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:164 msgid "Enter a new category name. Select the kind before adding it." -msgstr "" +msgstr "Podaj nazwę nowej kategorii. Przed dodaniem wybierz typ." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:165 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:165 msgid "Add the new category" -msgstr "" +msgstr "Dodaj nową kategorię" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:167 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:167 msgid "Category filter: " -msgstr "" +msgstr "Filtr kategorii: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:168 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_categories_ui.py:168 msgid "Select the content kind of the new category" -msgstr "" +msgstr "Wybierz typ zawartości nowej kategorii" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor.py:68 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" msgstr "Jesteś pewien?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:69 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor.py:69 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" @@ -6837,229 +7017,233 @@ msgstr "" "Następujące etykiety są przypisane do jednej lub więcej książek. Czy jesteś " "pewien, że chcesz je usunąć?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:123 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:123 msgid "Tag Editor" msgstr "Edytor etykiet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:124 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:124 msgid "A&vailable tags" msgstr "&Dostępne etykiety" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:125 +#: /home/kovid/work/trunk/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 "" -"Usuń etykietę z bazy danych. To działanie usunie tą etykietę ze wszystkich " +"Usuń etykietę z bazy danych. To działanie usunie tę etykietę ze wszystkich " "książek i usunie ją z bazy danych." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:127 msgid "Apply tag to current book" msgstr "Przypisz etykietę do tej książki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:129 msgid "A&pplied tags" msgstr "&Przypisane etykiety" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:130 msgid "Unapply (remove) tag from current book" msgstr "Usuń etykietę z tej książki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:132 msgid "&Add tag:" -msgstr "Dodaj etykietę:" +msgstr "Dod&aj etykietę:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:133 +#: /home/kovid/work/trunk/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 "" +"Jeśli etykieta, której chcesz użyć, nie jest dostępna na liście, możesz " +"dodać ją tutaj. Pole akceptuje listę etykiet oddzieloną przecinkami." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:134 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_editor_ui.py:134 msgid "Add tag to available tags and apply it to current book" msgstr "Dodaj etykietę do dostępnych etykiet i przypisz ją do tej książki" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:20 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:20 msgid "%s (was %s)" -msgstr "" +msgstr "%s (był %s)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:70 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:500 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:500 msgid "Item is blank" -msgstr "" +msgstr "Element jest pusty" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:501 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:75 +#: /home/kovid/work/trunk/src/calibre/gui2/tag_view.py:501 msgid "An item cannot be set to nothing. Delete it instead." -msgstr "" +msgstr "Element nie może zostać ustawiony jako pusty. Po prostu go usuń." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:87 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:91 msgid "No item selected" -msgstr "" +msgstr "Nie wybrano elementu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:88 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:92 msgid "You must select one item from the list of Available items." -msgstr "" +msgstr "Musisz wybrać jeden element z listy dostępnych elementów." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:97 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:101 msgid "No items selected" -msgstr "" +msgstr "Nie wybrano elementów" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:98 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:102 msgid "You must select at least one items from the list." -msgstr "" +msgstr "Musisz wybrać przynajmniej jeden element z listy." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor.py:106 msgid "Are you certain you want to delete the following items?" -msgstr "" +msgstr "Czy na pewno chcesz usunąć następujące elementy?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:72 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:72 msgid "Category Editor" -msgstr "" +msgstr "Edytor kategorii" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:73 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:73 msgid "Items in use" -msgstr "" +msgstr "Używane elementy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:74 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:74 msgid "" "Delete item from database. This will unapply the item from all books and " "then remove it from the database." msgstr "" +"Usuń element z bazy danych. Ta opcja odłączy element ze wszystkich książek, " +"a potem usunie go z bazy danych." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:76 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:76 msgid "Rename the item in every book where it is used." -msgstr "" +msgstr "Zmień nazwę elementu w każdej książce, w której jest używany." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 msgid "Ctrl+S" -msgstr "" +msgstr "Ctrl+S" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/test_email_ui.py:51 msgid "Test email settings" msgstr "Testuj ustawienia email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/test_email_ui.py:52 msgid "Send test mail from %s to:" msgstr "Wyślij testowy email z %s na:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/test_email_ui.py:53 +#: /home/kovid/work/trunk/src/calibre/gui2/filename_pattern_ui.py:115 msgid "&Test" msgstr "&Test" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:127 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:127 msgid "No recipe selected" msgstr "Nie zaznaczono źródła" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:132 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:132 msgid "The attached file: %s is a recipe to download %s." msgstr "Załączony plik: %s jest źródłem do pobrania %s." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:133 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:133 msgid "Recipe for " msgstr "Źródło dla " -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:150 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:161 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:255 msgid "Switch to Advanced mode" msgstr "Przełącz na tryb zaawansowany" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:164 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:156 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:164 msgid "Switch to Basic mode" msgstr "Przełącz na tryb podstawowy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:174 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:174 msgid "Feed must have a title" msgstr "Strumień musi mieć tytuł" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:175 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:175 msgid "The feed must have a title" msgstr "Strumień musi mieć tytuł" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:179 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:179 msgid "Feed must have a URL" msgstr "Strumień musi poisadać adres URL" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:180 msgid "The feed %s must have a URL" msgstr "Strumień %s musi poisadać adres URL" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:185 msgid "Already exists" msgstr "Już istnieje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:186 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:186 msgid "This feed has already been added to the recipe" msgstr "Ten strumień został już dodany do" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:227 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:236 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:286 msgid "Invalid input" msgstr "Niepoprawne dane wejściowe" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:228 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:237 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:287 msgid "

    Could not create recipe. Error:
    %s" msgstr "

    Nie można było stworzyć źródła. Błąd:
    %s" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:241 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:263 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:290 msgid "Replace recipe?" msgstr "Zastąpić źródłó?" -#: /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 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:242 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:264 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:291 msgid "A custom recipe named %s already exists. Do you want to replace it?" -msgstr "" +msgstr "Własne źródło o nazwie %s już istnieje. Chcesz je zastąpić?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:257 msgid "Pick recipe" msgstr "Wybierz źródło" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:257 msgid "Pick the recipe to customize" msgstr "Wybierz źródło, które chcesz dostosować" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:277 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles.py:277 msgid "Choose a recipe file" msgstr "Wybierz plik źródła" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:248 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:248 msgid "Add custom news source" msgstr "Dodaj własne źródło aktualności" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:249 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:249 msgid "Available user recipes" msgstr "Dostępne źródła użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:250 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:250 msgid "Add/Update &recipe" msgstr "Dodaj/Uaktualnij ź&ródło" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:251 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:251 msgid "&Remove recipe" msgstr "&Usuń źródło" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:252 msgid "&Share recipe" msgstr "&Przekaż źródło" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:253 msgid "Customize &builtin recipe" msgstr "Dostosuj jedno z &domyślnych źródeł" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:254 msgid "&Load recipe from file" msgstr "&Wczytaj źródło z pliku" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +#: /home/kovid/work/trunk/src/calibre/gui2/dialogs/user_profiles_ui.py:256 msgid "" "