diff --git a/.bzrignore b/.bzrignore index e2d1636ddd..a071a4f2f6 100644 --- a/.bzrignore +++ b/.bzrignore @@ -12,6 +12,7 @@ resources/images.qrc resources/scripts.pickle resources/ebook-convert-complete.pickle resources/builtin_recipes.xml +resources/builtin_recipes.zip setup/installer/windows/calibre/build.log src/calibre/translations/.errors src/cssutils/.svn/ diff --git a/Changelog.yaml b/Changelog.yaml index a25b52bfbf..f6493d48a9 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -19,6 +19,216 @@ # new recipes: # - title: +- version: 0.7.53 + date: 2011-04-01 + + new features: + - title: "Email delivery: You can now specify a subject that calibre will use when sending emails per email account, configured in Preferences->Sending by email. The subject is a template of the same kind used in Save to Disk, etc. So youcan specift the title/authors/series/whatever in the template." + tickets: [743535] + + - title: "Apple driver: When an iDevice is detected, inform the user about the Connect to iTunes method instead of trying to connect directly to the device, as the latter can be buggy. See http://www.mobileread.com/forums/showthread.php?t=127883 for details" + + - title: "SONY driver: Search for books on the device in all directories not just database/media/books. This can be turned off by customizing the SONY plugin in Preferences->Plugins" + + - title: "EPUB Output: Remove any margins specified via an Adobe page template in the input document. This means that the margins psecified in calibre are more likely to be the actual margins used." + + - title: "When reading metadata from filenames, allow publisher and published date to be read from the filename" + tickets: [744020] + + - title: "Remove the option to show a second tool bar from Preferences->Look & Feel. Instead go to Preferences->Toolbars and add items to the second toolbar to control exactly what is visible there." + tickets: [742686] + + - title: "Add a tweak that can be used to have the calibre content server listen for IPv6 connections." + tickets: [743486] + + - title: "When clicking Next or Previous in the edit metadata dialog, then active book in the main book list is also changed" + tickets: [743533] + + - title: "Remember the previously used setting for Match all/Match any under the Tag Browser when calibre restarts" + tickets: [743645] + + - title: "FB2 Output: Option to set the FB2 genre explicitly." + tickets: [743178] + + bug fixes: + - title: "Fix text color in the search bar set to black instead of the system font color" + tickets: [746846] + + - title: "Workaround for Word bug where Word uses gb2312 as the encoding when exporting CHinese docs to HTML istead of gbk" + tickets: [745428] + + - title: "Make sorting on the device view faster and more robust." + tickets: [742626] + + - title: "E-book viewer: Fix viewer losing place in very long single file documents when window resized." + tickets: [745001] + + - title: "MOBI Output: Workaround for Amazon's MOBI renderer not rendering top margins on ul and ol tags." + tickets: [744365] + + - title: "EPUB Input: Workaround for invalid EPUBs produced by someone named 'ibooks, Inc.'." + tickets: [744122] + + - title: "RTF Input: Handle RTF files with too many levels of list nesting." + tickets: [743243] + + improved recipes: + - Irish Times + - LifeHacker + - Estadao + - Folha de Sao Paulo + + new recipes: + - title: Financieele Dagblad + author: marvin_2 + + - title: "Prost Amerika, WV Hooligan and SB Nation" + author: rylsfan + + - title: "Cracked.com" + author: Nudgenudge + +- version: 0.7.52 + date: 2011-03-25 + + bug fixes: + - title: "Fixes a typo in 0.7.51 that broke the downloading of some news. Apologies." + tickets: [742840] + +- version: 0.7.51 + date: 2011-03-25 + + new features: + - title: "Conversion: Detect and remove fake page margins that are specified as a margin on (nearly) every paragraph." + description: "This can be turned off via an option under Structure Detection, in case it removes margins that should have been kept." + + - title: "Windows build: All the python code and recipes are now put into zip files. This should decrease the amount of time the windows installer spends 'calculating free space'" + + - title: "OSX and Linux: Add a setting in Preferences->Behavior to control the priority with which calibre worker processes run. This setting was already available on windows." + tickets: [741231] + + - title: "Driver for HTC Thunderbolt, T-Mobile Optimus, Archos 43 and Blackberry OS6" + + - title: "A new 'authors type' custom column" + + - title: "When building calibre from source note that calibre now absolutely requires python >= 2.7" + + - title: "Add the keyboard shortcut: Ctrl+Shift+R to restart calibre in debug mode" + + bug fixes: + - title: "Fix dragging and dropping lots of books from the book list to the Tag Browser was broken" + + - title: "Change the shebang in the calibre launcher script on linux to explicitly use python2 rather than python" + + - title: "When adding formats do not corrupt the added file if the user tries to add an existing format to itself" + + - title: "Fix drag and drop to add files that contain the # character in the filename" + + - title: "Tag editor shouldn't add empty tags" + tickets: [740890] + + - title: "MOBI Input: Handle MOBI files that have a too large 'number of records' field in their headers." + tickets: [740713] + + - title: "News download: Update RSS feedparser module to latest version" + + - title: "Various fixes to the zipfile module in calibre to handle 64 bit zipfiles and bring it up to date with the zip file module in the python stdlib" + + - title: "News download: Handle titles with ASCII control codes in them." + tickets: [739322] + + - title: "Make search hierarchies show simple names instead of compound ones." + + - title: "Fix commas in author names being converted to pipe symbols in the book details window" + + - title: "Fix PocketBook can't always find epub cover image to create thumbnail" + tickets: [9445] + + improved recipes: + - "168 ora" + - "LWN weekly" + - Christian Science Monitor + - Washington Post + - West Hawaii Today + + new recipes: + - title: "Planet KDE" + author: Riccardo Iaconelli + + - title: "HVG" + author: Istvan Papp + + - title: "Caijing Magazine" + auhtor: Eric Chen + + +- version: 0.7.50 + date: 2011-03-18 + + new features: + - title: "Add 'Read a random book' to the view menu" + + - title: "Add option to show composite columns in the tag browser." + + - title: "Add a tweak in Preferences->Tweaks to control where news that is automatically uploaded to a reader is sent." + tickets: [9427] + + - title: "Do not also show text in composite columns when showing an icon" + + - title: "Add a menu item to clear the last viewed books history in the ebook viewer" + + - title: "Kobo driver: Add support for the 'Closed' collection" + + - title: "Add rename/delete saved search options to Tag browser context menu" + + - title: "Make searches in the tag browser a possible hierarchical field" + + - title: "Allow using empty username and password when setting up an SMTP relay" + tickets: [9195] + + bug fixes: + - title: "Fix regression in 0.7.49 that broke deleting of news downloads older than x days." + tickets: [9417] + + - title: "Restore the ability to remove missing formats from metadata.db to the Check Library operation" + tickets: [9377] + + - title: "EPUB metadata: Read ISBN from Penguin epubs that dont correctly specify it" + + - title: "Conversion pipeline: Handle the case where the ncx file is incorrectly given an HTML mimetype" + + - title: "Make numpad navigation keys work in viewer" + tickets: [9428] + + - title: "Fix ratings not being downloaded from Amazon" + + - title: "Content server: Add workaround for Internet Explorer not supporting the ' entity." + tickets: [9413] + + - title: "Conversion pipeline: When detecting chapters/toc links from HTML normalize spaces and increase maximum TOC title length to 1000 characters from 100 characters." + tickets: [9363] + + - title: "Fix regression that broke Search and Replace on custom fields" + tickets: [9397] + + - title: "Fix regression that caused currently selected row to be unfocussed int he device view when updataing metadata" + tickets: [9395] + + - title: "Coversion S&R: Do not strip leading and trailing whitespace from the search and replace expressions in the GUI" + + + improved recipes: + - Sports Illustrated + - Draw and Cook + + new recipes: + - title: "Evangelizo.org and pro-linux.de" + author: Bobus + + - title: "Office Space and Modoros" + author: Zsolt Botykai + + - version: 0.7.49 date: 2011-03-11 @@ -47,7 +257,7 @@ - title: "When setting covers in calibre, resize to fit within a maximum size of (1200, 1600), to prevent slowdowns due to extra large covers. This size can be controlled via Preferences->Tweaks." tickets: [9277] - + bug fixes: - title: "Fix long standing bug that caused errors when saving books to disk if the book metadata has certain chinese/russian characters on windows. The fix required some changes to how unicode paths are handled in calibre, so it might have broken something else. If so, please open a ticket." tickets: [7250] diff --git a/format_docs/pdb/mobi.txt b/format_docs/pdb/mobi.txt index e378e1622b..bf08bd8b71 100644 --- a/format_docs/pdb/mobi.txt +++ b/format_docs/pdb/mobi.txt @@ -210,21 +210,23 @@ record type usual length name comments 114 versionnumber 115 sample 116 startreading -118 retail price (as text) -119 retail price currency (as text) -201 coveroffset -202 thumboffset +117 3 adult Mobipocket Creator adds this if Adult only is checked; contents: "yes" +118 retail price As text, e.g. "4.99" +119 retail price currency As text, e.g. "USD" +201 4 coveroffset Add to first image field in Mobi Header to find PDB record containing the cover image +202 4 thumboffset Add to first image field in Mobi Header to find PDB record containing the thumbnail cover image 203 hasfakecover -204 204 Unknown -205 205 Unknown -206 206 Unknown -207 207 Unknown -208 208 Unknown -300 300 Unknown -401 clippinglimit +204 4 Creator Software Records 204-207 are usually the same for all books from a certain source, e.g. 1-6-2-41 for Baen and 201-1-0-85 for project gutenberg, 200-1-0-85 for amazon when converted to a 32 bit integer. +205 4 Creator Major Version +206 4 Creator Minor Version +207 4 Creator Build Number +208 watermark +209 tamper proof keys Used by the Kindle (and Android app) for generating book-specific PIDs. +300 fontsignature +401 1 clippinglimit 402 publisherlimit -403 403 Unknown -404 404 ttsflag +403 403 Unknown 1 - Text to Speech disabled; 0 - Text to Speech enabled +404 1 404 ttsflag 501 4 cdetype PDOC - Personal Doc; EBOK - ebook; 502 lastupdatetime @@ -287,9 +289,9 @@ content at the beginning of the following record. The trailing entry ends with a byte containing a count of the overlapping bytes plus additional flags. offset bytes content comments -0 0-3 N terminal bytes +0 0-3 N terminal bytes of a multibyte - character + character N 1 Size & flags bits 1-2 encode N, use of bits 3-8 is unknown @@ -328,6 +330,102 @@ programs may ignore them entirely. They are stored at the end of the file itself so the full file needs to be scanned when loaded to find them. +Image Records +------------- + +If the file contains images, they follow the text blocks, with each image using a +single block. The 4096-byte record size in the PalmDoc header applies only to +text records; image records may be larger. + + +Magic Records +------------- + +In some cases, MobiPocket Creator adds a 2-zero-byte record after the text +records in a file. This record is not included in the "record count" of text +records in the PalmDoc header, and is also not used as the "first non-book +index" in the MOBI header. (If the 2-zero-byte record is present, the index of +the following block is used as the "first non-book index".) + +MobiPocket Creator also ends files with three records: 'FLIS', 'FCIS', and +'end-of-file', in that order. The 'FLIS' and 'FCIS' records do not seem to be +necessary for MobiPocket Reader or the Amazon Kindle 2 to read the file. The +'end-of-file' record might be necessary. + + +FLIS Record +----------- + +The FLIS record appears to have a fixed value. The meaning of the values is not known. + +offset bytes content comments +0 4 identifier the characters F L I S (0x46 0x4c 0x49 0x53) +4 4 ? fixed value: 8 +8 2 ? fixed value: 65 +10 2 ? fixed value: 0 +12 4 ? fixed value: 0 +16 4 ? fixed value: -1 +20 2 ? fixed value: 1 +22 2 ? fixed value: 3 +24 4 ? fixed value: 3 +28 4 ? fixed value: 1 +32 4 ? fixed value: -1 + + +FCIS Record +----------- + +The FCIS record appears to have mostly fixed values. + +offset bytes content comments +0 4 identifier the characters F C I S (0x46 0x43 0x49 0x53) +4 4 ? fixed value: 20 +8 4 ? fixed value: 16 +12 4 ? fixed value: 1 +16 4 ? fixed value: 0 +20 4 ? text length (the same value as "text length" in the PalmDoc header) +24 4 ? fixed value: 0 +28 4 ? fixed value: 32 +32 4 ? fixed value: 8 +36 2 ? fixed value: 1 +38 2 ? fixed value: 1 +40 4 ? fixed value: 0 + + +End-of-file Record +------------------ + +The end-of-file record is a fixed 4-byte record. While the last two bytes +appear to be a CRLF marker, the meaning of the first two bytes is unknown. + +offset bytes content comments +0 1 ? fixed value: 233 (0xe9) +1 1 ? fixed value: 142 (0x8e) +2 1 ? fixed value: 13 (0x0d) +3 1 ? fixed value: 10 (0x0a) + + +SRCS Record +----------- + +kindlegen creates a record whose content is a zip archive of all source files +(i.e., .opf, .ncx, .htm, .jpg, ...) given to the command and puts it in the +generated MOBI file. The record begins with the "SRCS" signature and is +located just before the #End-of-file Record. + +MOBI files created with Mobipocket creator, Amazon's Personal Document Service, +or Kindle Direct Publishing (former Amazon DTP) don't include SRCS record. +In a past, kindlegen had an undocumented option to suppress this record, but +the option was removed in 2010. + +offset bytes content comments +0 4 identifier "SRCS" (0x53 0x52 0x43 0x53) +4 4 ? fixed value(?): 0x00000010 +8 4 ? fixed value(?): 0x0000002f +12 4 ? fixed value(?): 0x00000001 +16 zip The zip archive continues to the end of this record + + MBP --- diff --git a/resources/recipes/180.recipe b/recipes/180.recipe similarity index 100% rename from resources/recipes/180.recipe rename to recipes/180.recipe diff --git a/resources/recipes/20_minutos.recipe b/recipes/20_minutos.recipe similarity index 100% rename from resources/recipes/20_minutos.recipe rename to recipes/20_minutos.recipe diff --git a/resources/recipes/20minutos.recipe b/recipes/20minutos.recipe similarity index 100% rename from resources/recipes/20minutos.recipe rename to recipes/20minutos.recipe diff --git a/resources/recipes/24sata.recipe b/recipes/24sata.recipe similarity index 100% rename from resources/recipes/24sata.recipe rename to recipes/24sata.recipe diff --git a/resources/recipes/24sata_rs.recipe b/recipes/24sata_rs.recipe similarity index 100% rename from resources/recipes/24sata_rs.recipe rename to recipes/24sata_rs.recipe diff --git a/resources/recipes/7dias.recipe b/recipes/7dias.recipe similarity index 100% rename from resources/recipes/7dias.recipe rename to recipes/7dias.recipe diff --git a/resources/recipes/7seri.recipe b/recipes/7seri.recipe similarity index 100% rename from resources/recipes/7seri.recipe rename to recipes/7seri.recipe diff --git a/resources/recipes/Ansa.recipe b/recipes/Ansa.recipe similarity index 100% rename from resources/recipes/Ansa.recipe rename to recipes/Ansa.recipe diff --git a/resources/recipes/DrawAndCook.recipe b/recipes/DrawAndCook.recipe similarity index 71% rename from resources/recipes/DrawAndCook.recipe rename to recipes/DrawAndCook.recipe index 1c080b85db..8db4f71014 100644 --- a/resources/recipes/DrawAndCook.recipe +++ b/recipes/DrawAndCook.recipe @@ -1,8 +1,11 @@ from calibre.web.feeds.news import BasicNewsRecipe +import re class DrawAndCook(BasicNewsRecipe): title = 'DrawAndCook' __author__ = 'Starson17' + __version__ = 'v1.10' + __date__ = '13 March 2011' description = 'Drawings of recipes!' language = 'en' publisher = 'Starson17' @@ -13,6 +16,7 @@ class DrawAndCook(BasicNewsRecipe): remove_javascript = True remove_empty_feeds = True cover_url = 'http://farm5.static.flickr.com/4043/4471139063_4dafced67f_o.jpg' + INDEX = 'http://www.theydrawandcook.com' max_articles_per_feed = 30 remove_attributes = ['style', 'font'] @@ -34,20 +38,21 @@ class DrawAndCook(BasicNewsRecipe): date = '' current_articles = [] soup = self.index_to_soup(url) - recipes = soup.findAll('div', attrs={'class': 'date-outer'}) + featured_major_slider = soup.find(name='div', attrs={'id':'featured_major_slider'}) + recipes = featured_major_slider.findAll('li', attrs={'data-id': re.compile(r'artwork_entry_\d+', re.DOTALL)}) for recipe in recipes: - title = recipe.h3.a.string - page_url = recipe.h3.a['href'] + page_url = self.INDEX + recipe.a['href'] + print 'page_url is: ', page_url + title = recipe.find('strong').string + print 'title is: ', title 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'}) + keep_only_tags = [dict(name='h1', attrs={'id':'page_title'}) + ,dict(name='section', attrs={'id':'artwork'}) ] - remove_tags = [dict(name='div', attrs={'class':['separator']}) - ,dict(name='div', attrs={'class':['post-share-buttons']}) + remove_tags = [dict(name='article', attrs={'id':['recipe_actions', 'metadata']}) ] extra_css = ''' diff --git a/resources/recipes/ZIVE.sk.recipe b/recipes/ZIVE.sk.recipe similarity index 100% rename from resources/recipes/ZIVE.sk.recipe rename to recipes/ZIVE.sk.recipe diff --git a/resources/recipes/abc.recipe b/recipes/abc.recipe similarity index 100% rename from resources/recipes/abc.recipe rename to recipes/abc.recipe diff --git a/resources/recipes/abc_au.recipe b/recipes/abc_au.recipe similarity index 100% rename from resources/recipes/abc_au.recipe rename to recipes/abc_au.recipe diff --git a/resources/recipes/abc_es.recipe b/recipes/abc_es.recipe similarity index 100% rename from resources/recipes/abc_es.recipe rename to recipes/abc_es.recipe diff --git a/resources/recipes/abc_py.recipe b/recipes/abc_py.recipe similarity index 100% rename from resources/recipes/abc_py.recipe rename to recipes/abc_py.recipe diff --git a/resources/recipes/accountancyage.recipe b/recipes/accountancyage.recipe similarity index 100% rename from resources/recipes/accountancyage.recipe rename to recipes/accountancyage.recipe diff --git a/resources/recipes/ad.recipe b/recipes/ad.recipe similarity index 100% rename from resources/recipes/ad.recipe rename to recipes/ad.recipe diff --git a/resources/recipes/adevarul.recipe b/recipes/adevarul.recipe similarity index 100% rename from resources/recipes/adevarul.recipe rename to recipes/adevarul.recipe diff --git a/resources/recipes/adnkronos.recipe b/recipes/adnkronos.recipe similarity index 100% rename from resources/recipes/adnkronos.recipe rename to recipes/adnkronos.recipe diff --git a/resources/recipes/adventuregamers.recipe b/recipes/adventuregamers.recipe similarity index 100% rename from resources/recipes/adventuregamers.recipe rename to recipes/adventuregamers.recipe diff --git a/resources/recipes/aftenposten.recipe b/recipes/aftenposten.recipe similarity index 100% rename from resources/recipes/aftenposten.recipe rename to recipes/aftenposten.recipe diff --git a/resources/recipes/agrogerila.recipe b/recipes/agrogerila.recipe similarity index 100% rename from resources/recipes/agrogerila.recipe rename to recipes/agrogerila.recipe diff --git a/resources/recipes/aif_ru.recipe b/recipes/aif_ru.recipe similarity index 100% rename from resources/recipes/aif_ru.recipe rename to recipes/aif_ru.recipe diff --git a/resources/recipes/ajc.recipe b/recipes/ajc.recipe similarity index 100% rename from resources/recipes/ajc.recipe rename to recipes/ajc.recipe diff --git a/resources/recipes/ajiajin.recipe b/recipes/ajiajin.recipe similarity index 100% rename from resources/recipes/ajiajin.recipe rename to recipes/ajiajin.recipe diff --git a/resources/recipes/akter.recipe b/recipes/akter.recipe similarity index 100% rename from resources/recipes/akter.recipe rename to recipes/akter.recipe diff --git a/resources/recipes/al_jazeera.recipe b/recipes/al_jazeera.recipe similarity index 100% rename from resources/recipes/al_jazeera.recipe rename to recipes/al_jazeera.recipe diff --git a/resources/recipes/alo_novine.recipe b/recipes/alo_novine.recipe similarity index 100% rename from resources/recipes/alo_novine.recipe rename to recipes/alo_novine.recipe diff --git a/resources/recipes/alternet.recipe b/recipes/alternet.recipe similarity index 100% rename from resources/recipes/alternet.recipe rename to recipes/alternet.recipe diff --git a/resources/recipes/ambito.recipe b/recipes/ambito.recipe similarity index 100% rename from resources/recipes/ambito.recipe rename to recipes/ambito.recipe diff --git a/resources/recipes/american_thinker.recipe b/recipes/american_thinker.recipe similarity index 100% rename from resources/recipes/american_thinker.recipe rename to recipes/american_thinker.recipe diff --git a/resources/recipes/amspec.recipe b/recipes/amspec.recipe similarity index 100% rename from resources/recipes/amspec.recipe rename to recipes/amspec.recipe diff --git a/resources/recipes/an_druma_mor.recipe b/recipes/an_druma_mor.recipe similarity index 100% rename from resources/recipes/an_druma_mor.recipe rename to recipes/an_druma_mor.recipe diff --git a/resources/recipes/anandtech.recipe b/recipes/anandtech.recipe similarity index 100% rename from resources/recipes/anandtech.recipe rename to recipes/anandtech.recipe diff --git a/resources/recipes/anchorage_daily.recipe b/recipes/anchorage_daily.recipe similarity index 100% rename from resources/recipes/anchorage_daily.recipe rename to recipes/anchorage_daily.recipe diff --git a/resources/recipes/animal_politico.recipe b/recipes/animal_politico.recipe similarity index 100% rename from resources/recipes/animal_politico.recipe rename to recipes/animal_politico.recipe diff --git a/resources/recipes/ap.recipe b/recipes/ap.recipe similarity index 100% rename from resources/recipes/ap.recipe rename to recipes/ap.recipe diff --git a/resources/recipes/apcom.recipe b/recipes/apcom.recipe similarity index 100% rename from resources/recipes/apcom.recipe rename to recipes/apcom.recipe diff --git a/resources/recipes/apod.recipe b/recipes/apod.recipe similarity index 100% rename from resources/recipes/apod.recipe rename to recipes/apod.recipe diff --git a/resources/recipes/apple_daily.recipe b/recipes/apple_daily.recipe similarity index 100% rename from resources/recipes/apple_daily.recipe rename to recipes/apple_daily.recipe diff --git a/resources/recipes/aprospect.recipe b/recipes/aprospect.recipe similarity index 100% rename from resources/recipes/aprospect.recipe rename to recipes/aprospect.recipe diff --git a/resources/recipes/arabian_business.recipe b/recipes/arabian_business.recipe similarity index 100% rename from resources/recipes/arabian_business.recipe rename to recipes/arabian_business.recipe diff --git a/resources/recipes/arbetaren.recipe b/recipes/arbetaren.recipe similarity index 100% rename from resources/recipes/arbetaren.recipe rename to recipes/arbetaren.recipe diff --git a/resources/recipes/arcamax.recipe b/recipes/arcamax.recipe similarity index 100% rename from resources/recipes/arcamax.recipe rename to recipes/arcamax.recipe diff --git a/resources/recipes/ars_technica.recipe b/recipes/ars_technica.recipe similarity index 100% rename from resources/recipes/ars_technica.recipe rename to recipes/ars_technica.recipe diff --git a/resources/recipes/asia_one.recipe b/recipes/asia_one.recipe similarity index 100% rename from resources/recipes/asia_one.recipe rename to recipes/asia_one.recipe diff --git a/resources/recipes/atlantic.recipe b/recipes/atlantic.recipe similarity index 100% rename from resources/recipes/atlantic.recipe rename to recipes/atlantic.recipe diff --git a/resources/recipes/auto.recipe b/recipes/auto.recipe similarity index 100% rename from resources/recipes/auto.recipe rename to recipes/auto.recipe diff --git a/resources/recipes/auto_prove.recipe b/recipes/auto_prove.recipe similarity index 100% rename from resources/recipes/auto_prove.recipe rename to recipes/auto_prove.recipe diff --git a/resources/recipes/avantaje.recipe b/recipes/avantaje.recipe similarity index 100% rename from resources/recipes/avantaje.recipe rename to recipes/avantaje.recipe diff --git a/resources/recipes/aventurilapescuit.recipe b/recipes/aventurilapescuit.recipe similarity index 100% rename from resources/recipes/aventurilapescuit.recipe rename to recipes/aventurilapescuit.recipe diff --git a/resources/recipes/avto-magazin.recipe b/recipes/avto-magazin.recipe similarity index 100% rename from resources/recipes/avto-magazin.recipe rename to recipes/avto-magazin.recipe diff --git a/resources/recipes/axxon_magazine.recipe b/recipes/axxon_magazine.recipe similarity index 100% rename from resources/recipes/axxon_magazine.recipe rename to recipes/axxon_magazine.recipe diff --git a/resources/recipes/axxon_news.recipe b/recipes/axxon_news.recipe similarity index 100% rename from resources/recipes/axxon_news.recipe rename to recipes/axxon_news.recipe diff --git a/resources/recipes/azstarnet.recipe b/recipes/azstarnet.recipe similarity index 100% rename from resources/recipes/azstarnet.recipe rename to recipes/azstarnet.recipe diff --git a/resources/recipes/b92.recipe b/recipes/b92.recipe similarity index 100% rename from resources/recipes/b92.recipe rename to recipes/b92.recipe diff --git a/resources/recipes/balkaninsight.recipe b/recipes/balkaninsight.recipe similarity index 100% rename from resources/recipes/balkaninsight.recipe rename to recipes/balkaninsight.recipe diff --git a/resources/recipes/baltimore_sun.recipe b/recipes/baltimore_sun.recipe similarity index 100% rename from resources/recipes/baltimore_sun.recipe rename to recipes/baltimore_sun.recipe diff --git a/resources/recipes/bangkok_biz.recipe b/recipes/bangkok_biz.recipe similarity index 100% rename from resources/recipes/bangkok_biz.recipe rename to recipes/bangkok_biz.recipe diff --git a/resources/recipes/bangkokpost.recipe b/recipes/bangkokpost.recipe similarity index 100% rename from resources/recipes/bangkokpost.recipe rename to recipes/bangkokpost.recipe diff --git a/resources/recipes/barrons.recipe b/recipes/barrons.recipe similarity index 100% rename from resources/recipes/barrons.recipe rename to recipes/barrons.recipe diff --git a/resources/recipes/bay_citizen.recipe b/recipes/bay_citizen.recipe similarity index 100% rename from resources/recipes/bay_citizen.recipe rename to recipes/bay_citizen.recipe diff --git a/resources/recipes/bbc.recipe b/recipes/bbc.recipe similarity index 100% rename from resources/recipes/bbc.recipe rename to recipes/bbc.recipe diff --git a/resources/recipes/bbc_chinese.recipe b/recipes/bbc_chinese.recipe similarity index 100% rename from resources/recipes/bbc_chinese.recipe rename to recipes/bbc_chinese.recipe diff --git a/resources/recipes/bbc_es.recipe b/recipes/bbc_es.recipe similarity index 100% rename from resources/recipes/bbc_es.recipe rename to recipes/bbc_es.recipe diff --git a/resources/recipes/bbc_fast.recipe b/recipes/bbc_fast.recipe similarity index 100% rename from resources/recipes/bbc_fast.recipe rename to recipes/bbc_fast.recipe diff --git a/resources/recipes/bbc_sport.recipe b/recipes/bbc_sport.recipe similarity index 100% rename from resources/recipes/bbc_sport.recipe rename to recipes/bbc_sport.recipe diff --git a/resources/recipes/bbcvietnamese.recipe b/recipes/bbcvietnamese.recipe similarity index 100% rename from resources/recipes/bbcvietnamese.recipe rename to recipes/bbcvietnamese.recipe diff --git a/resources/recipes/berlingske_dk.recipe b/recipes/berlingske_dk.recipe similarity index 100% rename from resources/recipes/berlingske_dk.recipe rename to recipes/berlingske_dk.recipe diff --git a/resources/recipes/beta.recipe b/recipes/beta.recipe similarity index 100% rename from resources/recipes/beta.recipe rename to recipes/beta.recipe diff --git a/resources/recipes/beta_en.recipe b/recipes/beta_en.recipe similarity index 100% rename from resources/recipes/beta_en.recipe rename to recipes/beta_en.recipe diff --git a/resources/recipes/big_oven.recipe b/recipes/big_oven.recipe similarity index 100% rename from resources/recipes/big_oven.recipe rename to recipes/big_oven.recipe diff --git a/resources/recipes/biggovernment.recipe b/recipes/biggovernment.recipe similarity index 100% rename from resources/recipes/biggovernment.recipe rename to recipes/biggovernment.recipe diff --git a/resources/recipes/bighollywood.recipe b/recipes/bighollywood.recipe similarity index 100% rename from resources/recipes/bighollywood.recipe rename to recipes/bighollywood.recipe diff --git a/resources/recipes/billorielly.recipe b/recipes/billorielly.recipe similarity index 100% rename from resources/recipes/billorielly.recipe rename to recipes/billorielly.recipe diff --git a/resources/recipes/bitacora.recipe b/recipes/bitacora.recipe similarity index 100% rename from resources/recipes/bitacora.recipe rename to recipes/bitacora.recipe diff --git a/resources/recipes/biz_portal.recipe b/recipes/biz_portal.recipe similarity index 100% rename from resources/recipes/biz_portal.recipe rename to recipes/biz_portal.recipe diff --git a/resources/recipes/blic.recipe b/recipes/blic.recipe similarity index 100% rename from resources/recipes/blic.recipe rename to recipes/blic.recipe diff --git a/resources/recipes/boortz.recipe b/recipes/boortz.recipe similarity index 100% rename from resources/recipes/boortz.recipe rename to recipes/boortz.recipe diff --git a/resources/recipes/borba.recipe b/recipes/borba.recipe similarity index 100% rename from resources/recipes/borba.recipe rename to recipes/borba.recipe diff --git a/resources/recipes/boston.com.recipe b/recipes/boston.com.recipe similarity index 100% rename from resources/recipes/boston.com.recipe rename to recipes/boston.com.recipe diff --git a/resources/recipes/brand_eins.recipe b/recipes/brand_eins.recipe similarity index 100% rename from resources/recipes/brand_eins.recipe rename to recipes/brand_eins.recipe diff --git a/resources/recipes/bucataras.recipe b/recipes/bucataras.recipe similarity index 100% rename from resources/recipes/bucataras.recipe rename to recipes/bucataras.recipe diff --git a/resources/recipes/buckmasters.recipe b/recipes/buckmasters.recipe similarity index 100% rename from resources/recipes/buckmasters.recipe rename to recipes/buckmasters.recipe diff --git a/resources/recipes/buenosaireseconomico.recipe b/recipes/buenosaireseconomico.recipe similarity index 100% rename from resources/recipes/buenosaireseconomico.recipe rename to recipes/buenosaireseconomico.recipe diff --git a/resources/recipes/buffalo_news.recipe b/recipes/buffalo_news.recipe similarity index 100% rename from resources/recipes/buffalo_news.recipe rename to recipes/buffalo_news.recipe diff --git a/resources/recipes/business_insider.recipe b/recipes/business_insider.recipe similarity index 100% rename from resources/recipes/business_insider.recipe rename to recipes/business_insider.recipe diff --git a/resources/recipes/business_spectator.recipe b/recipes/business_spectator.recipe similarity index 100% rename from resources/recipes/business_spectator.recipe rename to recipes/business_spectator.recipe diff --git a/resources/recipes/business_standard.recipe b/recipes/business_standard.recipe similarity index 100% rename from resources/recipes/business_standard.recipe rename to recipes/business_standard.recipe diff --git a/resources/recipes/business_week.recipe b/recipes/business_week.recipe similarity index 100% rename from resources/recipes/business_week.recipe rename to recipes/business_week.recipe diff --git a/resources/recipes/businessworldin.recipe b/recipes/businessworldin.recipe similarity index 100% rename from resources/recipes/businessworldin.recipe rename to recipes/businessworldin.recipe diff --git a/resources/recipes/bwmagazine.recipe b/recipes/bwmagazine.recipe similarity index 100% rename from resources/recipes/bwmagazine.recipe rename to recipes/bwmagazine.recipe diff --git a/resources/recipes/cacm.recipe b/recipes/cacm.recipe similarity index 100% rename from resources/recipes/cacm.recipe rename to recipes/cacm.recipe diff --git a/recipes/caijing.recipe b/recipes/caijing.recipe new file mode 100644 index 0000000000..34e6c1e8a9 --- /dev/null +++ b/recipes/caijing.recipe @@ -0,0 +1,79 @@ +import re +from calibre.web.feeds.recipes import BasicNewsRecipe + + +class Caijing(BasicNewsRecipe): + + title = 'Caijing Magazine' + __author__ = 'Eric Chen' + + description = '''Bi-weekly Finance and Economics Review. Founded in 1998, the fortnightly CAIJING + Magazine has firmly established itself as a news authority and leading voice for + business and financial issues in China. + CAIJING Magazine closely tracks the most important aspects of China's economic reforms, + developments and policy changes, as well as major events in the capital markets. It also + offers a broad international perspective through first-hand reporting on international + political and economic issues. + CAIJING Magazine is China's most widely read business and finance magazine, with a + circulation of 225,000 per issue. It boasts top-level readers from government, business + and academic circles. ''' + language = 'zh' + category = 'news, China' + encoding = 'UTF-8' + timefmt = ' [%a, %d %b, %Y]' + needs_subscription = True + + remove_tags = [dict(attrs={'class':['topad', 'nav', 'searchbox', 'connav', + 'mbx', 'bianji', 'bianji bj', 'lnewlist', 'rdtj', 'loadComment', + 'conr', 'bottom', 'bottomcopyr', 'emaildy', 'rcom', 'allcontent']}), + dict(name=['script', 'noscript', 'style'])] + no_stylesheets = True + remove_javascript = True + current_issue_url = "" + current_issue_cover = "" + + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + if self.username is not None and self.password is not None: + br.open('http://service.caijing.com.cn/usermanage/login') + br.select_form(name='mainLoginForm') + br['username'] = self.username + br['password'] = self.password + br.submit() + return br + + def parse_index(self): + articles = [] + soup0 = self.index_to_soup('http://magazine.caijing.com.cn/2011/cjindex2011/') + div = soup0.find('div', attrs={'class':'fmcon'}) + link = div.find('a', href=True) + current_issue_url = link['href'] + + soup = self.index_to_soup(current_issue_url) + + for div_cover in soup.findAll('img', {'src' : re.compile('.')}): + if re.search('\d{4}-\d{2}-\d{2}', div_cover['src']): + self.current_issue_cover = div_cover['src'] + + feeds = [] + for section in soup.findAll('div', attrs={'class':'cebd'}): + section_title = self.tag_to_string(section.find('div', attrs={'class':'ceti'})) + articles = [] + for post in section.findAll('a', href=True): + if re.search('\d{4}-\d{2}-\d{2}', post['href']): + date = re.search('\d{4}-\d{2}-\d{2}', post['href']).group(0) + id = re.search('\d{9}', post['href']).group(0) + url = re.sub(r'\d.*', 'templates/inc/chargecontent2.jsp?id=', post['href']) + url = url + id + '&time=' + date + '&cl=106&page=all' + + title = self.tag_to_string(post) + articles.append({'title':title, 'url':url, 'date':date}) + + if articles: + feeds.append((section_title, articles)) + return feeds + + def get_cover_url(self): + return self.current_issue_cover + diff --git a/resources/recipes/calcalist.recipe b/recipes/calcalist.recipe similarity index 100% rename from resources/recipes/calcalist.recipe rename to recipes/calcalist.recipe diff --git a/resources/recipes/calgary_herald.recipe b/recipes/calgary_herald.recipe similarity index 100% rename from resources/recipes/calgary_herald.recipe rename to recipes/calgary_herald.recipe diff --git a/resources/recipes/canardpc.recipe b/recipes/canardpc.recipe similarity index 100% rename from resources/recipes/canardpc.recipe rename to recipes/canardpc.recipe diff --git a/resources/recipes/capes_n_babes.recipe b/recipes/capes_n_babes.recipe similarity index 100% rename from resources/recipes/capes_n_babes.recipe rename to recipes/capes_n_babes.recipe diff --git a/resources/recipes/capital.recipe b/recipes/capital.recipe similarity index 100% rename from resources/recipes/capital.recipe rename to recipes/capital.recipe diff --git a/resources/recipes/carta.recipe b/recipes/carta.recipe similarity index 100% rename from resources/recipes/carta.recipe rename to recipes/carta.recipe diff --git a/resources/recipes/catavencu.recipe b/recipes/catavencu.recipe similarity index 100% rename from resources/recipes/catavencu.recipe rename to recipes/catavencu.recipe diff --git a/resources/recipes/cbc_canada.recipe b/recipes/cbc_canada.recipe similarity index 100% rename from resources/recipes/cbc_canada.recipe rename to recipes/cbc_canada.recipe diff --git a/resources/recipes/cetnixploitation.recipe b/recipes/cetnixploitation.recipe similarity index 100% rename from resources/recipes/cetnixploitation.recipe rename to recipes/cetnixploitation.recipe diff --git a/resources/recipes/chicago_breaking_news.recipe b/recipes/chicago_breaking_news.recipe similarity index 100% rename from resources/recipes/chicago_breaking_news.recipe rename to recipes/chicago_breaking_news.recipe diff --git a/resources/recipes/chicago_tribune.recipe b/recipes/chicago_tribune.recipe similarity index 100% rename from resources/recipes/chicago_tribune.recipe rename to recipes/chicago_tribune.recipe diff --git a/resources/recipes/china_economic_net.recipe b/recipes/china_economic_net.recipe similarity index 100% rename from resources/recipes/china_economic_net.recipe rename to recipes/china_economic_net.recipe diff --git a/resources/recipes/china_press.recipe b/recipes/china_press.recipe similarity index 100% rename from resources/recipes/china_press.recipe rename to recipes/china_press.recipe diff --git a/resources/recipes/chinadaily.recipe b/recipes/chinadaily.recipe similarity index 100% rename from resources/recipes/chinadaily.recipe rename to recipes/chinadaily.recipe diff --git a/resources/recipes/chipro.recipe b/recipes/chipro.recipe similarity index 100% rename from resources/recipes/chipro.recipe rename to recipes/chipro.recipe diff --git a/resources/recipes/chouchoublog.recipe b/recipes/chouchoublog.recipe similarity index 100% rename from resources/recipes/chouchoublog.recipe rename to recipes/chouchoublog.recipe diff --git a/resources/recipes/chowk.recipe b/recipes/chowk.recipe similarity index 100% rename from resources/recipes/chowk.recipe rename to recipes/chowk.recipe diff --git a/resources/recipes/chr_mon.recipe b/recipes/chr_mon.recipe similarity index 67% rename from resources/recipes/chr_mon.recipe rename to recipes/chr_mon.recipe index 2b431ebd0b..6f41b95763 100644 --- a/resources/recipes/chr_mon.recipe +++ b/recipes/chr_mon.recipe @@ -8,13 +8,13 @@ __description__ = 'Providing context and clarity on national and international n '''csmonitor.com''' - import re from calibre.web.feeds.news import BasicNewsRecipe + class ChristianScienceMonitor(BasicNewsRecipe): - author = 'Kovid Goyal, Sujata Raman and Lorenzo Vigentini' + __author__ = 'Kovid Goyal' description = 'Providing context and clarity on national and international news, peoples and cultures' cover_url = 'http://www.csmonitor.com/extension/csm_base/design/csm_design/images/csmlogo_179x46.gif' @@ -34,6 +34,49 @@ class ChristianScienceMonitor(BasicNewsRecipe): remove_javascript = True no_stylesheets = True + def append_page(self, soup, appendtag, position): + nav = soup.find('div',attrs={'class':'navigation'}) + if nav: + pager = nav.findAll('a') + for part in pager: + if 'Next' in part: + nexturl = ('http://www.csmonitor.com' + + re.findall(r'href="(.*?)"', str(part))[0]) + soup2 = self.index_to_soup(nexturl) + texttag = soup2.find('div', + attrs={'class': re.compile('list-article-.*')}) + trash_c = soup2.findAll(attrs={'class': 'list-description'}) + trash_h = soup2.h1 + for tc in trash_c: tc.extract() + trash_h.extract() + + newpos = len(texttag.contents) + self.append_page(soup2, texttag, newpos) + texttag.extract() + appendtag.insert(position, texttag) + + def preprocess_html(self, soup): + PRINT_RE = re.compile(r'/layout/set/print/content/view/print/[0-9]*') + html = str(soup) + try: + print_found = PRINT_RE.findall(html) + except Exception: + pass + if print_found: + print_url = 'http://www.csmonitor.com' + print_found[0] + print_soup = self.index_to_soup(print_url) + else: + self.append_page(soup, soup.body, 3) + + trash_a = soup.findAll(attrs={'class': re.compile('navigation.*')}) + trash_b = soup.findAll(attrs={'style': re.compile('.*')}) + trash_d = soup.findAll(attrs={'class': 'sByline'}) + for ta in trash_a: ta.extract() + for tb in trash_b: tb.extract() + for td in trash_d: td.extract() + + print_soup = soup + return print_soup preprocess_regexps = [ (re.compile(i[0], re.IGNORECASE | re.DOTALL), i[1]) for i in [ @@ -43,7 +86,6 @@ class ChristianScienceMonitor(BasicNewsRecipe): (r'Full HTML version of this story which may include photos, graphics, and related links.*', lambda match : ''), ]] - extra_css = ''' h1{ color:#000000;font-family: Georgia,Times,"Times New Roman",serif; font-size: large} .sub{ color:#000000;font-family: Georgia,Times,"Times New Roman",serif; font-size: small;} @@ -56,10 +98,9 @@ class ChristianScienceMonitor(BasicNewsRecipe): #main{font-family:Arial,Tahoma,Verdana,Helvetica,sans-serif ; font-size: small; } #photo-details{ font-family:Arial,Helvetica,sans-serif ; color:#999999; font-size: x-small;} span.name{color:#205B87;font-family: Georgia,Times,"Times New Roman",serif; font-size: x-small} - p#dateline{color:#444444 ; font-family:Arial,Helvetica,sans-serif ; font-style:italic;} - ''' - feeds = [ - (u'Top Stories' , u'http://rss.csmonitor.com/feeds/top'), + p#dateline{color:#444444 ; font-family:Arial,Helvetica,sans-serif ; font-style:italic;} ''' + + feeds = [(u'Top Stories', u'http://rss.csmonitor.com/feeds/top'), (u'World' , u'http://rss.csmonitor.com/feeds/world'), (u'USA' , u'http://rss.csmonitor.com/feeds/usa'), (u'Commentary' , u'http://rss.csmonitor.com/feeds/commentary'), @@ -74,9 +115,7 @@ class ChristianScienceMonitor(BasicNewsRecipe): (u'Home Forum' , u'http://rss.csmonitor.com/feeds/homeforum') ] - keep_only_tags = [ - dict(name='div', attrs={'id':'mainColumn'}), - ] + keep_only_tags = [dict(name='div', attrs={'id':'mainColumn'}), ] remove_tags = [ dict(name='div', attrs={'id':['story-tools','videoPlayer','storyRelatedBottom','enlarge-photo','photo-paginate']}), @@ -86,7 +125,10 @@ class ChristianScienceMonitor(BasicNewsRecipe): 'hide', 'podBrdr']}), dict(name='ul', attrs={'class':[ 'centerliststories']}) , dict(name='form', attrs={'id':[ 'commentform']}) , + dict(name='div', attrs={'class': ['ui-comments']}) ] - remove_tags_after = [ dict(name='div', attrs={'class':[ 'ad csmAd']})] - + remove_tags_after = [ dict(name='div', attrs={'class':[ 'ad csmAd']}), + dict(name='div', attrs={'class': [re.compile('navigation.*')]}), + dict(name='div', attrs={'style': [re.compile('.*')]}) + ] diff --git a/resources/recipes/cicero.recipe b/recipes/cicero.recipe similarity index 100% rename from resources/recipes/cicero.recipe rename to recipes/cicero.recipe diff --git a/resources/recipes/cincinnati_enquirer.recipe b/recipes/cincinnati_enquirer.recipe similarity index 100% rename from resources/recipes/cincinnati_enquirer.recipe rename to recipes/cincinnati_enquirer.recipe diff --git a/resources/recipes/cinco_dias.recipe b/recipes/cinco_dias.recipe similarity index 100% rename from resources/recipes/cinco_dias.recipe rename to recipes/cinco_dias.recipe diff --git a/resources/recipes/cinebel_be.recipe b/recipes/cinebel_be.recipe similarity index 100% rename from resources/recipes/cinebel_be.recipe rename to recipes/cinebel_be.recipe diff --git a/resources/recipes/cio.recipe b/recipes/cio.recipe similarity index 100% rename from resources/recipes/cio.recipe rename to recipes/cio.recipe diff --git a/resources/recipes/cjr.recipe b/recipes/cjr.recipe similarity index 100% rename from resources/recipes/cjr.recipe rename to recipes/cjr.recipe diff --git a/resources/recipes/clarin.recipe b/recipes/clarin.recipe similarity index 100% rename from resources/recipes/clarin.recipe rename to recipes/clarin.recipe diff --git a/resources/recipes/clarion_ledger.recipe b/recipes/clarion_ledger.recipe similarity index 100% rename from resources/recipes/clarion_ledger.recipe rename to recipes/clarion_ledger.recipe diff --git a/resources/recipes/clic_rbs.recipe b/recipes/clic_rbs.recipe similarity index 100% rename from resources/recipes/clic_rbs.recipe rename to recipes/clic_rbs.recipe diff --git a/resources/recipes/climate_progress.recipe b/recipes/climate_progress.recipe similarity index 100% rename from resources/recipes/climate_progress.recipe rename to recipes/climate_progress.recipe diff --git a/resources/recipes/cm_journal.recipe b/recipes/cm_journal.recipe similarity index 100% rename from resources/recipes/cm_journal.recipe rename to recipes/cm_journal.recipe diff --git a/resources/recipes/cnd.recipe b/recipes/cnd.recipe similarity index 100% rename from resources/recipes/cnd.recipe rename to recipes/cnd.recipe diff --git a/resources/recipes/cnetjapan.recipe b/recipes/cnetjapan.recipe similarity index 100% rename from resources/recipes/cnetjapan.recipe rename to recipes/cnetjapan.recipe diff --git a/resources/recipes/cnetjapan_digital.recipe b/recipes/cnetjapan_digital.recipe similarity index 100% rename from resources/recipes/cnetjapan_digital.recipe rename to recipes/cnetjapan_digital.recipe diff --git a/resources/recipes/cnetjapan_release.recipe b/recipes/cnetjapan_release.recipe similarity index 100% rename from resources/recipes/cnetjapan_release.recipe rename to recipes/cnetjapan_release.recipe diff --git a/resources/recipes/cnetnews.recipe b/recipes/cnetnews.recipe similarity index 100% rename from resources/recipes/cnetnews.recipe rename to recipes/cnetnews.recipe diff --git a/resources/recipes/cnn.recipe b/recipes/cnn.recipe similarity index 100% rename from resources/recipes/cnn.recipe rename to recipes/cnn.recipe diff --git a/resources/recipes/coding_horror.recipe b/recipes/coding_horror.recipe similarity index 100% rename from resources/recipes/coding_horror.recipe rename to recipes/coding_horror.recipe diff --git a/resources/recipes/columbusdispatch.recipe b/recipes/columbusdispatch.recipe similarity index 100% rename from resources/recipes/columbusdispatch.recipe rename to recipes/columbusdispatch.recipe diff --git a/resources/recipes/comics_com.recipe b/recipes/comics_com.recipe similarity index 100% rename from resources/recipes/comics_com.recipe rename to recipes/comics_com.recipe diff --git a/resources/recipes/common_dreams.recipe b/recipes/common_dreams.recipe similarity index 100% rename from resources/recipes/common_dreams.recipe rename to recipes/common_dreams.recipe diff --git a/resources/recipes/computer_active.recipe b/recipes/computer_active.recipe similarity index 100% rename from resources/recipes/computer_active.recipe rename to recipes/computer_active.recipe diff --git a/resources/recipes/consumerist.recipe b/recipes/consumerist.recipe similarity index 100% rename from resources/recipes/consumerist.recipe rename to recipes/consumerist.recipe diff --git a/resources/recipes/corren2.recipe b/recipes/corren2.recipe similarity index 100% rename from resources/recipes/corren2.recipe rename to recipes/corren2.recipe diff --git a/resources/recipes/corriere_della_sera_en.recipe b/recipes/corriere_della_sera_en.recipe similarity index 100% rename from resources/recipes/corriere_della_sera_en.recipe rename to recipes/corriere_della_sera_en.recipe diff --git a/resources/recipes/corriere_della_sera_it.recipe b/recipes/corriere_della_sera_it.recipe similarity index 100% rename from resources/recipes/corriere_della_sera_it.recipe rename to recipes/corriere_della_sera_it.recipe diff --git a/resources/recipes/corriere_dello_sport.recipe b/recipes/corriere_dello_sport.recipe similarity index 100% rename from resources/recipes/corriere_dello_sport.recipe rename to recipes/corriere_dello_sport.recipe diff --git a/resources/recipes/cosmopolitan.recipe b/recipes/cosmopolitan.recipe similarity index 100% rename from resources/recipes/cosmopolitan.recipe rename to recipes/cosmopolitan.recipe diff --git a/resources/recipes/cotidianul.recipe b/recipes/cotidianul.recipe similarity index 100% rename from resources/recipes/cotidianul.recipe rename to recipes/cotidianul.recipe diff --git a/resources/recipes/courrier.recipe b/recipes/courrier.recipe similarity index 100% rename from resources/recipes/courrier.recipe rename to recipes/courrier.recipe diff --git a/resources/recipes/courrierinternational.recipe b/recipes/courrierinternational.recipe similarity index 100% rename from resources/recipes/courrierinternational.recipe rename to recipes/courrierinternational.recipe diff --git a/recipes/cracked_com.recipe b/recipes/cracked_com.recipe new file mode 100644 index 0000000000..49ed9d2279 --- /dev/null +++ b/recipes/cracked_com.recipe @@ -0,0 +1,83 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class Cracked(BasicNewsRecipe): + title = u'Cracked.com' + __author__ = u'Nudgenudge' + language = 'en' + description = 'America''s Only Humor and Video Site, since 1958' + publisher = 'Cracked' + category = 'comedy, lists' + oldest_article = 2 + delay = 10 + max_articles_per_feed = 2 + no_stylesheets = True + encoding = 'cp1252' + remove_javascript = True + use_embedded_content = False + INDEX = u'http://www.cracked.com' + extra_css = """ + .pageheader_type{font-size: x-large; font-weight: bold; color: #828D74} + .pageheader_title{font-size: xx-large; color: #394128} + .pageheader_byline{font-size: small; font-weight: bold; color: #394128} + .score_bg {display: inline; width: 100%; margin-bottom: 2em} + .score_column_1{ padding-left: 10px; font-size: small; width: 50%} + .score_column_2{ padding-left: 10px; font-size: small; width: 50%} + .score_column_3{ padding-left: 10px; font-size: small; width: 50%} + .score_header{font-size: large; color: #50544A} + .bodytext{display: block} + body{font-family: Helvetica,Arial,sans-serif} + """ + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + , 'linearize_tables' : True + } + + keep_only_tags = [ + dict(name='div', attrs={'class':['Column1']}) + ] + + feeds = [(u'Articles', u'http://feeds.feedburner.com/CrackedRSS')] + + def get_article_url(self, article): + return article.get('guid', None) + + def cleanup_page(self, soup): + for item in soup.findAll(style=True): + del item['style'] + for alink in soup.findAll('a'): + if alink.string is not None: + tstr = alink.string + alink.replaceWith(tstr) + for div_to_remove in soup.findAll('div', attrs={'id':['googlead_1','fb-like-article','comments_section']}): + div_to_remove.extract() + for div_to_remove in soup.findAll('div', attrs={'class':['share_buttons_col_1','GenericModule1']}): + div_to_remove.extract() + for div_to_remove in soup.findAll('div', attrs={'class':re.compile("prev_next")}): + div_to_remove.extract() + for ul_to_remove in soup.findAll('ul', attrs={'class':['Nav6']}): + ul_to_remove.extract() + for image in soup.findAll('img', attrs={'alt': 'article image'}): + image.extract() + + def append_page(self, soup, appendtag, position): + pager = soup.find('a',attrs={'class':'next_arrow_active'}) + if pager: + nexturl = self.INDEX + pager['href'] + soup2 = self.index_to_soup(nexturl) + texttag = soup2.find('div', attrs={'class':re.compile("userStyled")}) + newpos = len(texttag.contents) + self.append_page(soup2,texttag,newpos) + texttag.extract() + self.cleanup_page(appendtag) + appendtag.insert(position,texttag) + else: + self.cleanup_page(appendtag) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body, 3) + return self.adeify_images(soup) diff --git a/resources/recipes/craigslist.recipe b/recipes/craigslist.recipe similarity index 100% rename from resources/recipes/craigslist.recipe rename to recipes/craigslist.recipe diff --git a/resources/recipes/credit_slips.recipe b/recipes/credit_slips.recipe similarity index 100% rename from resources/recipes/credit_slips.recipe rename to recipes/credit_slips.recipe diff --git a/resources/recipes/criticadigital.recipe b/recipes/criticadigital.recipe similarity index 100% rename from resources/recipes/criticadigital.recipe rename to recipes/criticadigital.recipe diff --git a/resources/recipes/csid.recipe b/recipes/csid.recipe similarity index 100% rename from resources/recipes/csid.recipe rename to recipes/csid.recipe diff --git a/resources/recipes/cubadebate.recipe b/recipes/cubadebate.recipe similarity index 100% rename from resources/recipes/cubadebate.recipe rename to recipes/cubadebate.recipe diff --git a/resources/recipes/curierulnational.recipe b/recipes/curierulnational.recipe similarity index 100% rename from resources/recipes/curierulnational.recipe rename to recipes/curierulnational.recipe diff --git a/resources/recipes/cyberpresse.recipe b/recipes/cyberpresse.recipe similarity index 100% rename from resources/recipes/cyberpresse.recipe rename to recipes/cyberpresse.recipe diff --git a/resources/recipes/cynewslive.recipe b/recipes/cynewslive.recipe similarity index 100% rename from resources/recipes/cynewslive.recipe rename to recipes/cynewslive.recipe diff --git a/resources/recipes/cyprus_weekly.recipe b/recipes/cyprus_weekly.recipe similarity index 100% rename from resources/recipes/cyprus_weekly.recipe rename to recipes/cyprus_weekly.recipe diff --git a/resources/recipes/daily_mail.recipe b/recipes/daily_mail.recipe similarity index 100% rename from resources/recipes/daily_mail.recipe rename to recipes/daily_mail.recipe diff --git a/resources/recipes/daily_telegraph.recipe b/recipes/daily_telegraph.recipe similarity index 100% rename from resources/recipes/daily_telegraph.recipe rename to recipes/daily_telegraph.recipe diff --git a/resources/recipes/dailyreckoning.recipe b/recipes/dailyreckoning.recipe similarity index 100% rename from resources/recipes/dailyreckoning.recipe rename to recipes/dailyreckoning.recipe diff --git a/resources/recipes/dailytportal.recipe b/recipes/dailytportal.recipe similarity index 100% rename from resources/recipes/dailytportal.recipe rename to recipes/dailytportal.recipe diff --git a/resources/recipes/dallas.recipe b/recipes/dallas.recipe similarity index 100% rename from resources/recipes/dallas.recipe rename to recipes/dallas.recipe diff --git a/resources/recipes/danas.recipe b/recipes/danas.recipe similarity index 100% rename from resources/recipes/danas.recipe rename to recipes/danas.recipe diff --git a/resources/recipes/dani.recipe b/recipes/dani.recipe similarity index 100% rename from resources/recipes/dani.recipe rename to recipes/dani.recipe diff --git a/resources/recipes/darknet.recipe b/recipes/darknet.recipe similarity index 100% rename from resources/recipes/darknet.recipe rename to recipes/darknet.recipe diff --git a/resources/recipes/daum_net.recipe b/recipes/daum_net.recipe similarity index 100% rename from resources/recipes/daum_net.recipe rename to recipes/daum_net.recipe diff --git a/resources/recipes/dawn.recipe b/recipes/dawn.recipe similarity index 100% rename from resources/recipes/dawn.recipe rename to recipes/dawn.recipe diff --git a/resources/recipes/dbb.recipe b/recipes/dbb.recipe similarity index 100% rename from resources/recipes/dbb.recipe rename to recipes/dbb.recipe diff --git a/resources/recipes/de_standaard.recipe b/recipes/de_standaard.recipe similarity index 100% rename from resources/recipes/de_standaard.recipe rename to recipes/de_standaard.recipe diff --git a/resources/recipes/deadspin.recipe b/recipes/deadspin.recipe similarity index 100% rename from resources/recipes/deadspin.recipe rename to recipes/deadspin.recipe diff --git a/resources/recipes/degentenaar.recipe b/recipes/degentenaar.recipe similarity index 100% rename from resources/recipes/degentenaar.recipe rename to recipes/degentenaar.recipe diff --git a/resources/recipes/deia.recipe b/recipes/deia.recipe similarity index 100% rename from resources/recipes/deia.recipe rename to recipes/deia.recipe diff --git a/resources/recipes/demorgen_be.recipe b/recipes/demorgen_be.recipe similarity index 100% rename from resources/recipes/demorgen_be.recipe rename to recipes/demorgen_be.recipe diff --git a/resources/recipes/denver_post.recipe b/recipes/denver_post.recipe similarity index 100% rename from resources/recipes/denver_post.recipe rename to recipes/denver_post.recipe diff --git a/resources/recipes/der_standard.recipe b/recipes/der_standard.recipe similarity index 100% rename from resources/recipes/der_standard.recipe rename to recipes/der_standard.recipe diff --git a/resources/recipes/deredactie.recipe b/recipes/deredactie.recipe similarity index 100% rename from resources/recipes/deredactie.recipe rename to recipes/deredactie.recipe diff --git a/resources/recipes/descopera.recipe b/recipes/descopera.recipe similarity index 100% rename from resources/recipes/descopera.recipe rename to recipes/descopera.recipe diff --git a/resources/recipes/detroit_news.recipe b/recipes/detroit_news.recipe similarity index 100% rename from resources/recipes/detroit_news.recipe rename to recipes/detroit_news.recipe diff --git a/resources/recipes/deutsche_welle_bs.recipe b/recipes/deutsche_welle_bs.recipe similarity index 100% rename from resources/recipes/deutsche_welle_bs.recipe rename to recipes/deutsche_welle_bs.recipe diff --git a/resources/recipes/deutsche_welle_en.recipe b/recipes/deutsche_welle_en.recipe similarity index 100% rename from resources/recipes/deutsche_welle_en.recipe rename to recipes/deutsche_welle_en.recipe diff --git a/resources/recipes/deutsche_welle_es.recipe b/recipes/deutsche_welle_es.recipe similarity index 100% rename from resources/recipes/deutsche_welle_es.recipe rename to recipes/deutsche_welle_es.recipe diff --git a/resources/recipes/deutsche_welle_hr.recipe b/recipes/deutsche_welle_hr.recipe similarity index 100% rename from resources/recipes/deutsche_welle_hr.recipe rename to recipes/deutsche_welle_hr.recipe diff --git a/resources/recipes/deutsche_welle_pt.recipe b/recipes/deutsche_welle_pt.recipe similarity index 100% rename from resources/recipes/deutsche_welle_pt.recipe rename to recipes/deutsche_welle_pt.recipe diff --git a/resources/recipes/deutsche_welle_sr.recipe b/recipes/deutsche_welle_sr.recipe similarity index 100% rename from resources/recipes/deutsche_welle_sr.recipe rename to recipes/deutsche_welle_sr.recipe diff --git a/resources/recipes/dhnet_be.recipe b/recipes/dhnet_be.recipe similarity index 100% rename from resources/recipes/dhnet_be.recipe rename to recipes/dhnet_be.recipe diff --git a/resources/recipes/di.recipe b/recipes/di.recipe similarity index 100% rename from resources/recipes/di.recipe rename to recipes/di.recipe diff --git a/resources/recipes/diagonales.recipe b/recipes/diagonales.recipe similarity index 100% rename from resources/recipes/diagonales.recipe rename to recipes/diagonales.recipe diff --git a/resources/recipes/diario_cordoba.recipe b/recipes/diario_cordoba.recipe similarity index 100% rename from resources/recipes/diario_cordoba.recipe rename to recipes/diario_cordoba.recipe diff --git a/resources/recipes/diario_sport.recipe b/recipes/diario_sport.recipe similarity index 100% rename from resources/recipes/diario_sport.recipe rename to recipes/diario_sport.recipe diff --git a/resources/recipes/diariovasco.recipe b/recipes/diariovasco.recipe similarity index 100% rename from resources/recipes/diariovasco.recipe rename to recipes/diariovasco.recipe diff --git a/resources/recipes/diepresse.recipe b/recipes/diepresse.recipe similarity index 100% rename from resources/recipes/diepresse.recipe rename to recipes/diepresse.recipe diff --git a/resources/recipes/digital_arts.recipe b/recipes/digital_arts.recipe similarity index 100% rename from resources/recipes/digital_arts.recipe rename to recipes/digital_arts.recipe diff --git a/resources/recipes/digitaljournal.recipe b/recipes/digitaljournal.recipe similarity index 100% rename from resources/recipes/digitaljournal.recipe rename to recipes/digitaljournal.recipe diff --git a/resources/recipes/digitalspy_uk.recipe b/recipes/digitalspy_uk.recipe similarity index 100% rename from resources/recipes/digitalspy_uk.recipe rename to recipes/digitalspy_uk.recipe diff --git a/resources/recipes/dilbert.recipe b/recipes/dilbert.recipe similarity index 100% rename from resources/recipes/dilbert.recipe rename to recipes/dilbert.recipe diff --git a/resources/recipes/discover_magazine.recipe b/recipes/discover_magazine.recipe similarity index 100% rename from resources/recipes/discover_magazine.recipe rename to recipes/discover_magazine.recipe diff --git a/resources/recipes/dn_se.recipe b/recipes/dn_se.recipe similarity index 100% rename from resources/recipes/dn_se.recipe rename to recipes/dn_se.recipe diff --git a/resources/recipes/dna.recipe b/recipes/dna.recipe similarity index 100% rename from resources/recipes/dna.recipe rename to recipes/dna.recipe diff --git a/resources/recipes/dnevni_avaz.recipe b/recipes/dnevni_avaz.recipe similarity index 100% rename from resources/recipes/dnevni_avaz.recipe rename to recipes/dnevni_avaz.recipe diff --git a/resources/recipes/dnevnik.recipe b/recipes/dnevnik.recipe similarity index 100% rename from resources/recipes/dnevnik.recipe rename to recipes/dnevnik.recipe diff --git a/resources/recipes/dnevnik_cro.recipe b/recipes/dnevnik_cro.recipe similarity index 100% rename from resources/recipes/dnevnik_cro.recipe rename to recipes/dnevnik_cro.recipe diff --git a/resources/recipes/dominion.recipe b/recipes/dominion.recipe similarity index 100% rename from resources/recipes/dominion.recipe rename to recipes/dominion.recipe diff --git a/resources/recipes/dosisdiarias.recipe b/recipes/dosisdiarias.recipe similarity index 100% rename from resources/recipes/dosisdiarias.recipe rename to recipes/dosisdiarias.recipe diff --git a/resources/recipes/dotpod.recipe b/recipes/dotpod.recipe similarity index 100% rename from resources/recipes/dotpod.recipe rename to recipes/dotpod.recipe diff --git a/resources/recipes/dr_dk.recipe b/recipes/dr_dk.recipe similarity index 100% rename from resources/recipes/dr_dk.recipe rename to recipes/dr_dk.recipe diff --git a/resources/recipes/drivelry.recipe b/recipes/drivelry.recipe similarity index 100% rename from resources/recipes/drivelry.recipe rename to recipes/drivelry.recipe diff --git a/resources/recipes/e_novine.recipe b/recipes/e_novine.recipe similarity index 100% rename from resources/recipes/e_novine.recipe rename to recipes/e_novine.recipe diff --git a/resources/recipes/eclicto.recipe b/recipes/eclicto.recipe similarity index 100% rename from resources/recipes/eclicto.recipe rename to recipes/eclicto.recipe diff --git a/resources/recipes/ecogeek.recipe b/recipes/ecogeek.recipe similarity index 100% rename from resources/recipes/ecogeek.recipe rename to recipes/ecogeek.recipe diff --git a/resources/recipes/economist.recipe b/recipes/economist.recipe similarity index 100% rename from resources/recipes/economist.recipe rename to recipes/economist.recipe diff --git a/resources/recipes/economist_free.recipe b/recipes/economist_free.recipe similarity index 100% rename from resources/recipes/economist_free.recipe rename to recipes/economist_free.recipe diff --git a/resources/recipes/ecotrend.recipe b/recipes/ecotrend.recipe similarity index 100% rename from resources/recipes/ecotrend.recipe rename to recipes/ecotrend.recipe diff --git a/resources/recipes/ecuisine.recipe b/recipes/ecuisine.recipe similarity index 100% rename from resources/recipes/ecuisine.recipe rename to recipes/ecuisine.recipe diff --git a/resources/recipes/editor_and_publisher.recipe b/recipes/editor_and_publisher.recipe similarity index 100% rename from resources/recipes/editor_and_publisher.recipe rename to recipes/editor_and_publisher.recipe diff --git a/resources/recipes/edmonton_journal.recipe b/recipes/edmonton_journal.recipe similarity index 100% rename from resources/recipes/edmonton_journal.recipe rename to recipes/edmonton_journal.recipe diff --git a/resources/recipes/egirl.recipe b/recipes/egirl.recipe similarity index 100% rename from resources/recipes/egirl.recipe rename to recipes/egirl.recipe diff --git a/resources/recipes/ekot.recipe b/recipes/ekot.recipe similarity index 100% rename from resources/recipes/ekot.recipe rename to recipes/ekot.recipe diff --git a/resources/recipes/eksiazki.recipe b/recipes/eksiazki.recipe similarity index 100% rename from resources/recipes/eksiazki.recipe rename to recipes/eksiazki.recipe diff --git a/resources/recipes/el_correo.recipe b/recipes/el_correo.recipe similarity index 100% rename from resources/recipes/el_correo.recipe rename to recipes/el_correo.recipe diff --git a/resources/recipes/el_cultural.recipe b/recipes/el_cultural.recipe similarity index 100% rename from resources/recipes/el_cultural.recipe rename to recipes/el_cultural.recipe diff --git a/resources/recipes/el_faro.recipe b/recipes/el_faro.recipe similarity index 100% rename from resources/recipes/el_faro.recipe rename to recipes/el_faro.recipe diff --git a/resources/recipes/el_mercurio_chile.recipe b/recipes/el_mercurio_chile.recipe similarity index 100% rename from resources/recipes/el_mercurio_chile.recipe rename to recipes/el_mercurio_chile.recipe diff --git a/resources/recipes/el_observador.recipe b/recipes/el_observador.recipe similarity index 100% rename from resources/recipes/el_observador.recipe rename to recipes/el_observador.recipe diff --git a/resources/recipes/el_pais.recipe b/recipes/el_pais.recipe similarity index 100% rename from resources/recipes/el_pais.recipe rename to recipes/el_pais.recipe diff --git a/resources/recipes/el_pais_babelia.recipe b/recipes/el_pais_babelia.recipe similarity index 100% rename from resources/recipes/el_pais_babelia.recipe rename to recipes/el_pais_babelia.recipe diff --git a/resources/recipes/el_pais_uy.recipe b/recipes/el_pais_uy.recipe similarity index 100% rename from resources/recipes/el_pais_uy.recipe rename to recipes/el_pais_uy.recipe diff --git a/resources/recipes/el_periodico.recipe b/recipes/el_periodico.recipe similarity index 100% rename from resources/recipes/el_periodico.recipe rename to recipes/el_periodico.recipe diff --git a/resources/recipes/el_publico.recipe b/recipes/el_publico.recipe similarity index 100% rename from resources/recipes/el_publico.recipe rename to recipes/el_publico.recipe diff --git a/resources/recipes/el_universal.recipe b/recipes/el_universal.recipe similarity index 100% rename from resources/recipes/el_universal.recipe rename to recipes/el_universal.recipe diff --git a/resources/recipes/elargentino.recipe b/recipes/elargentino.recipe similarity index 100% rename from resources/recipes/elargentino.recipe rename to recipes/elargentino.recipe diff --git a/resources/recipes/elcomercio.recipe b/recipes/elcomercio.recipe similarity index 100% rename from resources/recipes/elcomercio.recipe rename to recipes/elcomercio.recipe diff --git a/resources/recipes/elcronista.recipe b/recipes/elcronista.recipe similarity index 100% rename from resources/recipes/elcronista.recipe rename to recipes/elcronista.recipe diff --git a/resources/recipes/ele.recipe b/recipes/ele.recipe similarity index 100% rename from resources/recipes/ele.recipe rename to recipes/ele.recipe diff --git a/resources/recipes/elmundo.recipe b/recipes/elmundo.recipe similarity index 100% rename from resources/recipes/elmundo.recipe rename to recipes/elmundo.recipe diff --git a/resources/recipes/elpais_impreso.recipe b/recipes/elpais_impreso.recipe similarity index 100% rename from resources/recipes/elpais_impreso.recipe rename to recipes/elpais_impreso.recipe diff --git a/resources/recipes/elpais_semanal.recipe b/recipes/elpais_semanal.recipe similarity index 100% rename from resources/recipes/elpais_semanal.recipe rename to recipes/elpais_semanal.recipe diff --git a/resources/recipes/elperiodico_catalan.recipe b/recipes/elperiodico_catalan.recipe similarity index 100% rename from resources/recipes/elperiodico_catalan.recipe rename to recipes/elperiodico_catalan.recipe diff --git a/resources/recipes/elperiodico_spanish.recipe b/recipes/elperiodico_spanish.recipe similarity index 100% rename from resources/recipes/elperiodico_spanish.recipe rename to recipes/elperiodico_spanish.recipe diff --git a/resources/recipes/elsevier.recipe b/recipes/elsevier.recipe similarity index 100% rename from resources/recipes/elsevier.recipe rename to recipes/elsevier.recipe diff --git a/resources/recipes/eltiempo_hn.recipe b/recipes/eltiempo_hn.recipe similarity index 100% rename from resources/recipes/eltiempo_hn.recipe rename to recipes/eltiempo_hn.recipe diff --git a/resources/recipes/eluniversal_ve.recipe b/recipes/eluniversal_ve.recipe similarity index 100% rename from resources/recipes/eluniversal_ve.recipe rename to recipes/eluniversal_ve.recipe diff --git a/resources/recipes/eluniversalimpresa.recipe b/recipes/eluniversalimpresa.recipe similarity index 100% rename from resources/recipes/eluniversalimpresa.recipe rename to recipes/eluniversalimpresa.recipe diff --git a/resources/recipes/eluniverso_ec.recipe b/recipes/eluniverso_ec.recipe similarity index 100% rename from resources/recipes/eluniverso_ec.recipe rename to recipes/eluniverso_ec.recipe diff --git a/resources/recipes/emg_en.recipe b/recipes/emg_en.recipe similarity index 100% rename from resources/recipes/emg_en.recipe rename to recipes/emg_en.recipe diff --git a/resources/recipes/emg_rs.recipe b/recipes/emg_rs.recipe similarity index 100% rename from resources/recipes/emg_rs.recipe rename to recipes/emg_rs.recipe diff --git a/resources/recipes/endgadget.recipe b/recipes/endgadget.recipe similarity index 100% rename from resources/recipes/endgadget.recipe rename to recipes/endgadget.recipe diff --git a/resources/recipes/endgadget_ja.recipe b/recipes/endgadget_ja.recipe similarity index 100% rename from resources/recipes/endgadget_ja.recipe rename to recipes/endgadget_ja.recipe diff --git a/resources/recipes/entrepeneur.recipe b/recipes/entrepeneur.recipe similarity index 100% rename from resources/recipes/entrepeneur.recipe rename to recipes/entrepeneur.recipe diff --git a/resources/recipes/epicurious.recipe b/recipes/epicurious.recipe similarity index 100% rename from resources/recipes/epicurious.recipe rename to recipes/epicurious.recipe diff --git a/resources/recipes/epl_talk.recipe b/recipes/epl_talk.recipe similarity index 100% rename from resources/recipes/epl_talk.recipe rename to recipes/epl_talk.recipe diff --git a/resources/recipes/esenja.recipe b/recipes/esenja.recipe similarity index 100% rename from resources/recipes/esenja.recipe rename to recipes/esenja.recipe diff --git a/resources/recipes/espn.recipe b/recipes/espn.recipe similarity index 100% rename from resources/recipes/espn.recipe rename to recipes/espn.recipe diff --git a/resources/recipes/esquire.recipe b/recipes/esquire.recipe similarity index 100% rename from resources/recipes/esquire.recipe rename to recipes/esquire.recipe diff --git a/recipes/estadao.recipe b/recipes/estadao.recipe new file mode 100644 index 0000000000..5b6303ba21 --- /dev/null +++ b/recipes/estadao.recipe @@ -0,0 +1,129 @@ +from calibre.web.feeds.news import BasicNewsRecipe +from datetime import datetime, timedelta +from calibre.ebooks.BeautifulSoup import Tag,BeautifulSoup +from calibre.utils.magick import Image, PixelWand +from urllib2 import Request, urlopen, URLError + +class Estadao(BasicNewsRecipe): + THUMBALIZR_API = '' # ---->Get your at http://www.thumbalizr.com/ and put here + LANGUAGE = 'pt_br' + language = 'pt' + LANGHTM = 'pt-br' + ENCODING = 'utf' + ENCHTM = 'utf-8' + directionhtm = 'ltr' + requires_version = (0,7,47) + news = True + + title = u'Estad\xe3o' + __author__ = 'Euler Alves' + description = u'Brazilian news from Estad\xe3o' + publisher = u'Estad\xe3o' + category = 'news, rss' + + oldest_article = 4 + max_articles_per_feed = 100 + summary_length = 1000 + + remove_javascript = True + no_stylesheets = True + use_embedded_content = False + remove_empty_feeds = True + timefmt = ' [%d %b %Y (%a)]' + + hoje = datetime.now()-timedelta(days=2) + pubdate = hoje.strftime('%a, %d %b') + if hoje.hour<10: + hoje = hoje-timedelta(days=1) + CAPA = 'http://www.estadao.com.br/estadaodehoje/'+hoje.strftime('%Y%m%d')+'/img/capadodia.jpg' + SCREENSHOT = 'http://estadao.com.br/' + cover_margins = (0,0,'white') + masthead_url = 'http://www.estadao.com.br/estadao/novo/img/logo.png' + + keep_only_tags = [dict(name='div', attrs={'class':['bb-md-noticia','corpo']})] + remove_tags = [ + dict(name='div', + attrs={'id':[ + 'bb-md-noticia-tabs' + ]}) + ,dict(name='div', + attrs={'class':[ + 'tags' + ,'discussion' + ,'bb-gg adsense_container' + ]}) + + ,dict(name='a') + ,dict(name='iframe') + ,dict(name='link') + ,dict(name='script') + ] + + + feeds = [ + (u'\xDAltimas Not\xEDcias', u'http://www.estadao.com.br/rss/ultimas.xml') + ,(u'Manchetes', u'http://www.estadao.com.br/rss/manchetes.xml') + ,(u'Brasil', u'http://www.estadao.com.br/rss/brasil.xml') + ,(u'Internacional', u'http://www.estadao.com.br/rss/internacional.xml') + ,(u'Cinema', u'http://blogs.estadao.com.br/cinema/feed/') + ,(u'Planeta', u'http://www.estadao.com.br/rss/planeta.xml') + ,(u'Ci\xEAncia', u'http://www.estadao.com.br/rss/ciencia.xml') + ,(u'Sa\xFAde', u'http://www.estadao.com.br/rss/saude.xml') + ,(u'Pol\xEDtica', u'http://www.estadao.com.br/rss/politica.xml') + ] + + conversion_options = { + 'title' : title + ,'comments' : description + ,'publisher' : publisher + ,'tags' : category + ,'language' : LANGUAGE + ,'linearize_tables': True + } + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + if not soup.find(attrs={'http-equiv':'Content-Language'}): + meta0 = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.LANGHTM)]) + soup.head.insert(0,meta0) + if not soup.find(attrs={'http-equiv':'Content-Type'}): + meta1 = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset="+self.ENCHTM)]) + soup.head.insert(0,meta1) + return soup + + def postprocess_html(self, soup, first): + #process all the images. assumes that the new html has the correct path + for tag in soup.findAll(lambda tag: tag.name.lower()=='img' and tag.has_key('src')): + iurl = tag['src'] + img = Image() + img.open(iurl) + width, height = img.size + print 'img is: ', iurl, 'width is: ', width, 'height is: ', height + if img < 0: + raise RuntimeError('Out of memory') + pw = PixelWand() + if( width > height and width > 590) : + print 'Rotate image' + img.rotate(pw, -90) + img.save(iurl) + return soup + + def get_cover_url(self): + if self.THUMBALIZR_API: + cover_url = self.CAPA + pedido = Request(self.CAPA) + pedido.add_header('User-agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; '+self.LANGHTM+'; userid='+self.THUMBALIZR_API+') Calibre/0.8.47 (like Gecko)') + pedido.add_header('Accept-Charset',self.ENCHTM) + pedido.add_header('Referer',self.SCREENSHOT) + try: + resposta = urlopen(pedido) + soup = BeautifulSoup(resposta) + cover_item = soup.find('body') + if cover_item: + cover_url='http://api.thumbalizr.com/?api_key='+self.THUMBALIZR_API+'&url='+self.SCREENSHOT+'&width=600&quality=90' + return cover_url + except URLError: + cover_url='http://api.thumbalizr.com/?api_key='+self.THUMBALIZR_API+'&url='+self.SCREENSHOT+'&width=600&quality=90' + return cover_url + diff --git a/resources/recipes/eu_commission.recipe b/recipes/eu_commission.recipe similarity index 100% rename from resources/recipes/eu_commission.recipe rename to recipes/eu_commission.recipe diff --git a/resources/recipes/europa_press.recipe b/recipes/europa_press.recipe similarity index 100% rename from resources/recipes/europa_press.recipe rename to recipes/europa_press.recipe diff --git a/resources/recipes/europasur.recipe b/recipes/europasur.recipe similarity index 100% rename from resources/recipes/europasur.recipe rename to recipes/europasur.recipe diff --git a/resources/recipes/european_voice.recipe b/recipes/european_voice.recipe similarity index 100% rename from resources/recipes/european_voice.recipe rename to recipes/european_voice.recipe diff --git a/recipes/evangelizo.recipe b/recipes/evangelizo.recipe new file mode 100644 index 0000000000..81ac74bc25 --- /dev/null +++ b/recipes/evangelizo.recipe @@ -0,0 +1,21 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class Evangelizo(BasicNewsRecipe): + title = 'Evangelizo.org' + oldest_article = 2 + max_articles_per_feed = 30 + language = 'de' + __author__ = 'Bobus' + feeds = [ + ('EvangleliumTagfuerTag', 'http://www.evangeliumtagfuertag.org/rss/evangelizo_rss-de.xml'), + ] + use_embedded_content = True + preprocess_regexps = [ + (re.compile(r'<font size="-2">([(][0-9]*[)])</font>'), r'\g<1>'), + (re.compile(r'([\.!]\n)'), r'\g<1>
'), + ] + + def populate_article_metadata(self, article, soup, first): + article.title = re.sub(r'([(][0-9]*[)])', r'\g<1>', article.title) + return diff --git a/resources/recipes/everett_herald.recipe b/recipes/everett_herald.recipe similarity index 100% rename from resources/recipes/everett_herald.recipe rename to recipes/everett_herald.recipe diff --git a/resources/recipes/evz.ro.recipe b/recipes/evz.ro.recipe similarity index 100% rename from resources/recipes/evz.ro.recipe rename to recipes/evz.ro.recipe diff --git a/resources/recipes/exiled.recipe b/recipes/exiled.recipe similarity index 100% rename from resources/recipes/exiled.recipe rename to recipes/exiled.recipe diff --git a/resources/recipes/expansion_spanish.recipe b/recipes/expansion_spanish.recipe similarity index 100% rename from resources/recipes/expansion_spanish.recipe rename to recipes/expansion_spanish.recipe diff --git a/resources/recipes/explosm.recipe b/recipes/explosm.recipe similarity index 100% rename from resources/recipes/explosm.recipe rename to recipes/explosm.recipe diff --git a/resources/recipes/factcheck.recipe b/recipes/factcheck.recipe similarity index 100% rename from resources/recipes/factcheck.recipe rename to recipes/factcheck.recipe diff --git a/resources/recipes/fan_graphs.recipe b/recipes/fan_graphs.recipe similarity index 100% rename from resources/recipes/fan_graphs.recipe rename to recipes/fan_graphs.recipe diff --git a/resources/recipes/fastcompany.recipe b/recipes/fastcompany.recipe similarity index 100% rename from resources/recipes/fastcompany.recipe rename to recipes/fastcompany.recipe diff --git a/resources/recipes/faznet.recipe b/recipes/faznet.recipe similarity index 100% rename from resources/recipes/faznet.recipe rename to recipes/faznet.recipe diff --git a/resources/recipes/fe_india.recipe b/recipes/fe_india.recipe similarity index 100% rename from resources/recipes/fe_india.recipe rename to recipes/fe_india.recipe diff --git a/resources/recipes/felicia.recipe b/recipes/felicia.recipe similarity index 100% rename from resources/recipes/felicia.recipe rename to recipes/felicia.recipe diff --git a/resources/recipes/fhmro.recipe b/recipes/fhmro.recipe similarity index 100% rename from resources/recipes/fhmro.recipe rename to recipes/fhmro.recipe diff --git a/resources/recipes/financial_times.recipe b/recipes/financial_times.recipe similarity index 100% rename from resources/recipes/financial_times.recipe rename to recipes/financial_times.recipe diff --git a/resources/recipes/financial_times_uk.recipe b/recipes/financial_times_uk.recipe similarity index 100% rename from resources/recipes/financial_times_uk.recipe rename to recipes/financial_times_uk.recipe diff --git a/resources/recipes/financiarul.recipe b/recipes/financiarul.recipe similarity index 100% rename from resources/recipes/financiarul.recipe rename to recipes/financiarul.recipe diff --git a/recipes/financieele_dagblad.recipe b/recipes/financieele_dagblad.recipe new file mode 100644 index 0000000000..09327ae83a --- /dev/null +++ b/recipes/financieele_dagblad.recipe @@ -0,0 +1,29 @@ + +from calibre.web.feeds.news import BasicNewsRecipe + +class fd(BasicNewsRecipe): + title = u'Het Financieele Dagblad' + __author__ = 'marvin_2' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + cover_url = 'http://www.fd.nl/static/gfx/logo-fd-164x78.gif' + language = 'nl' + + keep_only_tags = (dict(name = 'div', attrs = {'class': ['headlinearticle']})) + remove_tags = [dict(name='span' , attrs={'class':['opties']})] + + feeds = [ + (u'Overzicht',u'http://www.fd.nl/nieuws/overzicht/?view=RSS&profiel=OPENBAAR') + + + ] + extra_css = ''' + h1 {font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:x-large;} + p{font-family:Arial,Helvetica,sans-serif;} + strong{font-weight:bold; margin-right:5pt;margin-top:20pt;} + .datum_ie {font-style:italic;font-size:small;} + img {align:left;} + ''' + + diff --git a/resources/recipes/fleshbot.recipe b/recipes/fleshbot.recipe similarity index 100% rename from resources/recipes/fleshbot.recipe rename to recipes/fleshbot.recipe diff --git a/resources/recipes/flickr.recipe b/recipes/flickr.recipe similarity index 100% rename from resources/recipes/flickr.recipe rename to recipes/flickr.recipe diff --git a/resources/recipes/flickr_es.recipe b/recipes/flickr_es.recipe similarity index 100% rename from resources/recipes/flickr_es.recipe rename to recipes/flickr_es.recipe diff --git a/resources/recipes/fokkeensukke.recipe b/recipes/fokkeensukke.recipe similarity index 100% rename from resources/recipes/fokkeensukke.recipe rename to recipes/fokkeensukke.recipe diff --git a/recipes/folhadesaopaulo.recipe b/recipes/folhadesaopaulo.recipe new file mode 100644 index 0000000000..028513ad3a --- /dev/null +++ b/recipes/folhadesaopaulo.recipe @@ -0,0 +1,151 @@ +from calibre.web.feeds.news import BasicNewsRecipe +from datetime import datetime, timedelta +from calibre.ebooks.BeautifulSoup import Tag,BeautifulSoup +from calibre.utils.magick import Image, PixelWand +from urllib2 import Request, urlopen, URLError + +class FolhaOnline(BasicNewsRecipe): + THUMBALIZR_API = '' # ---->Get your at http://www.thumbalizr.com/ and put here + LANGUAGE = 'pt_br' + language = 'pt' + LANGHTM = 'pt-br' + ENCODING = 'cp1252' + ENCHTM = 'iso-8859-1' + directionhtm = 'ltr' + requires_version = (0,7,47) + news = True + + title = u'Folha de S\xE3o Paulo' + __author__ = 'Euler Alves' + description = u'Brazilian news from Folha de S\xE3o Paulo' + publisher = u'Folha de S\xE3o Paulo' + category = 'news, rss' + + oldest_article = 4 + max_articles_per_feed = 100 + summary_length = 1000 + + remove_javascript = True + no_stylesheets = True + use_embedded_content = False + remove_empty_feeds = True + timefmt = ' [%d %b %Y (%a)]' + + html2lrf_options = [ + '--comment', description + ,'--category', category + ,'--publisher', publisher + ] + + html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' + + hoje = datetime.now() + pubdate = hoje.strftime('%a, %d %b') + if hoje.hour<6: + hoje = hoje-timedelta(days=1) + CAPA = 'http://www1.folha.uol.com.br/fsp/images/cp'+hoje.strftime('%d%m%Y')+'.jpg' + SCREENSHOT = 'http://www1.folha.uol.com.br/' + cover_margins = (0,0,'white') + masthead_url = 'http://f.i.uol.com.br/fsp/furniture/images/lgo-fsp-430x50-ffffff.gif' + + keep_only_tags = [dict(name='div', attrs={'id':'articleNew'})] + remove_tags = [ + 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') + ,dict(name='script') + ] + + 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'Ci\xEAncia', u'http://feeds.folha.uol.com.br/ciencia/rss091.xml') + ,(u'Poder', u'http://feeds.folha.uol.com.br/poder/rss091.xml') + ,(u'Equil\xEDbrio e Sa\xFAde', u'http://feeds.folha.uol.com.br/equilibrioesaude/rss091.xml') + ,(u'Turismo', u'http://feeds.folha.uol.com.br/folha/turismo/rss091.xml') + ,(u'Mundo', u'http://feeds.folha.uol.com.br/mundo/rss091.xml') + ,(u'Pelo Mundo', u'http://feeds.folha.uol.com.br/pelomundo.folha.rssblog.uol.com.br/') + ,(u'Circuito integrado', u'http://feeds.folha.uol.com.br/circuitointegrado.folha.rssblog.uol.com.br/') + ,(u'Blog do Fred', u'http://feeds.folha.uol.com.br/blogdofred.folha.rssblog.uol.com.br/') + ,(u'Maria In\xEAs Dolci', u'http://feeds.folha.uol.com.br/mariainesdolci.folha.blog.uol.com.br/') + ,(u'Eduardo Ohata', u'http://feeds.folha.uol.com.br/folha/pensata/eduardoohata/rss091.xml') + ,(u'Kennedy Alencar', u'http://feeds.folha.uol.com.br/folha/pensata/kennedyalencar/rss091.xml') + ,(u'Eliane Catanh\xEAde', u'http://feeds.folha.uol.com.br/folha/pensata/elianecantanhede/rss091.xml') + ,(u'Fernado Canzian', u'http://feeds.folha.uol.com.br/folha/pensata/fernandocanzian/rss091.xml') + ,(u'Gilberto Dimenstein', u'http://feeds.folha.uol.com.br/folha/pensata/gilbertodimenstein/rss091.xml') + ,(u'H\xE9lio Schwartsman', u'http://feeds.folha.uol.com.br/folha/pensata/helioschwartsman/rss091.xml') + ,(u'Jo\xE3o Pereira Coutinho', u'http://http://feeds.folha.uol.com.br/folha/pensata/joaopereiracoutinho/rss091.xml') + ,(u'Luiz Caversan', u'http://http://feeds.folha.uol.com.br/folha/pensata/luizcaversan/rss091.xml') + ,(u'S\xE9rgio Malbergier', u'http://http://feeds.folha.uol.com.br/folha/pensata/sergiomalbergier/rss091.xml') + ,(u'Valdo Cruz', u'http://http://feeds.folha.uol.com.br/folha/pensata/valdocruz/rss091.xml') + ] + + + conversion_options = { + 'title' : title + ,'comments' : description + ,'publisher' : publisher + ,'tags' : category + ,'language' : LANGUAGE + ,'linearize_tables': True + } + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + if not soup.find(attrs={'http-equiv':'Content-Language'}): + meta0 = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.LANGHTM)]) + soup.head.insert(0,meta0) + if not soup.find(attrs={'http-equiv':'Content-Type'}): + meta1 = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset="+self.ENCHTM)]) + soup.head.insert(0,meta1) + return soup + + def postprocess_html(self, soup, first): + #process all the images. assumes that the new html has the correct path + for tag in soup.findAll(lambda tag: tag.name.lower()=='img' and tag.has_key('src')): + iurl = tag['src'] + img = Image() + img.open(iurl) + width, height = img.size + print 'img is: ', iurl, 'width is: ', width, 'height is: ', height + if img < 0: + raise RuntimeError('Out of memory') + pw = PixelWand() + if( width > height and width > 590) : + print 'Rotate image' + img.rotate(pw, -90) + img.save(iurl) + return soup + + def get_cover_url(self): + cover_url = self.CAPA + pedido = Request(self.CAPA) + pedido.add_header('User-agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; '+self.LANGHTM+'; userid='+self.THUMBALIZR_API+') Calibre/0.8.47 (like Gecko)') + pedido.add_header('Accept-Charset',self.ENCHTM) + pedido.add_header('Referer',self.SCREENSHOT) + try: + resposta = urlopen(pedido) + soup = BeautifulSoup(resposta) + cover_item = soup.find('body') + if cover_item: + cover_url='http://api.thumbalizr.com/?api_key='+self.THUMBALIZR_API+'&url='+self.SCREENSHOT+'&width=600&quality=90' + return cover_url + except URLError: + cover_url='http://api.thumbalizr.com/?api_key='+self.THUMBALIZR_API+'&url='+self.SCREENSHOT+'&width=600&quality=90' + return cover_url diff --git a/resources/recipes/forbes.recipe b/recipes/forbes.recipe similarity index 100% rename from resources/recipes/forbes.recipe rename to recipes/forbes.recipe diff --git a/resources/recipes/forbes_india.recipe b/recipes/forbes_india.recipe similarity index 100% rename from resources/recipes/forbes_india.recipe rename to recipes/forbes_india.recipe diff --git a/resources/recipes/foreign_policy.recipe b/recipes/foreign_policy.recipe similarity index 100% rename from resources/recipes/foreign_policy.recipe rename to recipes/foreign_policy.recipe diff --git a/resources/recipes/foreignaffairs.recipe b/recipes/foreignaffairs.recipe similarity index 100% rename from resources/recipes/foreignaffairs.recipe rename to recipes/foreignaffairs.recipe diff --git a/resources/recipes/foxnews.recipe b/recipes/foxnews.recipe similarity index 100% rename from resources/recipes/foxnews.recipe rename to recipes/foxnews.recipe diff --git a/resources/recipes/fr_online.recipe b/recipes/fr_online.recipe similarity index 100% rename from resources/recipes/fr_online.recipe rename to recipes/fr_online.recipe diff --git a/resources/recipes/frazpc.recipe b/recipes/frazpc.recipe similarity index 100% rename from resources/recipes/frazpc.recipe rename to recipes/frazpc.recipe diff --git a/resources/recipes/freakonomics.recipe b/recipes/freakonomics.recipe similarity index 100% rename from resources/recipes/freakonomics.recipe rename to recipes/freakonomics.recipe diff --git a/resources/recipes/freenature.recipe b/recipes/freenature.recipe similarity index 100% rename from resources/recipes/freenature.recipe rename to recipes/freenature.recipe diff --git a/resources/recipes/freeway.recipe b/recipes/freeway.recipe similarity index 100% rename from resources/recipes/freeway.recipe rename to recipes/freeway.recipe diff --git a/resources/recipes/fria.recipe b/recipes/fria.recipe similarity index 100% rename from resources/recipes/fria.recipe rename to recipes/fria.recipe diff --git a/resources/recipes/fronda.recipe b/recipes/fronda.recipe similarity index 100% rename from resources/recipes/fronda.recipe rename to recipes/fronda.recipe diff --git a/resources/recipes/fstream.recipe b/recipes/fstream.recipe similarity index 100% rename from resources/recipes/fstream.recipe rename to recipes/fstream.recipe diff --git a/resources/recipes/ftd.recipe b/recipes/ftd.recipe similarity index 100% rename from resources/recipes/ftd.recipe rename to recipes/ftd.recipe diff --git a/resources/recipes/fudzilla.recipe b/recipes/fudzilla.recipe similarity index 100% rename from resources/recipes/fudzilla.recipe rename to recipes/fudzilla.recipe diff --git a/resources/recipes/futurismic.recipe b/recipes/futurismic.recipe similarity index 100% rename from resources/recipes/futurismic.recipe rename to recipes/futurismic.recipe diff --git a/resources/recipes/gamasutra_fa.recipe b/recipes/gamasutra_fa.recipe similarity index 100% rename from resources/recipes/gamasutra_fa.recipe rename to recipes/gamasutra_fa.recipe diff --git a/resources/recipes/gamasutra_news.recipe b/recipes/gamasutra_news.recipe similarity index 100% rename from resources/recipes/gamasutra_news.recipe rename to recipes/gamasutra_news.recipe diff --git a/resources/recipes/gamespot.recipe b/recipes/gamespot.recipe similarity index 100% rename from resources/recipes/gamespot.recipe rename to recipes/gamespot.recipe diff --git a/resources/recipes/gandul.recipe b/recipes/gandul.recipe similarity index 100% rename from resources/recipes/gandul.recipe rename to recipes/gandul.recipe diff --git a/resources/recipes/gawker.recipe b/recipes/gawker.recipe similarity index 100% rename from resources/recipes/gawker.recipe rename to recipes/gawker.recipe diff --git a/resources/recipes/gazeta_pomorska.recipe b/recipes/gazeta_pomorska.recipe similarity index 100% rename from resources/recipes/gazeta_pomorska.recipe rename to recipes/gazeta_pomorska.recipe diff --git a/resources/recipes/german_gov.recipe b/recipes/german_gov.recipe similarity index 100% rename from resources/recipes/german_gov.recipe rename to recipes/german_gov.recipe diff --git a/resources/recipes/gizmodo.recipe b/recipes/gizmodo.recipe similarity index 100% rename from resources/recipes/gizmodo.recipe rename to recipes/gizmodo.recipe diff --git a/resources/recipes/glas_srpske.recipe b/recipes/glas_srpske.recipe similarity index 100% rename from resources/recipes/glas_srpske.recipe rename to recipes/glas_srpske.recipe diff --git a/resources/recipes/glasgow_herald.recipe b/recipes/glasgow_herald.recipe similarity index 100% rename from resources/recipes/glasgow_herald.recipe rename to recipes/glasgow_herald.recipe diff --git a/resources/recipes/glasjavnosti.recipe b/recipes/glasjavnosti.recipe similarity index 100% rename from resources/recipes/glasjavnosti.recipe rename to recipes/glasjavnosti.recipe diff --git a/resources/recipes/glennbeck.recipe b/recipes/glennbeck.recipe similarity index 100% rename from resources/recipes/glennbeck.recipe rename to recipes/glennbeck.recipe diff --git a/resources/recipes/globaltimes.recipe b/recipes/globaltimes.recipe similarity index 100% rename from resources/recipes/globaltimes.recipe rename to recipes/globaltimes.recipe diff --git a/resources/recipes/globe_and_mail.recipe b/recipes/globe_and_mail.recipe similarity index 94% rename from resources/recipes/globe_and_mail.recipe rename to recipes/globe_and_mail.recipe index 22cb6fa5bb..03061a2329 100644 --- a/resources/recipes/globe_and_mail.recipe +++ b/recipes/globe_and_mail.recipe @@ -35,8 +35,8 @@ class AdvancedUserRecipe1287083651(BasicNewsRecipe): (u'Arts', u'http://www.theglobeandmail.com/news/arts/?service=rss'), (u'Life', u'http://www.theglobeandmail.com/life/?service=rss'), (u'Real Estate', u'http://www.theglobeandmail.com/real-estate/?service=rss'), - (u'Auto', u'http://www.theglobeandmail.com/sports/?service=rss'), - (u'Sports', u'http://www.theglobeandmail.com/auto/?service=rss') + (u'Sports', u'http://www.theglobeandmail.com/sports/?service=rss'), + (u'Drive', u'http://www.theglobeandmail.com/auto/?service=rss') ] preprocess_regexps = [ diff --git a/resources/recipes/globes_co_il.recipe b/recipes/globes_co_il.recipe similarity index 100% rename from resources/recipes/globes_co_il.recipe rename to recipes/globes_co_il.recipe diff --git a/resources/recipes/go4it.recipe b/recipes/go4it.recipe similarity index 100% rename from resources/recipes/go4it.recipe rename to recipes/go4it.recipe diff --git a/resources/recipes/go_comics.recipe b/recipes/go_comics.recipe similarity index 100% rename from resources/recipes/go_comics.recipe rename to recipes/go_comics.recipe diff --git a/resources/recipes/golem_de.recipe b/recipes/golem_de.recipe similarity index 100% rename from resources/recipes/golem_de.recipe rename to recipes/golem_de.recipe diff --git a/resources/recipes/granma.recipe b/recipes/granma.recipe similarity index 100% rename from resources/recipes/granma.recipe rename to recipes/granma.recipe diff --git a/resources/recipes/greader.recipe b/recipes/greader.recipe similarity index 100% rename from resources/recipes/greader.recipe rename to recipes/greader.recipe diff --git a/resources/recipes/greader_uber.recipe b/recipes/greader_uber.recipe similarity index 100% rename from resources/recipes/greader_uber.recipe rename to recipes/greader_uber.recipe diff --git a/resources/recipes/greensboro_news_and_record.recipe b/recipes/greensboro_news_and_record.recipe similarity index 100% rename from resources/recipes/greensboro_news_and_record.recipe rename to recipes/greensboro_news_and_record.recipe diff --git a/resources/recipes/gsp.recipe b/recipes/gsp.recipe similarity index 100% rename from resources/recipes/gsp.recipe rename to recipes/gsp.recipe diff --git a/resources/recipes/guardian.recipe b/recipes/guardian.recipe similarity index 100% rename from resources/recipes/guardian.recipe rename to recipes/guardian.recipe diff --git a/resources/recipes/gulfnews.recipe b/recipes/gulfnews.recipe similarity index 100% rename from resources/recipes/gulfnews.recipe rename to recipes/gulfnews.recipe diff --git a/resources/recipes/gulli.recipe b/recipes/gulli.recipe similarity index 100% rename from resources/recipes/gulli.recipe rename to recipes/gulli.recipe diff --git a/resources/recipes/gva_be.recipe b/recipes/gva_be.recipe similarity index 100% rename from resources/recipes/gva_be.recipe rename to recipes/gva_be.recipe diff --git a/recipes/h1.recipe b/recipes/h1.recipe new file mode 100644 index 0000000000..8c3691981e --- /dev/null +++ b/recipes/h1.recipe @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +import re +from calibre.web.feeds.recipes import BasicNewsRecipe + +class hu168ora(BasicNewsRecipe): + title = u'168 óra' + __author__ = u'István Papp' + description = u'A 168 óra friss hírei' + timefmt = ' [%Y. %b. %d., %a.]' + oldest_article = 7 + language = 'hu' + + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + encoding = 'utf8' + publisher = u'Telegráf Kiadó' + category = u'news, hírek, 168' + extra_css = 'body{ font-family: Verdana,Helvetica,Arial,sans-serif }' + preprocess_regexps = [(re.compile(r'', re.DOTALL), lambda m: '')] + keep_only_tags = [ + dict(id='cikk_fejlec') + ,dict(id='cikk_torzs') + ] +# remove_tags_before = dict(id='cikk_fejlec') +# remove_tags_after = dict(id='szoveg') + remove_tags = [ + dict(id='box_toolbar') + ,dict(id='text') + ] + remove_javascript = True + remove_empty_feeds = True + + + feeds = [ + (u'Itthon', u'http://www.168ora.hu/static/rss/cikkek_itthon.xml') + ,(u'Glóbusz', u'http://www.168ora.hu/static/rss/cikkek_globusz.xml') + ,(u'Punch', u'http://www.168ora.hu/static/rss/cikkek_punch.xml') + ,(u'Arte', u'http://www.168ora.hu/static/rss/cikkek_arte.xml') + ,(u'Buxa', u'http://www.168ora.hu/static/rss/cikkek_buxa.xml') + ,(u'Sebesség', u'http://www.168ora.hu/static/rss/cikkek_sebesseg.xml') + ,(u'Tudás', u'http://www.168ora.hu/static/rss/cikkek_tudas.xml') + ,(u'Sport', u'http://www.168ora.hu/static/rss/cikkek_sport.xml') + ,(u'Vélemény', u'http://www.168ora.hu/static/rss/cikkek_velemeny.xml') + ,(u'Dolce Vita', u'http://www.168ora.hu/static/rss/cikkek_dolcevita.xml') +# ,(u'Rádió', u'http://www.168ora.hu/static/rss/radio.xml') + ] + + def print_version(self, url): + url += '?print=1' + return url diff --git a/resources/recipes/h2.recipe b/recipes/h2.recipe similarity index 100% rename from resources/recipes/h2.recipe rename to recipes/h2.recipe diff --git a/resources/recipes/h3.recipe b/recipes/h3.recipe similarity index 100% rename from resources/recipes/h3.recipe rename to recipes/h3.recipe diff --git a/resources/recipes/haaretz_en.recipe b/recipes/haaretz_en.recipe similarity index 100% rename from resources/recipes/haaretz_en.recipe rename to recipes/haaretz_en.recipe diff --git a/resources/recipes/handelsblatt.recipe b/recipes/handelsblatt.recipe similarity index 58% rename from resources/recipes/handelsblatt.recipe rename to recipes/handelsblatt.recipe index af8b89e714..945dac0560 100644 --- a/resources/recipes/handelsblatt.recipe +++ b/recipes/handelsblatt.recipe @@ -1,4 +1,3 @@ -import re from calibre.web.feeds.news import BasicNewsRecipe @@ -10,10 +9,12 @@ class Handelsblatt(BasicNewsRecipe): no_stylesheets = True cover_url = 'http://www.handelsblatt.com/images/logo/logo_handelsblatt.com.png' language = 'de' - keep_only_tags = [] - keep_only_tags.append(dict(name = 'div', attrs = {'class': 'structOneCol'})) - keep_only_tags.append(dict(name = 'div', attrs = {'id': 'fullText'})) - remove_tags = [dict(name='img', attrs = {'src': 'http://www.handelsblatt.com/images/icon/loading.gif'})] + # keep_only_tags = [] + keep_only_tags = (dict(name = 'div', attrs = {'class': ['hcf-detail-abstract hcf-teaser ajaxify','hcf-detail','hcf-author-wrapper']})) + # keep_only_tags.append(dict(name = 'div', attrs = {'id': 'fullText'})) + remove_tags = [dict(name='img', attrs = {'src': 'http://www.handelsblatt.com/images/icon/loading.gif'}) + ,dict(name='ul' , attrs={'class':['hcf-detail-tools']}) + ] feeds = [ (u'Handelsblatt Exklusiv',u'http://www.handelsblatt.com/rss/exklusiv'), @@ -28,14 +29,16 @@ class Handelsblatt(BasicNewsRecipe): (u'Handelsblatt Weblogs',u'http://www.handelsblatt.com/rss/blogs') ] 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;} + .hcf-headline {font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:x-large;} + .hcf-overline {font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:x-large;} + .hcf-exclusive {font-family:Arial,Helvetica,sans-serif; font-style:italic;font-weight:bold; margin-right:5pt;} + p{font-family:Arial,Helvetica,sans-serif;} + .hcf-location-mark{font-weight:bold; margin-right:5pt;} + .MsoNormal{font-family:Helvetica,Arial,sans-serif;} + .hcf-author-wrapper{font-style:italic;} + .hcf-article-date{font-size:x-small;} + .hcf-caption {font-style:italic;font-size:small;} + img {align:left;} ''' - def print_version(self, url): - m = re.search('(?<=;)[0-9]*', url) - return u'http://www.handelsblatt.com/_b=' + str(m.group(0)) + ',_p=21,_t=ftprint,doc_page=0;printpage' - diff --git a/resources/recipes/hannoversche_zeitung.recipe b/recipes/hannoversche_zeitung.recipe similarity index 100% rename from resources/recipes/hannoversche_zeitung.recipe rename to recipes/hannoversche_zeitung.recipe diff --git a/resources/recipes/harpers.recipe b/recipes/harpers.recipe similarity index 100% rename from resources/recipes/harpers.recipe rename to recipes/harpers.recipe diff --git a/resources/recipes/harpers_full.recipe b/recipes/harpers_full.recipe similarity index 100% rename from resources/recipes/harpers_full.recipe rename to recipes/harpers_full.recipe diff --git a/resources/recipes/hartford_courant.recipe b/recipes/hartford_courant.recipe similarity index 100% rename from resources/recipes/hartford_courant.recipe rename to recipes/hartford_courant.recipe diff --git a/recipes/hawaii.recipe b/recipes/hawaii.recipe new file mode 100644 index 0000000000..ae98e46009 --- /dev/null +++ b/recipes/hawaii.recipe @@ -0,0 +1,21 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1282101454(BasicNewsRecipe): + title = 'West Hawaii Today' + __author__ = 'Tony Stegall' + language = 'en' + description = 'Westhawaiitoday.com' + publisher = 'West Hawaii ' + category = 'news,Hawaii,USA' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + remove_javascript = True + use_embedded_content = True + + masthead_url = 'http://images.townnews.com/westhawaiitoday.com/art/whttoplogo.gif' + + + feeds = [ 'http://www.westhawaiitoday.com/rss.xml'] + + diff --git a/resources/recipes/hbr.recipe b/recipes/hbr.recipe similarity index 100% rename from resources/recipes/hbr.recipe rename to recipes/hbr.recipe diff --git a/resources/recipes/hbr_blogs.recipe b/recipes/hbr_blogs.recipe similarity index 100% rename from resources/recipes/hbr_blogs.recipe rename to recipes/hbr_blogs.recipe diff --git a/resources/recipes/heise.recipe b/recipes/heise.recipe similarity index 100% rename from resources/recipes/heise.recipe rename to recipes/heise.recipe diff --git a/resources/recipes/heise_open.recipe b/recipes/heise_open.recipe similarity index 100% rename from resources/recipes/heise_open.recipe rename to recipes/heise_open.recipe diff --git a/resources/recipes/helsingin_sanomat.recipe b/recipes/helsingin_sanomat.recipe similarity index 100% rename from resources/recipes/helsingin_sanomat.recipe rename to recipes/helsingin_sanomat.recipe diff --git a/resources/recipes/heraldo.recipe b/recipes/heraldo.recipe similarity index 100% rename from resources/recipes/heraldo.recipe rename to recipes/heraldo.recipe diff --git a/resources/recipes/hindu.recipe b/recipes/hindu.recipe similarity index 100% rename from resources/recipes/hindu.recipe rename to recipes/hindu.recipe diff --git a/resources/recipes/hindu_business_line.recipe b/recipes/hindu_business_line.recipe similarity index 100% rename from resources/recipes/hindu_business_line.recipe rename to recipes/hindu_business_line.recipe diff --git a/resources/recipes/histmag.recipe b/recipes/histmag.recipe similarity index 100% rename from resources/recipes/histmag.recipe rename to recipes/histmag.recipe diff --git a/resources/recipes/historiaro.recipe b/recipes/historiaro.recipe similarity index 100% rename from resources/recipes/historiaro.recipe rename to recipes/historiaro.recipe diff --git a/resources/recipes/hitro.recipe b/recipes/hitro.recipe similarity index 100% rename from resources/recipes/hitro.recipe rename to recipes/hitro.recipe diff --git a/resources/recipes/hln.recipe b/recipes/hln.recipe similarity index 100% rename from resources/recipes/hln.recipe rename to recipes/hln.recipe diff --git a/resources/recipes/hln_be.recipe b/recipes/hln_be.recipe similarity index 100% rename from resources/recipes/hln_be.recipe rename to recipes/hln_be.recipe diff --git a/resources/recipes/hna.recipe b/recipes/hna.recipe similarity index 100% rename from resources/recipes/hna.recipe rename to recipes/hna.recipe diff --git a/resources/recipes/hola.recipe b/recipes/hola.recipe similarity index 100% rename from resources/recipes/hola.recipe rename to recipes/hola.recipe diff --git a/resources/recipes/honvedelem.recipe b/recipes/honvedelem.recipe similarity index 100% rename from resources/recipes/honvedelem.recipe rename to recipes/honvedelem.recipe diff --git a/resources/recipes/hotair.recipe b/recipes/hotair.recipe similarity index 100% rename from resources/recipes/hotair.recipe rename to recipes/hotair.recipe diff --git a/resources/recipes/hotcity.recipe b/recipes/hotcity.recipe similarity index 100% rename from resources/recipes/hotcity.recipe rename to recipes/hotcity.recipe diff --git a/resources/recipes/hotnews.recipe b/recipes/hotnews.recipe similarity index 100% rename from resources/recipes/hotnews.recipe rename to recipes/hotnews.recipe diff --git a/resources/recipes/houston_chronicle.recipe b/recipes/houston_chronicle.recipe similarity index 100% rename from resources/recipes/houston_chronicle.recipe rename to recipes/houston_chronicle.recipe diff --git a/resources/recipes/howtogeek.recipe b/recipes/howtogeek.recipe similarity index 100% rename from resources/recipes/howtogeek.recipe rename to recipes/howtogeek.recipe diff --git a/resources/recipes/hoy.recipe b/recipes/hoy.recipe similarity index 100% rename from resources/recipes/hoy.recipe rename to recipes/hoy.recipe diff --git a/resources/recipes/hrt.recipe b/recipes/hrt.recipe similarity index 100% rename from resources/recipes/hrt.recipe rename to recipes/hrt.recipe diff --git a/resources/recipes/huffingtonpost.recipe b/recipes/huffingtonpost.recipe similarity index 100% rename from resources/recipes/huffingtonpost.recipe rename to recipes/huffingtonpost.recipe diff --git a/resources/recipes/huntechnet.recipe b/recipes/huntechnet.recipe similarity index 100% rename from resources/recipes/huntechnet.recipe rename to recipes/huntechnet.recipe diff --git a/recipes/hvg.recipe b/recipes/hvg.recipe new file mode 100644 index 0000000000..8e9218d9c3 --- /dev/null +++ b/recipes/hvg.recipe @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +import re +from calibre.web.feeds.recipes import BasicNewsRecipe + +class HVG(BasicNewsRecipe): + title = 'HVG.HU' + __author__ = u'István Papp' + description = u'Friss hírek a HVG-től' + timefmt = ' [%Y. %b. %d., %a.]' + oldest_article = 4 + language = 'hu' + + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + encoding = 'utf8' + publisher = 'HVG Online' + category = u'news, hírek, hvg' + extra_css = 'body{ font-family: Verdana,Helvetica,Arial,sans-serif } .introduction{font-weight: bold} .story-feature{display: block; padding: 0; border: 1px solid; width: 40%; font-size: small} .story-feature h2{text-align: center; text-transform: uppercase} ' + preprocess_regexps = [(re.compile(r'', re.DOTALL), lambda m: '')] + remove_tags_before = dict(id='pg-content') + remove_javascript = True + remove_empty_feeds = True + + feeds = [ + (u'Itthon', u'http://hvg.hu/rss/itthon') + ,(u'Világ', u'http://hvg.hu/rss/vilag') + ,(u'Gazdaság', u'http://hvg.hu/rss/gazdasag') + ,(u'IT | Tudomány', u'http://hvg.hu/rss/tudomany') + ,(u'Panoráma', u'http://hvg.hu/rss/Panorama') + ,(u'Karrier', u'http://hvg.hu/rss/karrier') + ,(u'Gasztronómia', u'http://hvg.hu/rss/gasztronomia') + ,(u'Helyi érték', u'http://hvg.hu/rss/helyiertek') + ,(u'Kultúra', u'http://hvg.hu/rss/kultura') + ,(u'Cégautó', u'http://hvg.hu/rss/cegauto') + ,(u'Vállalkozó szellem', u'http://hvg.hu/rss/kkv') + ,(u'Egészség', u'http://hvg.hu/rss/egeszseg') + ,(u'Vélemény', u'http://hvg.hu/rss/velemeny') + ,(u'Sport', u'http://hvg.hu/rss/sport') + ] + + def print_version(self, url): + return url.replace ('#rss', '/print') + diff --git a/resources/recipes/ibm_smarter_planet.recipe b/recipes/ibm_smarter_planet.recipe similarity index 100% rename from resources/recipes/ibm_smarter_planet.recipe rename to recipes/ibm_smarter_planet.recipe diff --git a/resources/images/news/20minutos.png b/recipes/icons/20minutos.png similarity index 100% rename from resources/images/news/20minutos.png rename to recipes/icons/20minutos.png diff --git a/resources/images/news/24sata.png b/recipes/icons/24sata.png similarity index 100% rename from resources/images/news/24sata.png rename to recipes/icons/24sata.png diff --git a/resources/images/news/24sata_rs.png b/recipes/icons/24sata_rs.png similarity index 100% rename from resources/images/news/24sata_rs.png rename to recipes/icons/24sata_rs.png diff --git a/resources/images/news/7seri.png b/recipes/icons/7seri.png similarity index 100% rename from resources/images/news/7seri.png rename to recipes/icons/7seri.png diff --git a/recipes/icons/DrawAndCook.png b/recipes/icons/DrawAndCook.png new file mode 100644 index 0000000000..8b40b75344 Binary files /dev/null and b/recipes/icons/DrawAndCook.png differ diff --git a/resources/images/news/abc_py.png b/recipes/icons/abc_py.png similarity index 100% rename from resources/images/news/abc_py.png rename to recipes/icons/abc_py.png diff --git a/resources/images/news/ad.png b/recipes/icons/ad.png similarity index 100% rename from resources/images/news/ad.png rename to recipes/icons/ad.png diff --git a/resources/images/news/adevarul.png b/recipes/icons/adevarul.png similarity index 100% rename from resources/images/news/adevarul.png rename to recipes/icons/adevarul.png diff --git a/resources/images/news/adventuregamers.png b/recipes/icons/adventuregamers.png similarity index 100% rename from resources/images/news/adventuregamers.png rename to recipes/icons/adventuregamers.png diff --git a/resources/images/news/aif_ru.png b/recipes/icons/aif_ru.png similarity index 100% rename from resources/images/news/aif_ru.png rename to recipes/icons/aif_ru.png diff --git a/resources/images/news/ajc.png b/recipes/icons/ajc.png similarity index 100% rename from resources/images/news/ajc.png rename to recipes/icons/ajc.png diff --git a/resources/images/news/akter.png b/recipes/icons/akter.png similarity index 100% rename from resources/images/news/akter.png rename to recipes/icons/akter.png diff --git a/resources/images/news/alo_novine.png b/recipes/icons/alo_novine.png similarity index 100% rename from resources/images/news/alo_novine.png rename to recipes/icons/alo_novine.png diff --git a/resources/images/news/ambito.png b/recipes/icons/ambito.png similarity index 100% rename from resources/images/news/ambito.png rename to recipes/icons/ambito.png diff --git a/resources/images/news/american_thinker.png b/recipes/icons/american_thinker.png similarity index 100% rename from resources/images/news/american_thinker.png rename to recipes/icons/american_thinker.png diff --git a/resources/images/news/amspec.png b/recipes/icons/amspec.png similarity index 100% rename from resources/images/news/amspec.png rename to recipes/icons/amspec.png diff --git a/resources/images/news/anandtech.png b/recipes/icons/anandtech.png similarity index 100% rename from resources/images/news/anandtech.png rename to recipes/icons/anandtech.png diff --git a/resources/images/news/arabian_business.png b/recipes/icons/arabian_business.png similarity index 100% rename from resources/images/news/arabian_business.png rename to recipes/icons/arabian_business.png diff --git a/resources/images/news/ars_technica.png b/recipes/icons/ars_technica.png similarity index 100% rename from resources/images/news/ars_technica.png rename to recipes/icons/ars_technica.png diff --git a/resources/images/news/atlantic.png b/recipes/icons/atlantic.png similarity index 100% rename from resources/images/news/atlantic.png rename to recipes/icons/atlantic.png diff --git a/resources/images/news/avantaje.png b/recipes/icons/avantaje.png similarity index 100% rename from resources/images/news/avantaje.png rename to recipes/icons/avantaje.png diff --git a/resources/images/news/aventurilapescuit.png b/recipes/icons/aventurilapescuit.png similarity index 100% rename from resources/images/news/aventurilapescuit.png rename to recipes/icons/aventurilapescuit.png diff --git a/resources/images/news/avto-magazin.png b/recipes/icons/avto-magazin.png similarity index 100% rename from resources/images/news/avto-magazin.png rename to recipes/icons/avto-magazin.png diff --git a/resources/images/news/axxon_news.png b/recipes/icons/axxon_news.png similarity index 100% rename from resources/images/news/axxon_news.png rename to recipes/icons/axxon_news.png diff --git a/resources/images/news/azstarnet.png b/recipes/icons/azstarnet.png similarity index 100% rename from resources/images/news/azstarnet.png rename to recipes/icons/azstarnet.png diff --git a/resources/images/news/b92.png b/recipes/icons/b92.png similarity index 100% rename from resources/images/news/b92.png rename to recipes/icons/b92.png diff --git a/resources/images/news/balkaninsight.png b/recipes/icons/balkaninsight.png similarity index 100% rename from resources/images/news/balkaninsight.png rename to recipes/icons/balkaninsight.png diff --git a/resources/images/news/barrons.png b/recipes/icons/barrons.png similarity index 100% rename from resources/images/news/barrons.png rename to recipes/icons/barrons.png diff --git a/resources/images/news/bbc.png b/recipes/icons/bbc.png similarity index 100% rename from resources/images/news/bbc.png rename to recipes/icons/bbc.png diff --git a/resources/images/news/berlingske_dk.png b/recipes/icons/berlingske_dk.png similarity index 100% rename from resources/images/news/berlingske_dk.png rename to recipes/icons/berlingske_dk.png diff --git a/resources/images/news/beta.png b/recipes/icons/beta.png similarity index 100% rename from resources/images/news/beta.png rename to recipes/icons/beta.png diff --git a/resources/images/news/beta_en.png b/recipes/icons/beta_en.png similarity index 100% rename from resources/images/news/beta_en.png rename to recipes/icons/beta_en.png diff --git a/resources/images/news/biggovernment.png b/recipes/icons/biggovernment.png similarity index 100% rename from resources/images/news/biggovernment.png rename to recipes/icons/biggovernment.png diff --git a/resources/images/news/bighollywood.png b/recipes/icons/bighollywood.png similarity index 100% rename from resources/images/news/bighollywood.png rename to recipes/icons/bighollywood.png diff --git a/resources/images/news/blic.png b/recipes/icons/blic.png similarity index 100% rename from resources/images/news/blic.png rename to recipes/icons/blic.png diff --git a/resources/images/news/boortz.png b/recipes/icons/boortz.png similarity index 100% rename from resources/images/news/boortz.png rename to recipes/icons/boortz.png diff --git a/resources/images/news/borba.png b/recipes/icons/borba.png similarity index 100% rename from resources/images/news/borba.png rename to recipes/icons/borba.png diff --git a/resources/images/news/bucataras.png b/recipes/icons/bucataras.png similarity index 100% rename from resources/images/news/bucataras.png rename to recipes/icons/bucataras.png diff --git a/resources/images/news/business_insider.png b/recipes/icons/business_insider.png similarity index 100% rename from resources/images/news/business_insider.png rename to recipes/icons/business_insider.png diff --git a/resources/images/news/business_standard.png b/recipes/icons/business_standard.png similarity index 100% rename from resources/images/news/business_standard.png rename to recipes/icons/business_standard.png diff --git a/resources/images/news/businessworldin.png b/recipes/icons/businessworldin.png similarity index 100% rename from resources/images/news/businessworldin.png rename to recipes/icons/businessworldin.png diff --git a/resources/images/news/bwmagazine.png b/recipes/icons/bwmagazine.png similarity index 100% rename from resources/images/news/bwmagazine.png rename to recipes/icons/bwmagazine.png diff --git a/resources/images/news/capital.png b/recipes/icons/capital.png similarity index 100% rename from resources/images/news/capital.png rename to recipes/icons/capital.png diff --git a/resources/images/news/carta.png b/recipes/icons/carta.png similarity index 100% rename from resources/images/news/carta.png rename to recipes/icons/carta.png diff --git a/resources/images/news/catavencu.png b/recipes/icons/catavencu.png similarity index 100% rename from resources/images/news/catavencu.png rename to recipes/icons/catavencu.png diff --git a/resources/images/news/chicago_breaking_news.png b/recipes/icons/chicago_breaking_news.png similarity index 100% rename from resources/images/news/chicago_breaking_news.png rename to recipes/icons/chicago_breaking_news.png diff --git a/resources/images/news/chinadaily.png b/recipes/icons/chinadaily.png similarity index 100% rename from resources/images/news/chinadaily.png rename to recipes/icons/chinadaily.png diff --git a/resources/images/news/chipro.png b/recipes/icons/chipro.png similarity index 100% rename from resources/images/news/chipro.png rename to recipes/icons/chipro.png diff --git a/resources/images/news/chr_mon.png b/recipes/icons/chr_mon.png similarity index 100% rename from resources/images/news/chr_mon.png rename to recipes/icons/chr_mon.png diff --git a/resources/images/news/clarin.png b/recipes/icons/clarin.png similarity index 100% rename from resources/images/news/clarin.png rename to recipes/icons/clarin.png diff --git a/resources/images/news/cnetjapan.png b/recipes/icons/cnetjapan.png similarity index 100% rename from resources/images/news/cnetjapan.png rename to recipes/icons/cnetjapan.png diff --git a/resources/images/news/cnetjapan_digital.png b/recipes/icons/cnetjapan_digital.png similarity index 100% rename from resources/images/news/cnetjapan_digital.png rename to recipes/icons/cnetjapan_digital.png diff --git a/resources/images/news/cnetjapan_release.png b/recipes/icons/cnetjapan_release.png similarity index 100% rename from resources/images/news/cnetjapan_release.png rename to recipes/icons/cnetjapan_release.png diff --git a/resources/images/news/cnetnews.png b/recipes/icons/cnetnews.png similarity index 100% rename from resources/images/news/cnetnews.png rename to recipes/icons/cnetnews.png diff --git a/resources/images/news/cnn.png b/recipes/icons/cnn.png similarity index 100% rename from resources/images/news/cnn.png rename to recipes/icons/cnn.png diff --git a/resources/images/news/coding_horror.png b/recipes/icons/coding_horror.png similarity index 100% rename from resources/images/news/coding_horror.png rename to recipes/icons/coding_horror.png diff --git a/resources/images/news/columbusdispatch.png b/recipes/icons/columbusdispatch.png similarity index 100% rename from resources/images/news/columbusdispatch.png rename to recipes/icons/columbusdispatch.png diff --git a/resources/images/news/consumerist.png b/recipes/icons/consumerist.png similarity index 100% rename from resources/images/news/consumerist.png rename to recipes/icons/consumerist.png diff --git a/resources/images/news/corriere_della_sera_en.png b/recipes/icons/corriere_della_sera_en.png similarity index 100% rename from resources/images/news/corriere_della_sera_en.png rename to recipes/icons/corriere_della_sera_en.png diff --git a/resources/images/news/corriere_della_sera_it.png b/recipes/icons/corriere_della_sera_it.png similarity index 100% rename from resources/images/news/corriere_della_sera_it.png rename to recipes/icons/corriere_della_sera_it.png diff --git a/resources/images/news/cotidianul.png b/recipes/icons/cotidianul.png similarity index 100% rename from resources/images/news/cotidianul.png rename to recipes/icons/cotidianul.png diff --git a/resources/images/news/credit_slips.png b/recipes/icons/credit_slips.png similarity index 100% rename from resources/images/news/credit_slips.png rename to recipes/icons/credit_slips.png diff --git a/resources/images/news/criticadigital.png b/recipes/icons/criticadigital.png similarity index 100% rename from resources/images/news/criticadigital.png rename to recipes/icons/criticadigital.png diff --git a/resources/images/news/csid.png b/recipes/icons/csid.png similarity index 100% rename from resources/images/news/csid.png rename to recipes/icons/csid.png diff --git a/resources/images/news/cubadebate.png b/recipes/icons/cubadebate.png similarity index 100% rename from resources/images/news/cubadebate.png rename to recipes/icons/cubadebate.png diff --git a/resources/images/news/curierulnational.png b/recipes/icons/curierulnational.png similarity index 100% rename from resources/images/news/curierulnational.png rename to recipes/icons/curierulnational.png diff --git a/resources/images/news/dailyreckoning.png b/recipes/icons/dailyreckoning.png similarity index 100% rename from resources/images/news/dailyreckoning.png rename to recipes/icons/dailyreckoning.png diff --git a/resources/images/news/dailytportal.png b/recipes/icons/dailytportal.png similarity index 100% rename from resources/images/news/dailytportal.png rename to recipes/icons/dailytportal.png diff --git a/resources/images/news/danas.png b/recipes/icons/danas.png similarity index 100% rename from resources/images/news/danas.png rename to recipes/icons/danas.png diff --git a/resources/images/news/darknet.png b/recipes/icons/darknet.png similarity index 100% rename from resources/images/news/darknet.png rename to recipes/icons/darknet.png diff --git a/resources/images/news/de_standaard.png b/recipes/icons/de_standaard.png similarity index 100% rename from resources/images/news/de_standaard.png rename to recipes/icons/de_standaard.png diff --git a/resources/images/news/deadspin.png b/recipes/icons/deadspin.png similarity index 100% rename from resources/images/news/deadspin.png rename to recipes/icons/deadspin.png diff --git a/resources/images/news/der_standard.png b/recipes/icons/der_standard.png similarity index 100% rename from resources/images/news/der_standard.png rename to recipes/icons/der_standard.png diff --git a/resources/images/news/descopera.png b/recipes/icons/descopera.png similarity index 100% rename from resources/images/news/descopera.png rename to recipes/icons/descopera.png diff --git a/resources/images/news/deutsche_welle_bs.png b/recipes/icons/deutsche_welle_bs.png similarity index 100% rename from resources/images/news/deutsche_welle_bs.png rename to recipes/icons/deutsche_welle_bs.png diff --git a/resources/images/news/deutsche_welle_en.png b/recipes/icons/deutsche_welle_en.png similarity index 100% rename from resources/images/news/deutsche_welle_en.png rename to recipes/icons/deutsche_welle_en.png diff --git a/resources/images/news/deutsche_welle_es.png b/recipes/icons/deutsche_welle_es.png similarity index 100% rename from resources/images/news/deutsche_welle_es.png rename to recipes/icons/deutsche_welle_es.png diff --git a/resources/images/news/deutsche_welle_hr.png b/recipes/icons/deutsche_welle_hr.png similarity index 100% rename from resources/images/news/deutsche_welle_hr.png rename to recipes/icons/deutsche_welle_hr.png diff --git a/resources/images/news/deutsche_welle_pt.png b/recipes/icons/deutsche_welle_pt.png similarity index 100% rename from resources/images/news/deutsche_welle_pt.png rename to recipes/icons/deutsche_welle_pt.png diff --git a/resources/images/news/deutsche_welle_sr.png b/recipes/icons/deutsche_welle_sr.png similarity index 100% rename from resources/images/news/deutsche_welle_sr.png rename to recipes/icons/deutsche_welle_sr.png diff --git a/resources/images/news/di.png b/recipes/icons/di.png similarity index 100% rename from resources/images/news/di.png rename to recipes/icons/di.png diff --git a/resources/images/news/diariovasco.png b/recipes/icons/diariovasco.png similarity index 100% rename from resources/images/news/diariovasco.png rename to recipes/icons/diariovasco.png diff --git a/resources/images/news/diepresse.png b/recipes/icons/diepresse.png similarity index 100% rename from resources/images/news/diepresse.png rename to recipes/icons/diepresse.png diff --git a/resources/images/news/digitaljournal.png b/recipes/icons/digitaljournal.png similarity index 100% rename from resources/images/news/digitaljournal.png rename to recipes/icons/digitaljournal.png diff --git a/resources/images/news/digitalspy_uk.png b/recipes/icons/digitalspy_uk.png similarity index 100% rename from resources/images/news/digitalspy_uk.png rename to recipes/icons/digitalspy_uk.png diff --git a/resources/images/news/dilbert.png b/recipes/icons/dilbert.png similarity index 100% rename from resources/images/news/dilbert.png rename to recipes/icons/dilbert.png diff --git a/resources/images/news/discover_magazine.png b/recipes/icons/discover_magazine.png similarity index 100% rename from resources/images/news/discover_magazine.png rename to recipes/icons/discover_magazine.png diff --git a/resources/images/news/dn_se.png b/recipes/icons/dn_se.png similarity index 100% rename from resources/images/news/dn_se.png rename to recipes/icons/dn_se.png diff --git a/resources/images/news/dnevni_avaz.png b/recipes/icons/dnevni_avaz.png similarity index 100% rename from resources/images/news/dnevni_avaz.png rename to recipes/icons/dnevni_avaz.png diff --git a/resources/images/news/dnevnik.png b/recipes/icons/dnevnik.png similarity index 100% rename from resources/images/news/dnevnik.png rename to recipes/icons/dnevnik.png diff --git a/resources/images/news/dr_dk.png b/recipes/icons/dr_dk.png similarity index 100% rename from resources/images/news/dr_dk.png rename to recipes/icons/dr_dk.png diff --git a/resources/images/news/e_novine.png b/recipes/icons/e_novine.png similarity index 100% rename from resources/images/news/e_novine.png rename to recipes/icons/e_novine.png diff --git a/resources/images/news/eclicto.png b/recipes/icons/eclicto.png similarity index 100% rename from resources/images/news/eclicto.png rename to recipes/icons/eclicto.png diff --git a/resources/images/news/economist.png b/recipes/icons/economist.png similarity index 100% rename from resources/images/news/economist.png rename to recipes/icons/economist.png diff --git a/resources/images/news/ecuisine.png b/recipes/icons/ecuisine.png similarity index 100% rename from resources/images/news/ecuisine.png rename to recipes/icons/ecuisine.png diff --git a/resources/images/news/egirl.png b/recipes/icons/egirl.png similarity index 100% rename from resources/images/news/egirl.png rename to recipes/icons/egirl.png diff --git a/resources/images/news/eksiazki.png b/recipes/icons/eksiazki.png similarity index 100% rename from resources/images/news/eksiazki.png rename to recipes/icons/eksiazki.png diff --git a/resources/images/news/el_mercurio_chile.png b/recipes/icons/el_mercurio_chile.png similarity index 100% rename from resources/images/news/el_mercurio_chile.png rename to recipes/icons/el_mercurio_chile.png diff --git a/resources/images/news/el_universal.png b/recipes/icons/el_universal.png similarity index 100% rename from resources/images/news/el_universal.png rename to recipes/icons/el_universal.png diff --git a/resources/images/news/elargentino.png b/recipes/icons/elargentino.png similarity index 100% rename from resources/images/news/elargentino.png rename to recipes/icons/elargentino.png diff --git a/resources/images/news/elcomercio.png b/recipes/icons/elcomercio.png similarity index 100% rename from resources/images/news/elcomercio.png rename to recipes/icons/elcomercio.png diff --git a/resources/images/news/elcronista.png b/recipes/icons/elcronista.png similarity index 100% rename from resources/images/news/elcronista.png rename to recipes/icons/elcronista.png diff --git a/resources/images/news/ele.png b/recipes/icons/ele.png similarity index 100% rename from resources/images/news/ele.png rename to recipes/icons/ele.png diff --git a/resources/images/news/elektrolese.png b/recipes/icons/elektrolese.png similarity index 100% rename from resources/images/news/elektrolese.png rename to recipes/icons/elektrolese.png diff --git a/resources/images/news/elmundo.png b/recipes/icons/elmundo.png similarity index 100% rename from resources/images/news/elmundo.png rename to recipes/icons/elmundo.png diff --git a/resources/images/news/elpais_impreso.png b/recipes/icons/elpais_impreso.png similarity index 100% rename from resources/images/news/elpais_impreso.png rename to recipes/icons/elpais_impreso.png diff --git a/resources/images/news/elpais_semanal.png b/recipes/icons/elpais_semanal.png similarity index 100% rename from resources/images/news/elpais_semanal.png rename to recipes/icons/elpais_semanal.png diff --git a/resources/images/news/elperiodico_catalan.png b/recipes/icons/elperiodico_catalan.png similarity index 100% rename from resources/images/news/elperiodico_catalan.png rename to recipes/icons/elperiodico_catalan.png diff --git a/resources/images/news/elperiodico_spanish.png b/recipes/icons/elperiodico_spanish.png similarity index 100% rename from resources/images/news/elperiodico_spanish.png rename to recipes/icons/elperiodico_spanish.png diff --git a/resources/images/news/elsevier.png b/recipes/icons/elsevier.png similarity index 100% rename from resources/images/news/elsevier.png rename to recipes/icons/elsevier.png diff --git a/resources/images/news/eltiempo_hn.png b/recipes/icons/eltiempo_hn.png similarity index 100% rename from resources/images/news/eltiempo_hn.png rename to recipes/icons/eltiempo_hn.png diff --git a/resources/images/news/eluniversal.png b/recipes/icons/eluniversal.png similarity index 100% rename from resources/images/news/eluniversal.png rename to recipes/icons/eluniversal.png diff --git a/resources/images/news/eluniversal_ve.png b/recipes/icons/eluniversal_ve.png similarity index 100% rename from resources/images/news/eluniversal_ve.png rename to recipes/icons/eluniversal_ve.png diff --git a/resources/images/news/eluniverso_ec.png b/recipes/icons/eluniverso_ec.png similarity index 100% rename from resources/images/news/eluniverso_ec.png rename to recipes/icons/eluniverso_ec.png diff --git a/resources/images/news/emg_en.png b/recipes/icons/emg_en.png similarity index 100% rename from resources/images/news/emg_en.png rename to recipes/icons/emg_en.png diff --git a/resources/images/news/emg_rs.recipe b/recipes/icons/emg_rs.png similarity index 100% rename from resources/images/news/emg_rs.recipe rename to recipes/icons/emg_rs.png diff --git a/resources/images/news/endgadget.png b/recipes/icons/endgadget.png similarity index 100% rename from resources/images/news/endgadget.png rename to recipes/icons/endgadget.png diff --git a/resources/images/news/endgadget_ja.png b/recipes/icons/endgadget_ja.png similarity index 100% rename from resources/images/news/endgadget_ja.png rename to recipes/icons/endgadget_ja.png diff --git a/resources/images/news/entrepeneur.png b/recipes/icons/entrepeneur.png similarity index 100% rename from resources/images/news/entrepeneur.png rename to recipes/icons/entrepeneur.png diff --git a/resources/images/news/espn.png b/recipes/icons/espn.png similarity index 100% rename from resources/images/news/espn.png rename to recipes/icons/espn.png diff --git a/resources/images/news/esquire.png b/recipes/icons/esquire.png similarity index 100% rename from resources/images/news/esquire.png rename to recipes/icons/esquire.png diff --git a/recipes/icons/estadao.png b/recipes/icons/estadao.png new file mode 100644 index 0000000000..706f101f33 Binary files /dev/null and b/recipes/icons/estadao.png differ diff --git a/resources/images/news/evz.ro.png b/recipes/icons/evz.ro.png similarity index 100% rename from resources/images/news/evz.ro.png rename to recipes/icons/evz.ro.png diff --git a/resources/images/news/exiled.png b/recipes/icons/exiled.png similarity index 100% rename from resources/images/news/exiled.png rename to recipes/icons/exiled.png diff --git a/resources/images/news/expansion_spanish.png b/recipes/icons/expansion_spanish.png similarity index 100% rename from resources/images/news/expansion_spanish.png rename to recipes/icons/expansion_spanish.png diff --git a/resources/images/news/fastcompany.png b/recipes/icons/fastcompany.png similarity index 100% rename from resources/images/news/fastcompany.png rename to recipes/icons/fastcompany.png diff --git a/resources/images/news/faznet.png b/recipes/icons/faznet.png similarity index 100% rename from resources/images/news/faznet.png rename to recipes/icons/faznet.png diff --git a/resources/images/news/fe_india.png b/recipes/icons/fe_india.png similarity index 100% rename from resources/images/news/fe_india.png rename to recipes/icons/fe_india.png diff --git a/resources/images/news/felicia.png b/recipes/icons/felicia.png similarity index 100% rename from resources/images/news/felicia.png rename to recipes/icons/felicia.png diff --git a/resources/images/news/fhmro.png b/recipes/icons/fhmro.png similarity index 100% rename from resources/images/news/fhmro.png rename to recipes/icons/fhmro.png diff --git a/resources/images/news/financiarul.png b/recipes/icons/financiarul.png similarity index 100% rename from resources/images/news/financiarul.png rename to recipes/icons/financiarul.png diff --git a/resources/images/news/fleshbot.png b/recipes/icons/fleshbot.png similarity index 100% rename from resources/images/news/fleshbot.png rename to recipes/icons/fleshbot.png diff --git a/recipes/icons/folhadesaopaulo.png b/recipes/icons/folhadesaopaulo.png new file mode 100644 index 0000000000..c895e57d70 Binary files /dev/null and b/recipes/icons/folhadesaopaulo.png differ diff --git a/resources/images/news/foreignaffairs.png b/recipes/icons/foreignaffairs.png similarity index 100% rename from resources/images/news/foreignaffairs.png rename to recipes/icons/foreignaffairs.png diff --git a/resources/images/news/foxnews.png b/recipes/icons/foxnews.png similarity index 100% rename from resources/images/news/foxnews.png rename to recipes/icons/foxnews.png diff --git a/resources/images/news/frazpc.png b/recipes/icons/frazpc.png similarity index 100% rename from resources/images/news/frazpc.png rename to recipes/icons/frazpc.png diff --git a/resources/images/news/freakonomics.png b/recipes/icons/freakonomics.png similarity index 100% rename from resources/images/news/freakonomics.png rename to recipes/icons/freakonomics.png diff --git a/resources/images/news/fronda.png b/recipes/icons/fronda.png similarity index 100% rename from resources/images/news/fronda.png rename to recipes/icons/fronda.png diff --git a/resources/images/news/fstream.png b/recipes/icons/fstream.png similarity index 100% rename from resources/images/news/fstream.png rename to recipes/icons/fstream.png diff --git a/resources/images/news/ftd.png b/recipes/icons/ftd.png similarity index 100% rename from resources/images/news/ftd.png rename to recipes/icons/ftd.png diff --git a/resources/images/news/fudzilla.png b/recipes/icons/fudzilla.png similarity index 100% rename from resources/images/news/fudzilla.png rename to recipes/icons/fudzilla.png diff --git a/resources/images/news/futurismic.png b/recipes/icons/futurismic.png similarity index 100% rename from resources/images/news/futurismic.png rename to recipes/icons/futurismic.png diff --git a/resources/images/news/gamasutra_fa.png b/recipes/icons/gamasutra_fa.png similarity index 100% rename from resources/images/news/gamasutra_fa.png rename to recipes/icons/gamasutra_fa.png diff --git a/resources/images/news/gamasutra_news.png b/recipes/icons/gamasutra_news.png similarity index 100% rename from resources/images/news/gamasutra_news.png rename to recipes/icons/gamasutra_news.png diff --git a/resources/images/news/gandul.png b/recipes/icons/gandul.png similarity index 100% rename from resources/images/news/gandul.png rename to recipes/icons/gandul.png diff --git a/resources/images/news/gawker.png b/recipes/icons/gawker.png similarity index 100% rename from resources/images/news/gawker.png rename to recipes/icons/gawker.png diff --git a/resources/images/news/gazeta_pomorska.png b/recipes/icons/gazeta_pomorska.png similarity index 100% rename from resources/images/news/gazeta_pomorska.png rename to recipes/icons/gazeta_pomorska.png diff --git a/resources/images/news/gizmodo.png b/recipes/icons/gizmodo.png similarity index 100% rename from resources/images/news/gizmodo.png rename to recipes/icons/gizmodo.png diff --git a/resources/images/news/glas_srpske.png b/recipes/icons/glas_srpske.png similarity index 100% rename from resources/images/news/glas_srpske.png rename to recipes/icons/glas_srpske.png diff --git a/resources/images/news/glasjavnosti.png b/recipes/icons/glasjavnosti.png similarity index 100% rename from resources/images/news/glasjavnosti.png rename to recipes/icons/glasjavnosti.png diff --git a/resources/images/news/go4it.png b/recipes/icons/go4it.png similarity index 100% rename from resources/images/news/go4it.png rename to recipes/icons/go4it.png diff --git a/resources/images/news/granma.png b/recipes/icons/granma.png similarity index 100% rename from resources/images/news/granma.png rename to recipes/icons/granma.png diff --git a/resources/images/news/greensboro_news_and_record.png b/recipes/icons/greensboro_news_and_record.png similarity index 100% rename from resources/images/news/greensboro_news_and_record.png rename to recipes/icons/greensboro_news_and_record.png diff --git a/resources/images/news/gsp.png b/recipes/icons/gsp.png similarity index 100% rename from resources/images/news/gsp.png rename to recipes/icons/gsp.png diff --git a/resources/images/news/guardian.png b/recipes/icons/guardian.png similarity index 100% rename from resources/images/news/guardian.png rename to recipes/icons/guardian.png diff --git a/resources/images/news/gva_be.png b/recipes/icons/gva_be.png similarity index 100% rename from resources/images/news/gva_be.png rename to recipes/icons/gva_be.png diff --git a/resources/images/news/haaretz.png b/recipes/icons/haaretz.png similarity index 100% rename from resources/images/news/haaretz.png rename to recipes/icons/haaretz.png diff --git a/resources/images/news/haaretz_en.png b/recipes/icons/haaretz_en.png similarity index 100% rename from resources/images/news/haaretz_en.png rename to recipes/icons/haaretz_en.png diff --git a/resources/images/news/heise.png b/recipes/icons/heise.png similarity index 100% rename from resources/images/news/heise.png rename to recipes/icons/heise.png diff --git a/resources/images/news/historiaro.png b/recipes/icons/historiaro.png similarity index 100% rename from resources/images/news/historiaro.png rename to recipes/icons/historiaro.png diff --git a/resources/images/news/hitro.png b/recipes/icons/hitro.png similarity index 100% rename from resources/images/news/hitro.png rename to recipes/icons/hitro.png diff --git a/resources/images/news/hln.png b/recipes/icons/hln.png similarity index 100% rename from resources/images/news/hln.png rename to recipes/icons/hln.png diff --git a/resources/images/news/hln_be.png b/recipes/icons/hln_be.png similarity index 100% rename from resources/images/news/hln_be.png rename to recipes/icons/hln_be.png diff --git a/resources/images/news/hna.png b/recipes/icons/hna.png similarity index 100% rename from resources/images/news/hna.png rename to recipes/icons/hna.png diff --git a/resources/images/news/hotair.png b/recipes/icons/hotair.png similarity index 100% rename from resources/images/news/hotair.png rename to recipes/icons/hotair.png diff --git a/resources/images/news/hotcity.png b/recipes/icons/hotcity.png similarity index 100% rename from resources/images/news/hotcity.png rename to recipes/icons/hotcity.png diff --git a/resources/images/news/hotnews.png b/recipes/icons/hotnews.png similarity index 100% rename from resources/images/news/hotnews.png rename to recipes/icons/hotnews.png diff --git a/resources/images/news/houston_chronicle-2.png b/recipes/icons/houston_chronicle-2.png similarity index 100% rename from resources/images/news/houston_chronicle-2.png rename to recipes/icons/houston_chronicle-2.png diff --git a/resources/images/news/howtogeek.png b/recipes/icons/howtogeek.png similarity index 100% rename from resources/images/news/howtogeek.png rename to recipes/icons/howtogeek.png diff --git a/resources/images/news/hrt.png b/recipes/icons/hrt.png similarity index 100% rename from resources/images/news/hrt.png rename to recipes/icons/hrt.png diff --git a/resources/images/news/ieco.png b/recipes/icons/ieco.png similarity index 100% rename from resources/images/news/ieco.png rename to recipes/icons/ieco.png diff --git a/resources/images/news/imperatortravel.png b/recipes/icons/imperatortravel.png similarity index 100% rename from resources/images/news/imperatortravel.png rename to recipes/icons/imperatortravel.png diff --git a/resources/images/news/infobae.png b/recipes/icons/infobae.png similarity index 100% rename from resources/images/news/infobae.png rename to recipes/icons/infobae.png diff --git a/resources/images/news/information_dk.png b/recipes/icons/information_dk.png similarity index 100% rename from resources/images/news/information_dk.png rename to recipes/icons/information_dk.png diff --git a/resources/images/news/inquirer_net.png b/recipes/icons/inquirer_net.png similarity index 100% rename from resources/images/news/inquirer_net.png rename to recipes/icons/inquirer_net.png diff --git a/resources/images/news/instapaper.png b/recipes/icons/instapaper.png similarity index 100% rename from resources/images/news/instapaper.png rename to recipes/icons/instapaper.png diff --git a/resources/images/news/interia_fakty.png b/recipes/icons/interia_fakty.png similarity index 100% rename from resources/images/news/interia_fakty.png rename to recipes/icons/interia_fakty.png diff --git a/resources/images/news/interia_sport.png b/recipes/icons/interia_sport.png similarity index 100% rename from resources/images/news/interia_sport.png rename to recipes/icons/interia_sport.png diff --git a/resources/images/news/intrefete.png b/recipes/icons/intrefete.png similarity index 100% rename from resources/images/news/intrefete.png rename to recipes/icons/intrefete.png diff --git a/resources/images/news/io9.png b/recipes/icons/io9.png similarity index 100% rename from resources/images/news/io9.png rename to recipes/icons/io9.png diff --git a/resources/images/news/ionline_pt.png b/recipes/icons/ionline_pt.png similarity index 100% rename from resources/images/news/ionline_pt.png rename to recipes/icons/ionline_pt.png diff --git a/resources/images/news/izvestia.png b/recipes/icons/izvestia.png similarity index 100% rename from resources/images/news/izvestia.png rename to recipes/icons/izvestia.png diff --git a/resources/images/news/jalopnik.png b/recipes/icons/jalopnik.png similarity index 100% rename from resources/images/news/jalopnik.png rename to recipes/icons/jalopnik.png diff --git a/resources/images/news/jb_online.png b/recipes/icons/jb_online.png similarity index 100% rename from resources/images/news/jb_online.png rename to recipes/icons/jb_online.png diff --git a/resources/images/news/jezebel.png b/recipes/icons/jezebel.png similarity index 100% rename from resources/images/news/jezebel.png rename to recipes/icons/jezebel.png diff --git a/resources/images/news/jijinews.png b/recipes/icons/jijinews.png similarity index 100% rename from resources/images/news/jijinews.png rename to recipes/icons/jijinews.png diff --git a/resources/images/news/joelonsoftware.png b/recipes/icons/joelonsoftware.png similarity index 100% rename from resources/images/news/joelonsoftware.png rename to recipes/icons/joelonsoftware.png diff --git a/resources/images/news/joop.png b/recipes/icons/joop.png similarity index 100% rename from resources/images/news/joop.png rename to recipes/icons/joop.png diff --git a/resources/images/news/journalgazette.png b/recipes/icons/journalgazette.png similarity index 100% rename from resources/images/news/journalgazette.png rename to recipes/icons/journalgazette.png diff --git a/resources/images/news/jp_dk.png b/recipes/icons/jp_dk.png similarity index 100% rename from resources/images/news/jp_dk.png rename to recipes/icons/jp_dk.png diff --git a/resources/images/news/jpost.png b/recipes/icons/jpost.png similarity index 100% rename from resources/images/news/jpost.png rename to recipes/icons/jpost.png diff --git a/resources/images/news/jpost_fr.png b/recipes/icons/jpost_fr.png similarity index 100% rename from resources/images/news/jpost_fr.png rename to recipes/icons/jpost_fr.png diff --git a/resources/images/news/jurnalulnational.png b/recipes/icons/jurnalulnational.png similarity index 100% rename from resources/images/news/jurnalulnational.png rename to recipes/icons/jurnalulnational.png diff --git a/resources/images/news/jutarnji.png b/recipes/icons/jutarnji.png similarity index 100% rename from resources/images/news/jutarnji.png rename to recipes/icons/jutarnji.png diff --git a/resources/images/news/kamerabild.png b/recipes/icons/kamerabild.png similarity index 100% rename from resources/images/news/kamerabild.png rename to recipes/icons/kamerabild.png diff --git a/resources/images/news/kamikaze.png b/recipes/icons/kamikaze.png similarity index 100% rename from resources/images/news/kamikaze.png rename to recipes/icons/kamikaze.png diff --git a/resources/images/news/kitsapun.png b/recipes/icons/kitsapun.png similarity index 100% rename from resources/images/news/kitsapun.png rename to recipes/icons/kitsapun.png diff --git a/resources/images/news/kommersant.png b/recipes/icons/kommersant.png similarity index 100% rename from resources/images/news/kommersant.png rename to recipes/icons/kommersant.png diff --git a/resources/images/news/kompiutierra.png b/recipes/icons/kompiutierra.png similarity index 100% rename from resources/images/news/kompiutierra.png rename to recipes/icons/kompiutierra.png diff --git a/resources/images/news/kopalniawiedzy.png b/recipes/icons/kopalniawiedzy.png similarity index 100% rename from resources/images/news/kopalniawiedzy.png rename to recipes/icons/kopalniawiedzy.png diff --git a/resources/images/news/korespondent.png b/recipes/icons/korespondent.png similarity index 100% rename from resources/images/news/korespondent.png rename to recipes/icons/korespondent.png diff --git a/resources/images/news/kotaku.png b/recipes/icons/kotaku.png similarity index 100% rename from resources/images/news/kotaku.png rename to recipes/icons/kotaku.png diff --git a/resources/images/news/krstarica.png b/recipes/icons/krstarica.png similarity index 100% rename from resources/images/news/krstarica.png rename to recipes/icons/krstarica.png diff --git a/resources/images/news/krstarica_en.png b/recipes/icons/krstarica_en.png similarity index 100% rename from resources/images/news/krstarica_en.png rename to recipes/icons/krstarica_en.png diff --git a/resources/images/news/kstar.png b/recipes/icons/kstar.png similarity index 100% rename from resources/images/news/kstar.png rename to recipes/icons/kstar.png diff --git a/resources/images/news/kudika.png b/recipes/icons/kudika.png similarity index 100% rename from resources/images/news/kudika.png rename to recipes/icons/kudika.png diff --git a/resources/images/news/kurier.png b/recipes/icons/kurier.png similarity index 100% rename from resources/images/news/kurier.png rename to recipes/icons/kurier.png diff --git a/resources/images/news/la_cuarta.png b/recipes/icons/la_cuarta.png similarity index 100% rename from resources/images/news/la_cuarta.png rename to recipes/icons/la_cuarta.png diff --git a/resources/images/news/la_jornada.png b/recipes/icons/la_jornada.png similarity index 100% rename from resources/images/news/la_jornada.png rename to recipes/icons/la_jornada.png diff --git a/resources/images/news/la_razon_bo.png b/recipes/icons/la_razon_bo.png similarity index 100% rename from resources/images/news/la_razon_bo.png rename to recipes/icons/la_razon_bo.png diff --git a/resources/images/news/la_tercera.png b/recipes/icons/la_tercera.png similarity index 100% rename from resources/images/news/la_tercera.png rename to recipes/icons/la_tercera.png diff --git a/resources/images/news/lanacion.png b/recipes/icons/lanacion.png similarity index 100% rename from resources/images/news/lanacion.png rename to recipes/icons/lanacion.png diff --git a/resources/images/news/lanacion_chile.png b/recipes/icons/lanacion_chile.png similarity index 100% rename from resources/images/news/lanacion_chile.png rename to recipes/icons/lanacion_chile.png diff --git a/resources/images/news/laprensa_hn.png b/recipes/icons/laprensa_hn.png similarity index 100% rename from resources/images/news/laprensa_hn.png rename to recipes/icons/laprensa_hn.png diff --git a/resources/images/news/laprensa_ni.png b/recipes/icons/laprensa_ni.png similarity index 100% rename from resources/images/news/laprensa_ni.png rename to recipes/icons/laprensa_ni.png diff --git a/resources/images/news/latimes.png b/recipes/icons/latimes.png similarity index 100% rename from resources/images/news/latimes.png rename to recipes/icons/latimes.png diff --git a/resources/images/news/latribuna.png b/recipes/icons/latribuna.png similarity index 100% rename from resources/images/news/latribuna.png rename to recipes/icons/latribuna.png diff --git a/resources/images/news/le_monde.png b/recipes/icons/le_monde.png similarity index 100% rename from resources/images/news/le_monde.png rename to recipes/icons/le_monde.png diff --git a/resources/images/news/ledevoir.png b/recipes/icons/ledevoir.png similarity index 100% rename from resources/images/news/ledevoir.png rename to recipes/icons/ledevoir.png diff --git a/resources/images/news/legeartis.png b/recipes/icons/legeartis.png similarity index 100% rename from resources/images/news/legeartis.png rename to recipes/icons/legeartis.png diff --git a/resources/images/news/legitymizm.png b/recipes/icons/legitymizm.png similarity index 100% rename from resources/images/news/legitymizm.png rename to recipes/icons/legitymizm.png diff --git a/resources/images/news/lemonde_dip.png b/recipes/icons/lemonde_dip.png similarity index 100% rename from resources/images/news/lemonde_dip.png rename to recipes/icons/lemonde_dip.png diff --git a/resources/images/news/liberation.png b/recipes/icons/liberation.png similarity index 100% rename from resources/images/news/liberation.png rename to recipes/icons/liberation.png diff --git a/resources/images/news/lifehacker.png b/recipes/icons/lifehacker.png similarity index 100% rename from resources/images/news/lifehacker.png rename to recipes/icons/lifehacker.png diff --git a/resources/images/news/linux_magazine.png b/recipes/icons/linux_magazine.png similarity index 100% rename from resources/images/news/linux_magazine.png rename to recipes/icons/linux_magazine.png diff --git a/resources/images/news/linuxdevices.png b/recipes/icons/linuxdevices.png similarity index 100% rename from resources/images/news/linuxdevices.png rename to recipes/icons/linuxdevices.png diff --git a/resources/images/news/livemint.png b/recipes/icons/livemint.png similarity index 100% rename from resources/images/news/livemint.png rename to recipes/icons/livemint.png diff --git a/resources/images/news/los_tiempos_bo.png b/recipes/icons/los_tiempos_bo.png similarity index 100% rename from resources/images/news/los_tiempos_bo.png rename to recipes/icons/los_tiempos_bo.png diff --git a/resources/images/news/lrb.png b/recipes/icons/lrb.png similarity index 100% rename from resources/images/news/lrb.png rename to recipes/icons/lrb.png diff --git a/resources/images/news/lrb_payed.png b/recipes/icons/lrb_payed.png similarity index 100% rename from resources/images/news/lrb_payed.png rename to recipes/icons/lrb_payed.png diff --git a/resources/images/news/lwn.png b/recipes/icons/lwn.png similarity index 100% rename from resources/images/news/lwn.png rename to recipes/icons/lwn.png diff --git a/resources/images/news/lwn_weekly.png b/recipes/icons/lwn_weekly.png similarity index 100% rename from resources/images/news/lwn_weekly.png rename to recipes/icons/lwn_weekly.png diff --git a/resources/images/news/mainichi.png b/recipes/icons/mainichi.png similarity index 100% rename from resources/images/news/mainichi.png rename to recipes/icons/mainichi.png diff --git a/resources/images/news/mainichi_it_news.png b/recipes/icons/mainichi_it_news.png similarity index 100% rename from resources/images/news/mainichi_it_news.png rename to recipes/icons/mainichi_it_news.png diff --git a/resources/images/news/mediafax.png b/recipes/icons/mediafax.png similarity index 100% rename from resources/images/news/mediafax.png rename to recipes/icons/mediafax.png diff --git a/resources/images/news/miami_herald.png b/recipes/icons/miami_herald.png similarity index 100% rename from resources/images/news/miami_herald.png rename to recipes/icons/miami_herald.png diff --git a/resources/images/news/michalkiewicz.png b/recipes/icons/michalkiewicz.png similarity index 100% rename from resources/images/news/michalkiewicz.png rename to recipes/icons/michalkiewicz.png diff --git a/resources/images/news/michellemalkin_icon.png b/recipes/icons/michellemalkin_icon.png similarity index 100% rename from resources/images/news/michellemalkin_icon.png rename to recipes/icons/michellemalkin_icon.png diff --git a/resources/images/news/monden.png b/recipes/icons/monden.png similarity index 100% rename from resources/images/news/monden.png rename to recipes/icons/monden.png diff --git a/resources/images/news/moneyro.png b/recipes/icons/moneyro.png similarity index 100% rename from resources/images/news/moneyro.png rename to recipes/icons/moneyro.png diff --git a/resources/images/news/moscow_times.png b/recipes/icons/moscow_times.png similarity index 100% rename from resources/images/news/moscow_times.png rename to recipes/icons/moscow_times.png diff --git a/resources/images/news/motherjones.png b/recipes/icons/motherjones.png similarity index 100% rename from resources/images/news/motherjones.png rename to recipes/icons/motherjones.png diff --git a/resources/images/news/msdnmag_en.png b/recipes/icons/msdnmag_en.png similarity index 100% rename from resources/images/news/msdnmag_en.png rename to recipes/icons/msdnmag_en.png diff --git a/resources/images/news/msnbc.png b/recipes/icons/msnbc.png similarity index 100% rename from resources/images/news/msnbc.png rename to recipes/icons/msnbc.png diff --git a/resources/images/news/msnsankei.png b/recipes/icons/msnsankei.png similarity index 100% rename from resources/images/news/msnsankei.png rename to recipes/icons/msnsankei.png diff --git a/resources/images/news/nacional_cro.png b/recipes/icons/nacional_cro.png similarity index 100% rename from resources/images/news/nacional_cro.png rename to recipes/icons/nacional_cro.png diff --git a/resources/images/news/nasa.png b/recipes/icons/nasa.png similarity index 100% rename from resources/images/news/nasa.png rename to recipes/icons/nasa.png diff --git a/resources/images/news/nationalgeoro.png b/recipes/icons/nationalgeoro.png similarity index 100% rename from resources/images/news/nationalgeoro.png rename to recipes/icons/nationalgeoro.png diff --git a/resources/images/news/nationalreviewonline.png b/recipes/icons/nationalreviewonline.png similarity index 100% rename from resources/images/news/nationalreviewonline.png rename to recipes/icons/nationalreviewonline.png diff --git a/resources/images/news/neowin.png b/recipes/icons/neowin.png similarity index 100% rename from resources/images/news/neowin.png rename to recipes/icons/neowin.png diff --git a/resources/images/news/new_yorker.png b/recipes/icons/new_yorker.png similarity index 100% rename from resources/images/news/new_yorker.png rename to recipes/icons/new_yorker.png diff --git a/resources/images/news/newsstraitstimes.png b/recipes/icons/newsstraitstimes.png similarity index 100% rename from resources/images/news/newsstraitstimes.png rename to recipes/icons/newsstraitstimes.png diff --git a/resources/images/news/newsweek.png b/recipes/icons/newsweek.png similarity index 100% rename from resources/images/news/newsweek.png rename to recipes/icons/newsweek.png diff --git a/resources/images/news/nikkei_free.png b/recipes/icons/nikkei_free.png similarity index 100% rename from resources/images/news/nikkei_free.png rename to recipes/icons/nikkei_free.png diff --git a/resources/images/news/nikkei_sub.png b/recipes/icons/nikkei_sub.png similarity index 100% rename from resources/images/news/nikkei_sub.png rename to recipes/icons/nikkei_sub.png diff --git a/resources/images/news/nikkei_sub_economy.png b/recipes/icons/nikkei_sub_economy.png similarity index 100% rename from resources/images/news/nikkei_sub_economy.png rename to recipes/icons/nikkei_sub_economy.png diff --git a/resources/images/news/nikkei_sub_industry.png b/recipes/icons/nikkei_sub_industry.png similarity index 100% rename from resources/images/news/nikkei_sub_industry.png rename to recipes/icons/nikkei_sub_industry.png diff --git a/resources/images/news/nikkei_sub_life.png b/recipes/icons/nikkei_sub_life.png similarity index 100% rename from resources/images/news/nikkei_sub_life.png rename to recipes/icons/nikkei_sub_life.png diff --git a/resources/images/news/nikkei_sub_main.png b/recipes/icons/nikkei_sub_main.png similarity index 100% rename from resources/images/news/nikkei_sub_main.png rename to recipes/icons/nikkei_sub_main.png diff --git a/resources/images/news/nikkei_sub_sports.png b/recipes/icons/nikkei_sub_sports.png similarity index 100% rename from resources/images/news/nikkei_sub_sports.png rename to recipes/icons/nikkei_sub_sports.png diff --git a/resources/images/news/njuz_net.png b/recipes/icons/njuz_net.png similarity index 100% rename from resources/images/news/njuz_net.png rename to recipes/icons/njuz_net.png diff --git a/resources/images/news/noaa.png b/recipes/icons/noaa.png similarity index 100% rename from resources/images/news/noaa.png rename to recipes/icons/noaa.png diff --git a/resources/images/news/novaya_gazeta.png b/recipes/icons/novaya_gazeta.png similarity index 100% rename from resources/images/news/novaya_gazeta.png rename to recipes/icons/novaya_gazeta.png diff --git a/resources/images/news/novosti.png b/recipes/icons/novosti.png similarity index 100% rename from resources/images/news/novosti.png rename to recipes/icons/novosti.png diff --git a/resources/images/news/nrc.nl.png b/recipes/icons/nrc.nl.png similarity index 100% rename from resources/images/news/nrc.nl.png rename to recipes/icons/nrc.nl.png diff --git a/resources/images/news/nrcnext.png b/recipes/icons/nrcnext.png similarity index 100% rename from resources/images/news/nrcnext.png rename to recipes/icons/nrcnext.png diff --git a/resources/images/news/nspm.png b/recipes/icons/nspm.png similarity index 100% rename from resources/images/news/nspm.png rename to recipes/icons/nspm.png diff --git a/resources/images/news/nspm_int.png b/recipes/icons/nspm_int.png similarity index 100% rename from resources/images/news/nspm_int.png rename to recipes/icons/nspm_int.png diff --git a/resources/images/news/nursingtimes.png b/recipes/icons/nursingtimes.png similarity index 100% rename from resources/images/news/nursingtimes.png rename to recipes/icons/nursingtimes.png diff --git a/resources/images/news/nypost.png b/recipes/icons/nypost.png similarity index 100% rename from resources/images/news/nypost.png rename to recipes/icons/nypost.png diff --git a/resources/images/news/nytimes.png b/recipes/icons/nytimes.png similarity index 100% rename from resources/images/news/nytimes.png rename to recipes/icons/nytimes.png diff --git a/resources/images/news/nytimes_sports.png b/recipes/icons/nytimes_sports.png similarity index 100% rename from resources/images/news/nytimes_sports.png rename to recipes/icons/nytimes_sports.png diff --git a/resources/images/news/nytimes_sub.png b/recipes/icons/nytimes_sub.png similarity index 100% rename from resources/images/news/nytimes_sub.png rename to recipes/icons/nytimes_sub.png diff --git a/resources/images/news/nytimes_tech.png b/recipes/icons/nytimes_tech.png similarity index 100% rename from resources/images/news/nytimes_tech.png rename to recipes/icons/nytimes_tech.png diff --git a/resources/images/news/nzz_ger.png b/recipes/icons/nzz_ger.png similarity index 100% rename from resources/images/news/nzz_ger.png rename to recipes/icons/nzz_ger.png diff --git a/resources/images/news/o_globo.png b/recipes/icons/o_globo.png similarity index 100% rename from resources/images/news/o_globo.png rename to recipes/icons/o_globo.png diff --git a/resources/images/news/observer.png b/recipes/icons/observer.png similarity index 100% rename from resources/images/news/observer.png rename to recipes/icons/observer.png diff --git a/resources/images/news/oldnewthing.png b/recipes/icons/oldnewthing.png similarity index 100% rename from resources/images/news/oldnewthing.png rename to recipes/icons/oldnewthing.png diff --git a/resources/images/news/onemagazine.png b/recipes/icons/onemagazine.png similarity index 100% rename from resources/images/news/onemagazine.png rename to recipes/icons/onemagazine.png diff --git a/resources/images/news/orsai.png b/recipes/icons/orsai.png similarity index 100% rename from resources/images/news/orsai.png rename to recipes/icons/orsai.png diff --git a/resources/images/news/ourdailybread.png b/recipes/icons/ourdailybread.png similarity index 100% rename from resources/images/news/ourdailybread.png rename to recipes/icons/ourdailybread.png diff --git a/resources/images/news/pagina12.png b/recipes/icons/pagina12.png similarity index 100% rename from resources/images/news/pagina12.png rename to recipes/icons/pagina12.png diff --git a/resources/images/news/pcworldro.png b/recipes/icons/pcworldro.png similarity index 100% rename from resources/images/news/pcworldro.png rename to recipes/icons/pcworldro.png diff --git a/resources/images/news/perfil.png b/recipes/icons/perfil.png similarity index 100% rename from resources/images/news/perfil.png rename to recipes/icons/perfil.png diff --git a/resources/images/news/pescanik.png b/recipes/icons/pescanik.png similarity index 100% rename from resources/images/news/pescanik.png rename to recipes/icons/pescanik.png diff --git a/resources/images/news/pobjeda.png b/recipes/icons/pobjeda.png similarity index 100% rename from resources/images/news/pobjeda.png rename to recipes/icons/pobjeda.png diff --git a/resources/images/news/politico.png b/recipes/icons/politico.png similarity index 100% rename from resources/images/news/politico.png rename to recipes/icons/politico.png diff --git a/resources/images/news/politika.png b/recipes/icons/politika.png similarity index 100% rename from resources/images/news/politika.png rename to recipes/icons/politika.png diff --git a/resources/images/news/politiken_dk.png b/recipes/icons/politiken_dk.png similarity index 100% rename from resources/images/news/politiken_dk.png rename to recipes/icons/politiken_dk.png diff --git a/resources/images/news/popscience.png b/recipes/icons/popscience.png similarity index 100% rename from resources/images/news/popscience.png rename to recipes/icons/popscience.png diff --git a/resources/images/news/portfolio.png b/recipes/icons/portfolio.png similarity index 100% rename from resources/images/news/portfolio.png rename to recipes/icons/portfolio.png diff --git a/resources/images/news/praguemonitor.png b/recipes/icons/praguemonitor.png similarity index 100% rename from resources/images/news/praguemonitor.png rename to recipes/icons/praguemonitor.png diff --git a/resources/images/news/pressonline.png b/recipes/icons/pressonline.png similarity index 100% rename from resources/images/news/pressonline.png rename to recipes/icons/pressonline.png diff --git a/resources/images/news/pressthink.png b/recipes/icons/pressthink.png similarity index 100% rename from resources/images/news/pressthink.png rename to recipes/icons/pressthink.png diff --git a/resources/images/news/promotor.png b/recipes/icons/promotor.png similarity index 100% rename from resources/images/news/promotor.png rename to recipes/icons/promotor.png diff --git a/resources/images/news/propublica.png b/recipes/icons/propublica.png similarity index 100% rename from resources/images/news/propublica.png rename to recipes/icons/propublica.png diff --git a/resources/images/news/prosport.png b/recipes/icons/prosport.png similarity index 100% rename from resources/images/news/prosport.png rename to recipes/icons/prosport.png diff --git a/recipes/icons/prostamerika.png b/recipes/icons/prostamerika.png new file mode 100644 index 0000000000..f88c846bed Binary files /dev/null and b/recipes/icons/prostamerika.png differ diff --git a/resources/images/news/protvmagazin.png b/recipes/icons/protvmagazin.png similarity index 100% rename from resources/images/news/protvmagazin.png rename to recipes/icons/protvmagazin.png diff --git a/resources/images/news/psychologies.png b/recipes/icons/psychologies.png similarity index 100% rename from resources/images/news/psychologies.png rename to recipes/icons/psychologies.png diff --git a/resources/images/news/publika.png b/recipes/icons/publika.png similarity index 100% rename from resources/images/news/publika.png rename to recipes/icons/publika.png diff --git a/resources/images/news/radikal_tr.png b/recipes/icons/radikal_tr.png similarity index 100% rename from resources/images/news/radikal_tr.png rename to recipes/icons/radikal_tr.png diff --git a/resources/images/news/rbc_ru.png b/recipes/icons/rbc_ru.png similarity index 100% rename from resources/images/news/rbc_ru.png rename to recipes/icons/rbc_ru.png diff --git a/resources/images/news/readitlater.png b/recipes/icons/readitlater.png similarity index 100% rename from resources/images/news/readitlater.png rename to recipes/icons/readitlater.png diff --git a/resources/images/news/realitatea.png b/recipes/icons/realitatea.png similarity index 100% rename from resources/images/news/realitatea.png rename to recipes/icons/realitatea.png diff --git a/resources/images/news/reuters.png b/recipes/icons/reuters.png similarity index 100% rename from resources/images/news/reuters.png rename to recipes/icons/reuters.png diff --git a/resources/images/news/reuters_ja.png b/recipes/icons/reuters_ja.png similarity index 100% rename from resources/images/news/reuters_ja.png rename to recipes/icons/reuters_ja.png diff --git a/resources/images/news/ria_ru.png b/recipes/icons/ria_ru.png similarity index 100% rename from resources/images/news/ria_ru.png rename to recipes/icons/ria_ru.png diff --git a/resources/images/news/rmf24_ESKN.png b/recipes/icons/rmf24_ESKN.png similarity index 100% rename from resources/images/news/rmf24_ESKN.png rename to recipes/icons/rmf24_ESKN.png diff --git a/resources/images/news/rmf24_fakty.png b/recipes/icons/rmf24_fakty.png similarity index 100% rename from resources/images/news/rmf24_fakty.png rename to recipes/icons/rmf24_fakty.png diff --git a/resources/images/news/rollingstone.png b/recipes/icons/rollingstone.png similarity index 100% rename from resources/images/news/rollingstone.png rename to recipes/icons/rollingstone.png diff --git a/resources/images/news/romanialibera.png b/recipes/icons/romanialibera.png similarity index 100% rename from resources/images/news/romanialibera.png rename to recipes/icons/romanialibera.png diff --git a/resources/images/news/rstones.png b/recipes/icons/rstones.png similarity index 100% rename from resources/images/news/rstones.png rename to recipes/icons/rstones.png diff --git a/resources/images/news/rts.png b/recipes/icons/rts.png similarity index 100% rename from resources/images/news/rts.png rename to recipes/icons/rts.png diff --git a/resources/images/news/rusiahoy.png b/recipes/icons/rusiahoy.png similarity index 100% rename from resources/images/news/rusiahoy.png rename to recipes/icons/rusiahoy.png diff --git a/resources/images/news/sanjosemercurynews.png b/recipes/icons/sanjosemercurynews.png similarity index 100% rename from resources/images/news/sanjosemercurynews.png rename to recipes/icons/sanjosemercurynews.png diff --git a/resources/images/news/sarajevo_x.png b/recipes/icons/sarajevo_x.png similarity index 100% rename from resources/images/news/sarajevo_x.png rename to recipes/icons/sarajevo_x.png diff --git a/recipes/icons/sb_nation.png b/recipes/icons/sb_nation.png new file mode 100644 index 0000000000..9d82e492de Binary files /dev/null and b/recipes/icons/sb_nation.png differ diff --git a/resources/images/news/science_news_recent_issues.png b/recipes/icons/science_news_recent_issues.png similarity index 100% rename from resources/images/news/science_news_recent_issues.png rename to recipes/icons/science_news_recent_issues.png diff --git a/resources/images/news/sciencedaily.png b/recipes/icons/sciencedaily.png similarity index 100% rename from resources/images/news/sciencedaily.png rename to recipes/icons/sciencedaily.png diff --git a/resources/images/news/scott_hanselman.png b/recipes/icons/scott_hanselman.png similarity index 100% rename from resources/images/news/scott_hanselman.png rename to recipes/icons/scott_hanselman.png diff --git a/resources/images/news/seattle_times.png b/recipes/icons/seattle_times.png similarity index 100% rename from resources/images/news/seattle_times.png rename to recipes/icons/seattle_times.png diff --git a/resources/images/news/security_watch.png b/recipes/icons/security_watch.png similarity index 100% rename from resources/images/news/security_watch.png rename to recipes/icons/security_watch.png diff --git a/resources/images/news/sfin.png b/recipes/icons/sfin.png similarity index 100% rename from resources/images/news/sfin.png rename to recipes/icons/sfin.png diff --git a/resources/images/news/siol.png b/recipes/icons/siol.png similarity index 100% rename from resources/images/news/siol.png rename to recipes/icons/siol.png diff --git a/resources/images/news/smashing.png b/recipes/icons/smashing.png similarity index 100% rename from resources/images/news/smashing.png rename to recipes/icons/smashing.png diff --git a/resources/images/news/smh.png b/recipes/icons/smh.png similarity index 100% rename from resources/images/news/smh.png rename to recipes/icons/smh.png diff --git a/resources/images/news/soldiers.png b/recipes/icons/soldiers.png similarity index 100% rename from resources/images/news/soldiers.png rename to recipes/icons/soldiers.png diff --git a/resources/images/news/spiegel_int.png b/recipes/icons/spiegel_int.png similarity index 100% rename from resources/images/news/spiegel_int.png rename to recipes/icons/spiegel_int.png diff --git a/resources/images/news/spiegelde.png b/recipes/icons/spiegelde.png similarity index 100% rename from resources/images/news/spiegelde.png rename to recipes/icons/spiegelde.png diff --git a/resources/images/news/stackoverflow.png b/recipes/icons/stackoverflow.png similarity index 100% rename from resources/images/news/stackoverflow.png rename to recipes/icons/stackoverflow.png diff --git a/resources/images/news/standardmoney.png b/recipes/icons/standardmoney.png similarity index 100% rename from resources/images/news/standardmoney.png rename to recipes/icons/standardmoney.png diff --git a/resources/images/news/staradvertiser.png b/recipes/icons/staradvertiser.png similarity index 100% rename from resources/images/news/staradvertiser.png rename to recipes/icons/staradvertiser.png diff --git a/resources/images/news/straitstimes.png b/recipes/icons/straitstimes.png similarity index 100% rename from resources/images/news/straitstimes.png rename to recipes/icons/straitstimes.png diff --git a/resources/images/news/sueddeutsche.png b/recipes/icons/sueddeutsche.png similarity index 100% rename from resources/images/news/sueddeutsche.png rename to recipes/icons/sueddeutsche.png diff --git a/resources/images/news/sueddeutschezeitung.png b/recipes/icons/sueddeutschezeitung.png similarity index 100% rename from resources/images/news/sueddeutschezeitung.png rename to recipes/icons/sueddeutschezeitung.png diff --git a/resources/images/news/superbebe.png b/recipes/icons/superbebe.png similarity index 100% rename from resources/images/news/superbebe.png rename to recipes/icons/superbebe.png diff --git a/resources/images/news/svd_se.png b/recipes/icons/svd_se.png similarity index 100% rename from resources/images/news/svd_se.png rename to recipes/icons/svd_se.png diff --git a/resources/images/news/tabu.png b/recipes/icons/tabu.png similarity index 100% rename from resources/images/news/tabu.png rename to recipes/icons/tabu.png diff --git a/resources/images/news/tanjug.png b/recipes/icons/tanjug.png similarity index 100% rename from resources/images/news/tanjug.png rename to recipes/icons/tanjug.png diff --git a/resources/images/news/telegraph_uk.png b/recipes/icons/telegraph_uk.png similarity index 100% rename from resources/images/news/telegraph_uk.png rename to recipes/icons/telegraph_uk.png diff --git a/resources/images/news/telepolis.png b/recipes/icons/telepolis.png similarity index 100% rename from resources/images/news/telepolis.png rename to recipes/icons/telepolis.png diff --git a/resources/images/news/telepolis_artikel.png b/recipes/icons/telepolis_artikel.png similarity index 100% rename from resources/images/news/telepolis_artikel.png rename to recipes/icons/telepolis_artikel.png diff --git a/resources/images/news/teleread.png b/recipes/icons/teleread.png similarity index 100% rename from resources/images/news/teleread.png rename to recipes/icons/teleread.png diff --git a/resources/images/news/the_oz.png b/recipes/icons/the_oz.png similarity index 100% rename from resources/images/news/the_oz.png rename to recipes/icons/the_oz.png diff --git a/resources/images/news/the_week_magazine_free.png b/recipes/icons/the_week_magazine_free.png similarity index 100% rename from resources/images/news/the_week_magazine_free.png rename to recipes/icons/the_week_magazine_free.png diff --git a/resources/images/news/the_workingham_times.png b/recipes/icons/the_workingham_times.png similarity index 100% rename from resources/images/news/the_workingham_times.png rename to recipes/icons/the_workingham_times.png diff --git a/resources/images/news/theecocolapse.png b/recipes/icons/theecocolapse.png similarity index 100% rename from resources/images/news/theecocolapse.png rename to recipes/icons/theecocolapse.png diff --git a/resources/images/news/theeconomictimes_india.png b/recipes/icons/theeconomictimes_india.png similarity index 100% rename from resources/images/news/theeconomictimes_india.png rename to recipes/icons/theeconomictimes_india.png diff --git a/resources/images/news/theluminouslandscape.png b/recipes/icons/theluminouslandscape.png similarity index 100% rename from resources/images/news/theluminouslandscape.png rename to recipes/icons/theluminouslandscape.png diff --git a/resources/images/news/themarketticker.png b/recipes/icons/themarketticker.png similarity index 100% rename from resources/images/news/themarketticker.png rename to recipes/icons/themarketticker.png diff --git a/resources/images/news/theonion.png b/recipes/icons/theonion.png similarity index 100% rename from resources/images/news/theonion.png rename to recipes/icons/theonion.png diff --git a/resources/images/news/thestar.png b/recipes/icons/thestar.png similarity index 100% rename from resources/images/news/thestar.png rename to recipes/icons/thestar.png diff --git a/resources/images/news/thewest_au.png b/recipes/icons/thewest_au.png similarity index 100% rename from resources/images/news/thewest_au.png rename to recipes/icons/thewest_au.png diff --git a/resources/images/news/tidbits.png b/recipes/icons/tidbits.png similarity index 100% rename from resources/images/news/tidbits.png rename to recipes/icons/tidbits.png diff --git a/resources/images/news/tijd.png b/recipes/icons/tijd.png similarity index 100% rename from resources/images/news/tijd.png rename to recipes/icons/tijd.png diff --git a/resources/images/news/time_magazine.png b/recipes/icons/time_magazine.png similarity index 100% rename from resources/images/news/time_magazine.png rename to recipes/icons/time_magazine.png diff --git a/resources/images/news/times_online.png b/recipes/icons/times_online.png similarity index 100% rename from resources/images/news/times_online.png rename to recipes/icons/times_online.png diff --git a/resources/images/news/timesnewroman.png b/recipes/icons/timesnewroman.png similarity index 100% rename from resources/images/news/timesnewroman.png rename to recipes/icons/timesnewroman.png diff --git a/resources/images/news/tomshardware.png b/recipes/icons/tomshardware.png similarity index 100% rename from resources/images/news/tomshardware.png rename to recipes/icons/tomshardware.png diff --git a/resources/images/news/tomshardware_de.png b/recipes/icons/tomshardware_de.png similarity index 100% rename from resources/images/news/tomshardware_de.png rename to recipes/icons/tomshardware_de.png diff --git a/resources/images/news/toronto_sun.png b/recipes/icons/toronto_sun.png similarity index 100% rename from resources/images/news/toronto_sun.png rename to recipes/icons/toronto_sun.png diff --git a/resources/images/news/tpm_uk.png b/recipes/icons/tpm_uk.png similarity index 100% rename from resources/images/news/tpm_uk.png rename to recipes/icons/tpm_uk.png diff --git a/resources/images/news/trombon.png b/recipes/icons/trombon.png similarity index 100% rename from resources/images/news/trombon.png rename to recipes/icons/trombon.png diff --git a/resources/images/news/tulsaworld.png b/recipes/icons/tulsaworld.png similarity index 100% rename from resources/images/news/tulsaworld.png rename to recipes/icons/tulsaworld.png diff --git a/resources/images/news/tvmania.png b/recipes/icons/tvmania.png similarity index 100% rename from resources/images/news/tvmania.png rename to recipes/icons/tvmania.png diff --git a/resources/images/news/ultimahora.png b/recipes/icons/ultimahora.png similarity index 100% rename from resources/images/news/ultimahora.png rename to recipes/icons/ultimahora.png diff --git a/resources/images/news/uncrate.png b/recipes/icons/uncrate.png similarity index 100% rename from resources/images/news/uncrate.png rename to recipes/icons/uncrate.png diff --git a/resources/images/news/unica.png b/recipes/icons/unica.png similarity index 100% rename from resources/images/news/unica.png rename to recipes/icons/unica.png diff --git a/resources/images/news/usnews.png b/recipes/icons/usnews.png similarity index 100% rename from resources/images/news/usnews.png rename to recipes/icons/usnews.png diff --git a/resources/images/news/utne.png b/recipes/icons/utne.png similarity index 100% rename from resources/images/news/utne.png rename to recipes/icons/utne.png diff --git a/resources/images/news/variety.png b/recipes/icons/variety.png similarity index 100% rename from resources/images/news/variety.png rename to recipes/icons/variety.png diff --git a/resources/images/news/vecernji_list.png b/recipes/icons/vecernji_list.png similarity index 100% rename from resources/images/news/vecernji_list.png rename to recipes/icons/vecernji_list.png diff --git a/resources/images/news/vedomosti.png b/recipes/icons/vedomosti.png similarity index 100% rename from resources/images/news/vedomosti.png rename to recipes/icons/vedomosti.png diff --git a/resources/images/news/vijesti.png b/recipes/icons/vijesti.png similarity index 100% rename from resources/images/news/vijesti.png rename to recipes/icons/vijesti.png diff --git a/resources/images/news/virtualshackles.png b/recipes/icons/virtualshackles.png similarity index 100% rename from resources/images/news/virtualshackles.png rename to recipes/icons/virtualshackles.png diff --git a/resources/images/news/viva.png b/recipes/icons/viva.png similarity index 100% rename from resources/images/news/viva.png rename to recipes/icons/viva.png diff --git a/resources/images/news/vreme.png b/recipes/icons/vreme.png similarity index 100% rename from resources/images/news/vreme.png rename to recipes/icons/vreme.png diff --git a/resources/images/news/wallstreetro.png b/recipes/icons/wallstreetro.png similarity index 100% rename from resources/images/news/wallstreetro.png rename to recipes/icons/wallstreetro.png diff --git a/resources/images/news/walrusmag.png b/recipes/icons/walrusmag.png similarity index 100% rename from resources/images/news/walrusmag.png rename to recipes/icons/walrusmag.png diff --git a/resources/images/news/wapo_cartoons.png b/recipes/icons/wapo_cartoons.png similarity index 100% rename from resources/images/news/wapo_cartoons.png rename to recipes/icons/wapo_cartoons.png diff --git a/resources/images/news/welt.png b/recipes/icons/welt.png similarity index 100% rename from resources/images/news/welt.png rename to recipes/icons/welt.png diff --git a/resources/images/news/wikinews_en.png b/recipes/icons/wikinews_en.png similarity index 100% rename from resources/images/news/wikinews_en.png rename to recipes/icons/wikinews_en.png diff --git a/resources/images/news/wired.png b/recipes/icons/wired.png similarity index 100% rename from resources/images/news/wired.png rename to recipes/icons/wired.png diff --git a/resources/images/news/wired_uk.png b/recipes/icons/wired_uk.png similarity index 100% rename from resources/images/news/wired_uk.png rename to recipes/icons/wired_uk.png diff --git a/resources/images/news/wsj.png b/recipes/icons/wsj.png similarity index 100% rename from resources/images/news/wsj.png rename to recipes/icons/wsj.png diff --git a/recipes/icons/wvhooligan.png b/recipes/icons/wvhooligan.png new file mode 100644 index 0000000000..81a59118c9 Binary files /dev/null and b/recipes/icons/wvhooligan.png differ diff --git a/resources/images/news/yomiuri.png b/recipes/icons/yomiuri.png similarity index 100% rename from resources/images/news/yomiuri.png rename to recipes/icons/yomiuri.png diff --git a/resources/images/news/zdnet.png b/recipes/icons/zdnet.png similarity index 100% rename from resources/images/news/zdnet.png rename to recipes/icons/zdnet.png diff --git a/resources/images/news/zeitde.png b/recipes/icons/zeitde.png similarity index 100% rename from resources/images/news/zeitde.png rename to recipes/icons/zeitde.png diff --git a/resources/images/news/zerohedge.png b/recipes/icons/zerohedge.png similarity index 100% rename from resources/images/news/zerohedge.png rename to recipes/icons/zerohedge.png diff --git a/resources/images/news/ziarulfinanciar.png b/recipes/icons/ziarulfinanciar.png similarity index 100% rename from resources/images/news/ziarulfinanciar.png rename to recipes/icons/ziarulfinanciar.png diff --git a/resources/recipes/idnes.recipe b/recipes/idnes.recipe similarity index 100% rename from resources/recipes/idnes.recipe rename to recipes/idnes.recipe diff --git a/resources/recipes/ieco.recipe b/recipes/ieco.recipe similarity index 100% rename from resources/recipes/ieco.recipe rename to recipes/ieco.recipe diff --git a/resources/recipes/ieeespectrum.recipe b/recipes/ieeespectrum.recipe similarity index 100% rename from resources/recipes/ieeespectrum.recipe rename to recipes/ieeespectrum.recipe diff --git a/resources/recipes/ifzm.recipe b/recipes/ifzm.recipe similarity index 100% rename from resources/recipes/ifzm.recipe rename to recipes/ifzm.recipe diff --git a/resources/recipes/ihned.recipe b/recipes/ihned.recipe similarity index 100% rename from resources/recipes/ihned.recipe rename to recipes/ihned.recipe diff --git a/resources/recipes/iht.recipe b/recipes/iht.recipe similarity index 100% rename from resources/recipes/iht.recipe rename to recipes/iht.recipe diff --git a/resources/recipes/il_fatto.recipe b/recipes/il_fatto.recipe similarity index 100% rename from resources/recipes/il_fatto.recipe rename to recipes/il_fatto.recipe diff --git a/resources/recipes/il_giornale.recipe b/recipes/il_giornale.recipe similarity index 100% rename from resources/recipes/il_giornale.recipe rename to recipes/il_giornale.recipe diff --git a/resources/recipes/il_messaggero.recipe b/recipes/il_messaggero.recipe similarity index 100% rename from resources/recipes/il_messaggero.recipe rename to recipes/il_messaggero.recipe diff --git a/resources/recipes/iliteratura_cz.recipe b/recipes/iliteratura_cz.recipe similarity index 100% rename from resources/recipes/iliteratura_cz.recipe rename to recipes/iliteratura_cz.recipe diff --git a/resources/recipes/ilsole24ore.recipe b/recipes/ilsole24ore.recipe similarity index 100% rename from resources/recipes/ilsole24ore.recipe rename to recipes/ilsole24ore.recipe diff --git a/resources/recipes/imperatortravel.recipe b/recipes/imperatortravel.recipe similarity index 100% rename from resources/recipes/imperatortravel.recipe rename to recipes/imperatortravel.recipe diff --git a/resources/recipes/inc.recipe b/recipes/inc.recipe similarity index 100% rename from resources/recipes/inc.recipe rename to recipes/inc.recipe diff --git a/resources/recipes/independent.recipe b/recipes/independent.recipe similarity index 100% rename from resources/recipes/independent.recipe rename to recipes/independent.recipe diff --git a/resources/recipes/index_hu.recipe b/recipes/index_hu.recipe similarity index 100% rename from resources/recipes/index_hu.recipe rename to recipes/index_hu.recipe diff --git a/resources/recipes/india_today.recipe b/recipes/india_today.recipe similarity index 100% rename from resources/recipes/india_today.recipe rename to recipes/india_today.recipe diff --git a/resources/recipes/indian_express.recipe b/recipes/indian_express.recipe similarity index 100% rename from resources/recipes/indian_express.recipe rename to recipes/indian_express.recipe diff --git a/resources/recipes/indy_star.recipe b/recipes/indy_star.recipe similarity index 100% rename from resources/recipes/indy_star.recipe rename to recipes/indy_star.recipe diff --git a/resources/recipes/infobae.recipe b/recipes/infobae.recipe similarity index 100% rename from resources/recipes/infobae.recipe rename to recipes/infobae.recipe diff --git a/resources/recipes/infomotori.recipe b/recipes/infomotori.recipe similarity index 100% rename from resources/recipes/infomotori.recipe rename to recipes/infomotori.recipe diff --git a/resources/recipes/information_dk.recipe b/recipes/information_dk.recipe similarity index 100% rename from resources/recipes/information_dk.recipe rename to recipes/information_dk.recipe diff --git a/resources/recipes/infoworld.recipe b/recipes/infoworld.recipe similarity index 100% rename from resources/recipes/infoworld.recipe rename to recipes/infoworld.recipe diff --git a/resources/recipes/inquirer_net.recipe b/recipes/inquirer_net.recipe similarity index 100% rename from resources/recipes/inquirer_net.recipe rename to recipes/inquirer_net.recipe diff --git a/resources/recipes/instapaper.recipe b/recipes/instapaper.recipe similarity index 100% rename from resources/recipes/instapaper.recipe rename to recipes/instapaper.recipe diff --git a/resources/recipes/intelligencer.recipe b/recipes/intelligencer.recipe similarity index 100% rename from resources/recipes/intelligencer.recipe rename to recipes/intelligencer.recipe diff --git a/resources/recipes/interia_fakty.recipe b/recipes/interia_fakty.recipe similarity index 100% rename from resources/recipes/interia_fakty.recipe rename to recipes/interia_fakty.recipe diff --git a/resources/recipes/interia_sport.recipe b/recipes/interia_sport.recipe similarity index 100% rename from resources/recipes/interia_sport.recipe rename to recipes/interia_sport.recipe diff --git a/resources/recipes/intrefete.recipe b/recipes/intrefete.recipe similarity index 100% rename from resources/recipes/intrefete.recipe rename to recipes/intrefete.recipe diff --git a/resources/recipes/io9.recipe b/recipes/io9.recipe similarity index 100% rename from resources/recipes/io9.recipe rename to recipes/io9.recipe diff --git a/resources/recipes/ionline_pt.recipe b/recipes/ionline_pt.recipe similarity index 100% rename from resources/recipes/ionline_pt.recipe rename to recipes/ionline_pt.recipe diff --git a/resources/recipes/irish_independent.recipe b/recipes/irish_independent.recipe similarity index 100% rename from resources/recipes/irish_independent.recipe rename to recipes/irish_independent.recipe diff --git a/recipes/irish_times.recipe b/recipes/irish_times.recipe new file mode 100644 index 0000000000..1434a25725 --- /dev/null +++ b/recipes/irish_times.recipe @@ -0,0 +1,61 @@ +__license__ = 'GPL v3' +__copyright__ = "2008, Derry FitzGerald. 2009 Modified by Ray Kinsella and David O'Callaghan, 2011 Modified by Phil Burns" +''' +irishtimes.com +''' +import re + +from calibre.web.feeds.news import BasicNewsRecipe + +class IrishTimes(BasicNewsRecipe): + title = u'The Irish Times' + encoding = 'ISO-8859-15' + __author__ = "Derry FitzGerald, Ray Kinsella, David O'Callaghan and Phil Burns" + language = 'en_IE' + timefmt = ' (%A, %B %d, %Y)' + + + oldest_article = 1.0 + max_articles_per_feed = 100 + no_stylesheets = True + simultaneous_downloads= 5 + + r = re.compile('.*(?Phttp:\/\/(www.irishtimes.com)|(rss.feedsportal.com\/c)\/.*\.html?).*') + remove_tags = [dict(name='div', attrs={'class':'footer'})] + extra_css = 'p, div { margin: 0pt; border: 0pt; text-indent: 0.5em } .headline {font-size: large;} \n .fact { padding-top: 10pt }' + + feeds = [ + ('Frontpage', 'http://www.irishtimes.com/feeds/rss/newspaper/index.rss'), + ('Ireland', 'http://www.irishtimes.com/feeds/rss/newspaper/ireland.rss'), + ('World', 'http://www.irishtimes.com/feeds/rss/newspaper/world.rss'), + ('Finance', 'http://www.irishtimes.com/feeds/rss/newspaper/finance.rss'), + ('Features', 'http://www.irishtimes.com/feeds/rss/newspaper/features.rss'), + ('Sport', 'http://www.irishtimes.com/feeds/rss/newspaper/sport.rss'), + ('Opinion', 'http://www.irishtimes.com/feeds/rss/newspaper/opinion.rss'), + ('Letters', 'http://www.irishtimes.com/feeds/rss/newspaper/letters.rss'), + ('Magazine', 'http://www.irishtimes.com/feeds/rss/newspaper/magazine.rss'), + ('Health', 'http://www.irishtimes.com/feeds/rss/newspaper/health.rss'), + ('Education & Parenting', 'http://www.irishtimes.com/feeds/rss/newspaper/education.rss'), + ('Motors', 'http://www.irishtimes.com/feeds/rss/newspaper/motors.rss'), + ('An Teanga Bheo', 'http://www.irishtimes.com/feeds/rss/newspaper/anteangabheo.rss'), + ('Commercial Property', 'http://www.irishtimes.com/feeds/rss/newspaper/commercialproperty.rss'), + ('Science Today', 'http://www.irishtimes.com/feeds/rss/newspaper/sciencetoday.rss'), + ('Property', 'http://www.irishtimes.com/feeds/rss/newspaper/property.rss'), + ('The Tickets', 'http://www.irishtimes.com/feeds/rss/newspaper/theticket.rss'), + ('Weekend', 'http://www.irishtimes.com/feeds/rss/newspaper/weekend.rss'), + ('News features', 'http://www.irishtimes.com/feeds/rss/newspaper/newsfeatures.rss'), + ('Obituaries', 'http://www.irishtimes.com/feeds/rss/newspaper/obituaries.rss'), + ] + + + def print_version(self, url): + if url.count('rss.feedsportal.com'): + u = url.replace('0Bhtml/story01.htm','_pf0Bhtml/story01.htm') + else: + u = url.replace('.html','_pf.html') + return u + + def get_article_url(self, article): + return article.link + + diff --git a/resources/recipes/izvestia.recipe b/recipes/izvestia.recipe similarity index 100% rename from resources/recipes/izvestia.recipe rename to recipes/izvestia.recipe diff --git a/resources/recipes/jakarta_post.recipe b/recipes/jakarta_post.recipe similarity index 100% rename from resources/recipes/jakarta_post.recipe rename to recipes/jakarta_post.recipe diff --git a/resources/recipes/jalopnik.recipe b/recipes/jalopnik.recipe similarity index 100% rename from resources/recipes/jalopnik.recipe rename to recipes/jalopnik.recipe diff --git a/resources/recipes/japan_times.recipe b/recipes/japan_times.recipe similarity index 100% rename from resources/recipes/japan_times.recipe rename to recipes/japan_times.recipe diff --git a/resources/recipes/javalobby.recipe b/recipes/javalobby.recipe similarity index 100% rename from resources/recipes/javalobby.recipe rename to recipes/javalobby.recipe diff --git a/resources/recipes/jb_online.recipe b/recipes/jb_online.recipe similarity index 100% rename from resources/recipes/jb_online.recipe rename to recipes/jb_online.recipe diff --git a/resources/recipes/jbpress.recipe b/recipes/jbpress.recipe similarity index 100% rename from resources/recipes/jbpress.recipe rename to recipes/jbpress.recipe diff --git a/resources/recipes/jezebel.recipe b/recipes/jezebel.recipe similarity index 100% rename from resources/recipes/jezebel.recipe rename to recipes/jezebel.recipe diff --git a/resources/recipes/jijinews.recipe b/recipes/jijinews.recipe similarity index 100% rename from resources/recipes/jijinews.recipe rename to recipes/jijinews.recipe diff --git a/resources/recipes/joelonsoftware.recipe b/recipes/joelonsoftware.recipe similarity index 100% rename from resources/recipes/joelonsoftware.recipe rename to recipes/joelonsoftware.recipe diff --git a/resources/recipes/johm.recipe b/recipes/johm.recipe similarity index 100% rename from resources/recipes/johm.recipe rename to recipes/johm.recipe diff --git a/resources/recipes/joop.recipe b/recipes/joop.recipe similarity index 100% rename from resources/recipes/joop.recipe rename to recipes/joop.recipe diff --git a/resources/recipes/journalgazette.recipe b/recipes/journalgazette.recipe similarity index 100% rename from resources/recipes/journalgazette.recipe rename to recipes/journalgazette.recipe diff --git a/resources/recipes/journalofaccountancy.recipe b/recipes/journalofaccountancy.recipe similarity index 100% rename from resources/recipes/journalofaccountancy.recipe rename to recipes/journalofaccountancy.recipe diff --git a/resources/recipes/jp_dk.recipe b/recipes/jp_dk.recipe similarity index 100% rename from resources/recipes/jp_dk.recipe rename to recipes/jp_dk.recipe diff --git a/resources/recipes/jpost.recipe b/recipes/jpost.recipe similarity index 100% rename from resources/recipes/jpost.recipe rename to recipes/jpost.recipe diff --git a/resources/recipes/jpost_fr.recipe b/recipes/jpost_fr.recipe similarity index 100% rename from resources/recipes/jpost_fr.recipe rename to recipes/jpost_fr.recipe diff --git a/resources/recipes/jsonline.recipe b/recipes/jsonline.recipe similarity index 100% rename from resources/recipes/jsonline.recipe rename to recipes/jsonline.recipe diff --git a/resources/recipes/jurnalulnational.recipe b/recipes/jurnalulnational.recipe similarity index 100% rename from resources/recipes/jurnalulnational.recipe rename to recipes/jurnalulnational.recipe diff --git a/resources/recipes/jutarnji.recipe b/recipes/jutarnji.recipe similarity index 100% rename from resources/recipes/jutarnji.recipe rename to recipes/jutarnji.recipe diff --git a/resources/recipes/juventudrebelde.recipe b/recipes/juventudrebelde.recipe similarity index 100% rename from resources/recipes/juventudrebelde.recipe rename to recipes/juventudrebelde.recipe diff --git a/resources/recipes/juventudrebelde_english.recipe b/recipes/juventudrebelde_english.recipe similarity index 100% rename from resources/recipes/juventudrebelde_english.recipe rename to recipes/juventudrebelde_english.recipe diff --git a/resources/recipes/kahokushinpo.recipe b/recipes/kahokushinpo.recipe similarity index 100% rename from resources/recipes/kahokushinpo.recipe rename to recipes/kahokushinpo.recipe diff --git a/resources/recipes/kamerabild.recipe b/recipes/kamerabild.recipe similarity index 100% rename from resources/recipes/kamerabild.recipe rename to recipes/kamerabild.recipe diff --git a/resources/recipes/kamikaze.recipe b/recipes/kamikaze.recipe similarity index 100% rename from resources/recipes/kamikaze.recipe rename to recipes/kamikaze.recipe diff --git a/resources/recipes/karlsruhe.recipe b/recipes/karlsruhe.recipe similarity index 100% rename from resources/recipes/karlsruhe.recipe rename to recipes/karlsruhe.recipe diff --git a/resources/recipes/kath_net.recipe b/recipes/kath_net.recipe similarity index 100% rename from resources/recipes/kath_net.recipe rename to recipes/kath_net.recipe diff --git a/resources/recipes/kathemerini.recipe b/recipes/kathemerini.recipe similarity index 100% rename from resources/recipes/kathemerini.recipe rename to recipes/kathemerini.recipe diff --git a/resources/recipes/kellog_faculty.recipe b/recipes/kellog_faculty.recipe similarity index 100% rename from resources/recipes/kellog_faculty.recipe rename to recipes/kellog_faculty.recipe diff --git a/resources/recipes/kellog_insight.recipe b/recipes/kellog_insight.recipe similarity index 100% rename from resources/recipes/kellog_insight.recipe rename to recipes/kellog_insight.recipe diff --git a/resources/recipes/kidney.recipe b/recipes/kidney.recipe similarity index 100% rename from resources/recipes/kidney.recipe rename to recipes/kidney.recipe diff --git a/resources/recipes/kitsapun.recipe b/recipes/kitsapun.recipe similarity index 100% rename from resources/recipes/kitsapun.recipe rename to recipes/kitsapun.recipe diff --git a/resources/recipes/kleinezeitung.recipe b/recipes/kleinezeitung.recipe similarity index 100% rename from resources/recipes/kleinezeitung.recipe rename to recipes/kleinezeitung.recipe diff --git a/resources/recipes/komchadluek.recipe b/recipes/komchadluek.recipe similarity index 100% rename from resources/recipes/komchadluek.recipe rename to recipes/komchadluek.recipe diff --git a/resources/recipes/kommersant.recipe b/recipes/kommersant.recipe similarity index 100% rename from resources/recipes/kommersant.recipe rename to recipes/kommersant.recipe diff --git a/resources/recipes/kompas.recipe b/recipes/kompas.recipe similarity index 100% rename from resources/recipes/kompas.recipe rename to recipes/kompas.recipe diff --git a/resources/recipes/kompiutierra.recipe b/recipes/kompiutierra.recipe similarity index 100% rename from resources/recipes/kompiutierra.recipe rename to recipes/kompiutierra.recipe diff --git a/resources/recipes/kopalniawiedzy.recipe b/recipes/kopalniawiedzy.recipe similarity index 100% rename from resources/recipes/kopalniawiedzy.recipe rename to recipes/kopalniawiedzy.recipe diff --git a/resources/recipes/korespondent.recipe b/recipes/korespondent.recipe similarity index 100% rename from resources/recipes/korespondent.recipe rename to recipes/korespondent.recipe diff --git a/resources/recipes/kotaku.recipe b/recipes/kotaku.recipe similarity index 100% rename from resources/recipes/kotaku.recipe rename to recipes/kotaku.recipe diff --git a/resources/recipes/krstarica.recipe b/recipes/krstarica.recipe similarity index 100% rename from resources/recipes/krstarica.recipe rename to recipes/krstarica.recipe diff --git a/resources/recipes/krstarica_en.recipe b/recipes/krstarica_en.recipe similarity index 100% rename from resources/recipes/krstarica_en.recipe rename to recipes/krstarica_en.recipe diff --git a/resources/recipes/kstar.recipe b/recipes/kstar.recipe similarity index 100% rename from resources/recipes/kstar.recipe rename to recipes/kstar.recipe diff --git a/resources/recipes/kudika.recipe b/recipes/kudika.recipe similarity index 100% rename from resources/recipes/kudika.recipe rename to recipes/kudika.recipe diff --git a/resources/recipes/kukuburi.recipe b/recipes/kukuburi.recipe similarity index 100% rename from resources/recipes/kukuburi.recipe rename to recipes/kukuburi.recipe diff --git a/resources/recipes/kurier.recipe b/recipes/kurier.recipe similarity index 100% rename from resources/recipes/kurier.recipe rename to recipes/kurier.recipe diff --git a/resources/recipes/l_espresso.recipe b/recipes/l_espresso.recipe similarity index 100% rename from resources/recipes/l_espresso.recipe rename to recipes/l_espresso.recipe diff --git a/resources/recipes/la_cuarta.recipe b/recipes/la_cuarta.recipe similarity index 100% rename from resources/recipes/la_cuarta.recipe rename to recipes/la_cuarta.recipe diff --git a/resources/recipes/la_diaria.recipe b/recipes/la_diaria.recipe similarity index 100% rename from resources/recipes/la_diaria.recipe rename to recipes/la_diaria.recipe diff --git a/resources/recipes/la_gazzeta_dello_sport.recipe b/recipes/la_gazzeta_dello_sport.recipe similarity index 100% rename from resources/recipes/la_gazzeta_dello_sport.recipe rename to recipes/la_gazzeta_dello_sport.recipe diff --git a/resources/recipes/la_jornada.recipe b/recipes/la_jornada.recipe similarity index 100% rename from resources/recipes/la_jornada.recipe rename to recipes/la_jornada.recipe diff --git a/resources/recipes/la_nueva.recipe b/recipes/la_nueva.recipe similarity index 100% rename from resources/recipes/la_nueva.recipe rename to recipes/la_nueva.recipe diff --git a/resources/recipes/la_razon_bo.recipe b/recipes/la_razon_bo.recipe similarity index 100% rename from resources/recipes/la_razon_bo.recipe rename to recipes/la_razon_bo.recipe diff --git a/resources/recipes/la_republica.recipe b/recipes/la_republica.recipe similarity index 100% rename from resources/recipes/la_republica.recipe rename to recipes/la_republica.recipe diff --git a/resources/recipes/la_rioja.recipe b/recipes/la_rioja.recipe similarity index 100% rename from resources/recipes/la_rioja.recipe rename to recipes/la_rioja.recipe diff --git a/resources/recipes/la_segunda.recipe b/recipes/la_segunda.recipe similarity index 100% rename from resources/recipes/la_segunda.recipe rename to recipes/la_segunda.recipe diff --git a/resources/recipes/la_stampa.recipe b/recipes/la_stampa.recipe similarity index 100% rename from resources/recipes/la_stampa.recipe rename to recipes/la_stampa.recipe diff --git a/resources/recipes/la_tercera.recipe b/recipes/la_tercera.recipe similarity index 100% rename from resources/recipes/la_tercera.recipe rename to recipes/la_tercera.recipe diff --git a/resources/recipes/la_tribuna.recipe b/recipes/la_tribuna.recipe similarity index 100% rename from resources/recipes/la_tribuna.recipe rename to recipes/la_tribuna.recipe diff --git a/resources/recipes/lalibre_be.recipe b/recipes/lalibre_be.recipe similarity index 100% rename from resources/recipes/lalibre_be.recipe rename to recipes/lalibre_be.recipe diff --git a/resources/recipes/lameuse_be.recipe b/recipes/lameuse_be.recipe similarity index 100% rename from resources/recipes/lameuse_be.recipe rename to recipes/lameuse_be.recipe diff --git a/resources/recipes/lamujerdemivida.recipe b/recipes/lamujerdemivida.recipe similarity index 100% rename from resources/recipes/lamujerdemivida.recipe rename to recipes/lamujerdemivida.recipe diff --git a/resources/recipes/lanacion.recipe b/recipes/lanacion.recipe similarity index 100% rename from resources/recipes/lanacion.recipe rename to recipes/lanacion.recipe diff --git a/resources/recipes/lanacion_chile.recipe b/recipes/lanacion_chile.recipe similarity index 100% rename from resources/recipes/lanacion_chile.recipe rename to recipes/lanacion_chile.recipe diff --git a/resources/recipes/laprensa.recipe b/recipes/laprensa.recipe similarity index 100% rename from resources/recipes/laprensa.recipe rename to recipes/laprensa.recipe diff --git a/resources/recipes/laprensa_hn.recipe b/recipes/laprensa_hn.recipe similarity index 100% rename from resources/recipes/laprensa_hn.recipe rename to recipes/laprensa_hn.recipe diff --git a/resources/recipes/laprensa_ni.recipe b/recipes/laprensa_ni.recipe similarity index 100% rename from resources/recipes/laprensa_ni.recipe rename to recipes/laprensa_ni.recipe diff --git a/resources/recipes/las_vegas_review.recipe b/recipes/las_vegas_review.recipe similarity index 100% rename from resources/recipes/las_vegas_review.recipe rename to recipes/las_vegas_review.recipe diff --git a/resources/recipes/latimes.recipe b/recipes/latimes.recipe similarity index 100% rename from resources/recipes/latimes.recipe rename to recipes/latimes.recipe diff --git a/resources/recipes/latribuna.recipe b/recipes/latribuna.recipe similarity index 100% rename from resources/recipes/latribuna.recipe rename to recipes/latribuna.recipe diff --git a/resources/recipes/lavanguardia.recipe b/recipes/lavanguardia.recipe similarity index 100% rename from resources/recipes/lavanguardia.recipe rename to recipes/lavanguardia.recipe diff --git a/resources/recipes/lavenir_be.recipe b/recipes/lavenir_be.recipe similarity index 100% rename from resources/recipes/lavenir_be.recipe rename to recipes/lavenir_be.recipe diff --git a/resources/recipes/le_journal.recipe b/recipes/le_journal.recipe similarity index 100% rename from resources/recipes/le_journal.recipe rename to recipes/le_journal.recipe diff --git a/resources/recipes/le_monde.recipe b/recipes/le_monde.recipe similarity index 100% rename from resources/recipes/le_monde.recipe rename to recipes/le_monde.recipe diff --git a/resources/recipes/le_temps.recipe b/recipes/le_temps.recipe similarity index 100% rename from resources/recipes/le_temps.recipe rename to recipes/le_temps.recipe diff --git a/resources/recipes/ledevoir.recipe b/recipes/ledevoir.recipe similarity index 100% rename from resources/recipes/ledevoir.recipe rename to recipes/ledevoir.recipe diff --git a/resources/recipes/leduc.recipe b/recipes/leduc.recipe similarity index 100% rename from resources/recipes/leduc.recipe rename to recipes/leduc.recipe diff --git a/resources/recipes/legeartis.recipe b/recipes/legeartis.recipe similarity index 100% rename from resources/recipes/legeartis.recipe rename to recipes/legeartis.recipe diff --git a/resources/recipes/leggo_it.recipe b/recipes/leggo_it.recipe similarity index 100% rename from resources/recipes/leggo_it.recipe rename to recipes/leggo_it.recipe diff --git a/resources/recipes/legitymizm.recipe b/recipes/legitymizm.recipe similarity index 100% rename from resources/recipes/legitymizm.recipe rename to recipes/legitymizm.recipe diff --git a/resources/recipes/lemonde_dip.recipe b/recipes/lemonde_dip.recipe similarity index 100% rename from resources/recipes/lemonde_dip.recipe rename to recipes/lemonde_dip.recipe diff --git a/resources/recipes/lenta_ru.recipe b/recipes/lenta_ru.recipe similarity index 100% rename from resources/recipes/lenta_ru.recipe rename to recipes/lenta_ru.recipe diff --git a/resources/recipes/lescienze.recipe b/recipes/lescienze.recipe similarity index 100% rename from resources/recipes/lescienze.recipe rename to recipes/lescienze.recipe diff --git a/resources/recipes/lesoir_be.recipe b/recipes/lesoir_be.recipe similarity index 100% rename from resources/recipes/lesoir_be.recipe rename to recipes/lesoir_be.recipe diff --git a/resources/recipes/levante.recipe b/recipes/levante.recipe similarity index 100% rename from resources/recipes/levante.recipe rename to recipes/levante.recipe diff --git a/resources/recipes/liberation.recipe b/recipes/liberation.recipe similarity index 100% rename from resources/recipes/liberation.recipe rename to recipes/liberation.recipe diff --git a/resources/recipes/libero.recipe b/recipes/libero.recipe similarity index 100% rename from resources/recipes/libero.recipe rename to recipes/libero.recipe diff --git a/recipes/lifehacker.recipe b/recipes/lifehacker.recipe new file mode 100644 index 0000000000..e96b031dab --- /dev/null +++ b/recipes/lifehacker.recipe @@ -0,0 +1,100 @@ +from calibre.web.feeds.news import BasicNewsRecipe +from datetime import datetime +from calibre.ebooks.BeautifulSoup import Tag +from calibre.utils.magick import Image, PixelWand + +class LifeHacker(BasicNewsRecipe): + THUMBALIZR_API = '' # ---->Get your at http://www.thumbalizr.com/ and put here + LANGUAGE = 'en' + LANGHTM = 'en' + language = 'en' + ENCODING = 'utf' + ENCHTM = 'utf-8' + requires_version = (0,7,47) + news = True + + title = u'LifeHacker' + __author__ = 'Euler Alves' + description = u'Tips, tricks, and downloads for getting things done.' + publisher = u'lifehacker.com' + author = u'Adam Pash & Kevin Purdy & Adam Dachis & Whitson Gordon & Gina Trapani' + category = 'news, rss' + + oldest_article = 4 + max_articles_per_feed = 20 + summary_length = 1000 + + remove_javascript = True + no_stylesheets = True + use_embedded_content = True + remove_empty_feeds = True + timefmt = ' [%d %b %Y (%a)]' + + hoje = datetime.now() + pubdate = hoje.strftime('%a, %d %b') + cover_url = 'http://api.thumbalizr.com/?api_key='+THUMBALIZR_API+'&url=http://lifehacker.com&width=600&quality=90' + cover_margins = (0,0,'white') + masthead_url = 'http://cache.gawkerassets.com/assets/lifehacker.com/img/logo.png' + + remove_tags = [ + {'class': 'feedflare'}, + dict(name='div', + attrs={'class':[ + 'ad_container' + ,'ad_300x250' + ,'ad_interstitial' + ,'share-wrap' + ,'ad_300x600' + ,'ad_perma-footer-adsense' + ,'ad_perma-panorama' + ,'ad panorama' + ,'ad_container' + ]}) + ,dict(name='div', + attrs={'id':[ + 'agegate_container' + ,'agegate_container_rejected' + ,'sharemenu-wrap' + ]}) + ] + + feeds = [(u'Articles', u'http://feeds.gawker.com/lifehacker/vip?format=xml')] + + conversion_options = { + 'title' : title + ,'comments' : description + ,'publisher' : publisher + ,'tags' : category + ,'language' : LANGUAGE + ,'linearize_tables': True + } + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + if not soup.find(attrs={'http-equiv':'Content-Language'}): + meta0 = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.LANGHTM)]) + soup.head.insert(0,meta0) + if not soup.find(attrs={'http-equiv':'Content-Type'}): + meta1 = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset="+self.ENCHTM)]) + soup.head.insert(0,meta1) + return soup + + def postprocess_html(self, soup, first): + #process all the images. assumes that the new html has the correct path + for tag in soup.findAll(lambda tag: tag.name.lower()=='img' and tag.has_key('src')): + iurl = tag['src'] + img = Image() + img.open(iurl) + width, height = img.size + print 'img is: ', iurl, 'width is: ', width, 'height is: ', height + if img < 0: + raise RuntimeError('Out of memory') + pw = PixelWand() + if( width > height and width > 590) : + print 'Rotate image' + img.rotate(pw, -90) + img.save(iurl) + return soup + + diff --git a/resources/recipes/linux_magazine.recipe b/recipes/linux_magazine.recipe similarity index 100% rename from resources/recipes/linux_magazine.recipe rename to recipes/linux_magazine.recipe diff --git a/resources/recipes/linuxdevices.recipe b/recipes/linuxdevices.recipe similarity index 100% rename from resources/recipes/linuxdevices.recipe rename to recipes/linuxdevices.recipe diff --git a/resources/recipes/livemint.recipe b/recipes/livemint.recipe similarity index 100% rename from resources/recipes/livemint.recipe rename to recipes/livemint.recipe diff --git a/resources/recipes/living_digital.recipe b/recipes/living_digital.recipe similarity index 100% rename from resources/recipes/living_digital.recipe rename to recipes/living_digital.recipe diff --git a/resources/recipes/london_free_press.recipe b/recipes/london_free_press.recipe similarity index 100% rename from resources/recipes/london_free_press.recipe rename to recipes/london_free_press.recipe diff --git a/resources/recipes/los_tiempos_bo.recipe b/recipes/los_tiempos_bo.recipe similarity index 100% rename from resources/recipes/los_tiempos_bo.recipe rename to recipes/los_tiempos_bo.recipe diff --git a/resources/recipes/losservatoreromano_it.recipe b/recipes/losservatoreromano_it.recipe similarity index 100% rename from resources/recipes/losservatoreromano_it.recipe rename to recipes/losservatoreromano_it.recipe diff --git a/resources/recipes/lrb.recipe b/recipes/lrb.recipe similarity index 100% rename from resources/recipes/lrb.recipe rename to recipes/lrb.recipe diff --git a/resources/recipes/lrb_payed.recipe b/recipes/lrb_payed.recipe similarity index 100% rename from resources/recipes/lrb_payed.recipe rename to recipes/lrb_payed.recipe diff --git a/resources/recipes/lwn.recipe b/recipes/lwn.recipe similarity index 100% rename from resources/recipes/lwn.recipe rename to recipes/lwn.recipe diff --git a/resources/recipes/lwn_weekly.recipe b/recipes/lwn_weekly.recipe similarity index 87% rename from resources/recipes/lwn_weekly.recipe rename to recipes/lwn_weekly.recipe index 28ee35802a..7363062346 100644 --- a/resources/recipes/lwn_weekly.recipe +++ b/recipes/lwn_weekly.recipe @@ -23,6 +23,11 @@ class WeeklyLWN(BasicNewsRecipe): remove_tags_after = dict(attrs={'class':'ArticleText'}) remove_tags = [dict(name=['h2', 'form'])] + preprocess_regexps = [ + # Remove the
and "Log in to post comments" + (re.compile(r'.*?', re.DOTALL|re.IGNORECASE), + lambda match: ''), + (re.compile(r'

', re.DOTALL|re.IGNORECASE), lambda m: ''), + (re.compile(r'( | )*?

', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(r']+>.*?
.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(r'') rating, rstring = render_rating(i.avg_rating, prefix) - if i.category == 'authors' and \ - tweaks['categories_use_field_for_author_name'] == 'author_sort': + if i.use_sort_as_name: name = xml(i.sort) else: name = xml(i.name) @@ -626,6 +629,8 @@ class BrowseServer(object): elif category == 'allbooks': ids = all_ids else: + if fm.get(category, {'datatype':None})['datatype'] == 'composite': + cid = cid.decode('utf-8') q = category if q == 'news': q = 'tags' @@ -690,7 +695,10 @@ class BrowseServer(object): xml(href, True), xml(val if len(dbtags) == 1 else tag.name), xml(key, True))) - join = ' & ' if key == 'authors' else ', ' + join = ' & ' if key == 'authors' or \ + (fm['is_custom'] and + fm['display'].get('is_names', False)) \ + else ', ' args[key] = join.join(vals) added_key = True if not added_key: diff --git a/src/calibre/library/server/cache.py b/src/calibre/library/server/cache.py index cc4f7a3886..2ad7b543cb 100644 --- a/src/calibre/library/server/cache.py +++ b/src/calibre/library/server/cache.py @@ -5,8 +5,9 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' __docformat__ = 'restructuredtext en' +from collections import OrderedDict + from calibre.utils.date import utcnow -from calibre.utils.ordered_dict import OrderedDict class Cache(object): diff --git a/src/calibre/library/server/content.py b/src/calibre/library/server/content.py index 11ea2b951e..919f5a7969 100644 --- a/src/calibre/library/server/content.py +++ b/src/calibre/library/server/content.py @@ -169,7 +169,7 @@ class ContentServer(object): return cover return save_cover_data_to(img, 'img.jpg', return_data=True, resize_to=(width, height)) - except Exception, err: + except Exception as err: import traceback cherrypy.log.error('Failed to generate cover:') cherrypy.log.error(traceback.print_exc()) diff --git a/src/calibre/library/server/main.py b/src/calibre/library/server/main.py index e4de710c6a..3a6f918022 100644 --- a/src/calibre/library/server/main.py +++ b/src/calibre/library/server/main.py @@ -69,7 +69,7 @@ def daemonize(stdin='/dev/null', stdout='/dev/null', stderr='/dev/null'): if pid > 0: # exit first parent sys.exit(0) - except OSError, e: + except OSError as e: print >>sys.stderr, "fork #1 failed: %d (%s)" % (e.errno, e.strerror) sys.exit(1) @@ -84,7 +84,7 @@ def daemonize(stdin='/dev/null', stdout='/dev/null', stderr='/dev/null'): if pid > 0: # exit from second parent sys.exit(0) - except OSError, e: + except OSError as e: print >>sys.stderr, "fork #2 failed: %d (%s)" % (e.errno, e.strerror) sys.exit(1) diff --git a/src/calibre/library/server/opds.py b/src/calibre/library/server/opds.py index e7fdffbbbb..5f6180e68a 100644 --- a/src/calibre/library/server/opds.py +++ b/src/calibre/library/server/opds.py @@ -8,6 +8,7 @@ __docformat__ = 'restructuredtext en' import hashlib, binascii from functools import partial from itertools import repeat +from collections import OrderedDict from lxml import etree, html from lxml.builder import ElementMaker @@ -21,8 +22,6 @@ from calibre.library.server import custom_fields_to_display from calibre.library.server.utils import format_tag_string, Offsets from calibre import guess_type, prepare_string_for_xml as xml from calibre.utils.icu import sort_key -from calibre.utils.ordered_dict import OrderedDict -from calibre.utils.config import tweaks BASE_HREFS = { 0 : '/stanza', @@ -126,8 +125,7 @@ def CATALOG_ENTRY(item, item_kind, base_href, version, updated, count = (_('%d books') if item.count > 1 else _('%d book'))%item.count if ignore_count: count = '' - if item.category == 'authors' and \ - tweaks['categories_use_field_for_author_name'] == 'author_sort': + if item.use_sort_as_name: name = item.sort else: name = item.name diff --git a/src/calibre/library/sqlite.py b/src/calibre/library/sqlite.py index 2075ab5880..511106fe7b 100644 --- a/src/calibre/library/sqlite.py +++ b/src/calibre/library/sqlite.py @@ -193,7 +193,7 @@ def load_c_extensions(conn, debug=DEBUG): conn.load_extension(ext_path) conn.enable_load_extension(False) return True - except Exception, e: + except Exception as e: if debug: print 'Failed to load high performance sqlite C extension' print e @@ -247,14 +247,14 @@ class DBThread(Thread): if func == 'dump': try: ok, res = True, tuple(self.conn.iterdump()) - except Exception, err: + except Exception as err: ok, res = False, (err, traceback.format_exc()) elif func == 'create_dynamic_filter': try: f = DynamicFilter(args[0]) self.conn.create_function(args[0], 1, f) ok, res = True, f - except Exception, err: + except Exception as err: ok, res = False, (err, traceback.format_exc()) else: bfunc = getattr(self.conn, func) @@ -263,7 +263,7 @@ class DBThread(Thread): try: ok, res = True, bfunc(*args, **kwargs) break - except OperationalError, err: + except OperationalError as err: # Retry if unable to open db file e = str(err) if 'unable to open' not in e or i == 2: @@ -273,10 +273,10 @@ class DBThread(Thread): reprlib.repr(kwargs)) raise time.sleep(0.5) - except Exception, err: + except Exception as err: ok, res = False, (err, traceback.format_exc()) self.results.put((ok, res)) - except Exception, err: + except Exception as err: self.unhandled_error = (err, traceback.format_exc()) class DatabaseException(Exception): diff --git a/src/calibre/linux.py b/src/calibre/linux.py index 22f8af56c2..dfab13e3b8 100644 --- a/src/calibre/linux.py +++ b/src/calibre/linux.py @@ -3,7 +3,7 @@ __copyright__ = '2008, Kovid Goyal ' ''' Post installation script for linux ''' -import sys, os, cPickle, textwrap, stat +import sys, os, cPickle, textwrap, stat, importlib from subprocess import check_call from calibre import __appname__, prints, guess_type @@ -59,7 +59,7 @@ for x in {manifest!r}: shutil.rmtree(x) else: os.unlink(x) - except Exception, e: + except Exception as e: print 'Failed to delete', x print '\t', e @@ -285,7 +285,7 @@ class PostInstall: complete -o nospace -C calibre-complete ebook-convert ''')) - except TypeError, err: + except TypeError as err: if 'resolve_entities' in str(err): print 'You need python-lxml >= 2.0.5 for calibre' sys.exit(1) @@ -309,7 +309,7 @@ class PostInstall: for src in entry_points['console_scripts']: prog, right = src.split('=') prog = prog.strip() - module = __import__(right.split(':')[0].strip(), fromlist=['a']) + module = importlib.import_module(right.split(':')[0].strip()) parser = getattr(module, 'option_parser', None) if parser is None: continue diff --git a/src/calibre/manual/creating_plugins.rst b/src/calibre/manual/creating_plugins.rst new file mode 100644 index 0000000000..dd62e4e416 --- /dev/null +++ b/src/calibre/manual/creating_plugins.rst @@ -0,0 +1,212 @@ + +.. include:: global.rst + +.. _pluginstutorial: + +Writing your own plugins to extend |app|'s functionality +==================================================================== + +|app| has a very modular design. Almost all functionality in |app| comes in the form of plugins. Plugins are used for conversion, for downloading news (though these are called recipes), for various components of the user interface, to connect to different devices, to process files when adding them to |app| and so on. You can get a complete list of all the builtin plugins in |app| by going to :guilabel:`Preferences->Plugins`. + +Here, we will teach you how to create your own plugins to add new features to |app|. + + +.. contents:: Contents + :depth: 2 + :local: + +.. note:: This only applies to calibre releases >= 0.7.53 + +Anatomy of a |app| plugin +--------------------------- + +A |app| plugin is very simple, it's just a zip file that contains some python code +and any other resources like image files needed by the plugin. Without further ado, +let's see a basic example. + +Suppose you have an installation of |app| that you are using to self publish various e-documents in EPUB and MOBI +formats. You would like all files generated by |app| to have their publisher set as "Hello world", here's how to do it. +Create a file named :file:`__init__.py` (this is a special name and must always be used for the main file of your plugin) +and enter the following Python code into it: + +.. literalinclude:: plugin_examples/helloworld/__init__.py + :lines: 10- + +That's all. To add this code to |app| as a plugin, simply create a zip file with:: + + zip plugin.zip __init__.py + +Add this plugin to |app| via :guilabel:`Preferences->Plugins`. + +You can download the Hello World plugin from +`helloworld_plugin.zip `_. + +Every time you use calibre to convert a book, the plugin's :meth:`run` method will be called and the +converted book will have its publisher set to "Hello World". This is a trivial plugin, lets move on to +a more complex example that actually adds a component to the user interface. + +A User Interface plugin +------------------------- + +This plugin will be spread over a few files (to keep the code clean). It will show you how to get resources +(images or data files) from the plugin zip file, allow users to configure your plugin, +how to create elements in the |app| user interface and how to access +and query the books database in |app|. + +You can download this plugin from `interface_demo_plugin.zip `_ + +The first thing to note is that this zip file has a lot more files in it, explained below, pay particular attention to +``plugin-import-name-interface_demo.txt``. + + **plugin-import-name-interface_demo.txt** + An empty text file used to enable the multi-file plugin magic. This file must be present in all plugins that use + more than one .py file. It should be empty and its filename must be of the form: plugin-import-name-**some_name**.txt + The presence of this file allows you to import code from the .py files present inside the zip file, using a statement like:: + + from calibre_plugins.some_name.some_module import some_object + + The prefix ``calibre_plugins`` must always be present. ``some_name`` comes from the filename of the empty text file. + ``some_module`` refers to :file:`some_module.py` file inside the zip file. Note that this importing is just as + powerful as regular python imports. You can create packages and subpackages of .py modules inside the zip file, + just like you would normally (by defining __init__.py in each sub directory), and everything should Just Work. + + The name you use for ``some_name`` enters a global namespace shared by all plugins, **so make it as unique as possible**. + But remember that it must be a valid python identifier (only alphabets, numbers and the underscore). + + **__init__.py** + As before, the file that defines the plugin class + + **main.py** + This file contains the actual code that does something useful + + **ui.py** + This file defines the interface part of the plugin + + **images/icon.png** + The icon for this plugin + + **about.txt** + A text file with information about the plugin + +Now let's look at the code. + +__init__.py +^^^^^^^^^^^^^ + +First, the obligatory ``__init__.py`` to define the plugin metadata: + +.. literalinclude:: plugin_examples/interface_demo/__init__.py + :lines: 10- + +The only noteworthy feature is the field :attr:`actual_plugin`. Since |app| has both command line and GUI interfaces, +GUI plugins like this one should not load any GUI libraries in __init__.py. The actual_plugin field does this for you, +by telling |app| that the actual plugin is to be found in another file inside your zip archive, which will only be loaded +in a GUI context. + +Remember that for this to work, you must have a plugin-import-name-some_name.txt file in your plugin zip file, +as discussed above. + +Also there are a couple of methods for enabling user configuration of the plugin. These are discussed below. + +ui.py +^^^^^^^^ + +Now let's look at ui.py which defines the actual GUI plugin. The source code is heavily commented and should be self explanatory: + +.. literalinclude:: plugin_examples/interface_demo/ui.py + :lines: 16- + +main.py +^^^^^^^^^ + +The actual logic to implement the Interface Plugin Demo dialog. + +.. literalinclude:: plugin_examples/interface_demo/main.py + :lines: 16- + +Getting resources from the plugin zip file +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +|app|'s plugin loading system defines a couple of builtin functions that allow you to conveniently get files from the plugin zip file. + + **get_resources(name_or_list_of_names)** + This function should be called with a list of paths to files inside the zip file. For example to access the file icon.png in + the directory images in the zip file, you would use: ``images/icon.png``. Always use a forward slash as the path separator, + even on windows. When you pass in a single name, the function will return the raw bytes of that file or None if the name + was not found in the zip file. If you pass in more than one name then it returns a dict mapping the names to bytes. + If a name is not found, it will not be present in the returned dict. + + **get_icons(name_or_list_of_names)** + A convenience wrapper for get_resources() that creates QIcon objects from the raw bytes returned by get_resources. + If a name is not found in the zip file the corresponding QIcon will be null. + +Enabling user configuration of your plugin +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To allow users to configure your plugin, you must define three methods in your base plugin class, '**is_customizable**, **config_widget** and **save_settings** as shown below: + +.. literalinclude:: plugin_examples/interface_demo/__init__.py + :pyobject: InterfacePluginDemo.is_customizable + +.. literalinclude:: plugin_examples/interface_demo/__init__.py + :pyobject: InterfacePluginDemo.config_widget + +.. literalinclude:: plugin_examples/interface_demo/__init__.py + :pyobject: InterfacePluginDemo.save_settings + +|app| has many different ways to store configuration data (a legacy of its long history). The recommended way is to use the **JSONConfig** class, which stores your configuration information in a .json file. + +The code to manage configuration data in the demo plugin is in config.py: + +.. literalinclude:: plugin_examples/interface_demo/config.py + :lines: 10- + +The ``prefs`` object is now available throughout the plugin code by a simple:: + + from calibre_plugins.interface_demo.config import prefs + + +You can see the ``prefs`` object being used in main.py: + +.. literalinclude:: plugin_examples/interface_demo/main.py + :pyobject: DemoDialog.config + + +The different types of plugins +-------------------------------- + +As you may have noticed above, a plugin in |app| is a class. There are different classes for the different types of plugins in |app|. +Details on each class, including the base class of all plugins can be found in :ref:`plugins`. + +Debugging plugins +------------------- + +The first, most important step is to run |app| in debug mode. You can do this from the command line with:: + + calibre-debug -g + +Or from within calibre by clicking the arrow next to the preferences button or using the `Ctrl+Shift+R` keyboard shortcut. + +When running from the command line, debug output will be printed to the console, when running from within |app| the output will go to a txt file. + +You can insert print statements anywhere in your plugin code, they will be output in debug mode. Remember, this is python, you really shouldn't need anything more than print statements to debug ;) I developed all of |app| using just this debugging technique. + +It can get tiresome to keep re-adding a plugin to calibre to test small changes. The plugin zip files are stored in the calibre config directory in plugins/ (goto Preferences->Misc and click open config directory to see the config directory). + +Once you've located the zip file of your plugin you can then directly update it with your changes instead of re-adding it each time. To do so from the command line, in the directory that contains your plugin source code, use:: + + zip -R /path/to/plugin/zip/file.zip * + +This will automatically update all changed files. It relies on the freely available zip command line tool. + +More plugin examples +---------------------- + +You can find a list of many, sophisticated |app| plugins `here `_. + +Sharing your plugins with others +---------------------------------- + +If you would like to share the plugins you have created with other users of |app|, post your plugin in a new thread in the +`calibre plugins forum `_. + diff --git a/src/calibre/manual/customize.rst b/src/calibre/manual/customize.rst index 6218bf8112..fe33100576 100644 --- a/src/calibre/manual/customize.rst +++ b/src/calibre/manual/customize.rst @@ -17,6 +17,11 @@ use *plugins* to add functionality to |app|. :depth: 2 :local: +.. toctree:: + :hidden: + + plugins + Environment variables ----------------------- @@ -53,148 +58,10 @@ You should not change the files in this resources folder, as your changes will g For example, if you wanted to change the icon for the :guilabel:`Remove books` action, you would first look in the builtin resources folder and see that the relevant file is :file:`resources/images/trash.svg`. Assuming you have an alternate icon in svg format called :file:`mytrash.svg` you would save it in the configuration directory as :file:`resources/images/trash.svg`. All the icons used by the calibre user interface are in :file:`resources/images` and its sub-folders. -A Hello World plugin ------------------------- +Customizing |app| with plugins +-------------------------------- -Suppose you have an installation of |app| that you are using to self publish various e-documents in EPUB and LRF -format. You would like all file generated by |app| to have their publisher set as "Hello world", here's how to do it. -Create a file name :file:`my_plugin.py` (the file name must end with plugin.py) and enter the following Python code into it: +|app| has a very modular design. Almost all functionality in |app| comes in the form of plugins. Plugins are used for conversion, for downloading news (though these are called recipes), for various components of the user interface, to connect to different devices, to process files when adding them to |app| and so on. You can get a complete list of all the builtin plugins in |app| by going to :guilabel:`Preferences->Plugins`. -.. code-block:: python +You can write your own plugins to customize and extend the behavior of |app|. The plugin architecture in |app| is very simple, see the tutorial :ref:`pluginstutorial`. - import os - from calibre.customize import FileTypePlugin - - class HelloWorld(FileTypePlugin): - - name = 'Hello World Plugin' # Name of the plugin - description = 'Set the publisher to Hello World for all new conversions' - supported_platforms = ['windows', 'osx', 'linux'] # Platforms this plugin will run on - author = 'Acme Inc.' # The author of this plugin - version = (1, 0, 0) # The version number of this plugin - file_types = set(['epub', 'lrf']) # The file types that this plugin will be applied to - on_postprocess = True # Run this plugin after conversion is complete - - def run(self, path_to_ebook): - from calibre.ebooks.metadata.meta import get_metadata, set_metadata - file = open(path_to_ebook, 'r+b') - ext = os.path.splitext(path_to_ebook)[-1][1:].lower() - mi = get_metadata(file, ext) - mi.publisher = 'Hello World' - set_metadata(file, mi, ext) - return path_to_ebook - -That's all. To add this code to |app| as a plugin, simply create a zip file with:: - - zip plugin.zip my_plugin.py - -You can download the Hello World plugin from -`helloworld_plugin.zip `_. -Now either use the configuration dialog in |app| GUI to add this zip file as a plugin, or -use the command:: - - calibre-customize -a plugin.zip - -Every time you use calibre to convert a book, the plugin's :meth:`run` method will be called and the -converted book will have its publisher set to "Hello World". For more information about -|app|'s plugin system, read on... - - -A Hello World GUI plugin ---------------------------- - -Here's a simple Hello World plugin for the |app| GUI. It will cause a box to popup with the message "Hellooo World!" when you press Ctrl+Shift+H - -.. note:: Only available in calibre versions ``>= 0.7.32``. - -.. code-block:: python - - from calibre.customize import InterfaceActionBase - - class HelloWorldBase(InterfaceActionBase): - - name = 'Hello World GUI' - author = 'The little green man' - - def load_actual_plugin(self, gui): - from calibre.gui2.actions import InterfaceAction - - class HelloWorld(InterfaceAction): - name = 'Hello World GUI' - action_spec = ('Hello World!', 'add_book.png', None, - _('Ctrl+Shift+H')) - - def genesis(self): - self.qaction.triggered.connect(self.hello_world) - - def hello_world(self, *args): - from calibre.gui2 import info_dialog - info_dialog(self.gui, 'Hello World!', 'Hellooo World!', - show=True) - - return HelloWorld(gui, self.site_customization) - -You can also have it show up in the toolbars/context menu by going to Preferences->Toolbars and adding this plugin to the locations you want it to be in. - -While this plugin is utterly useless, note that all calibre GUI actions like adding/saving/removing/viewing/etc. are implemented as plugins, so there is no limit to what you can achieve. The key thing to remember is that the plugin has access to the full |app| GUI via ``self.gui``. - - -The Plugin base class ------------------------- - -As you may have noticed above, all |app| plugins are classes. The Plugin classes are organized in a hierarchy at the top of which -is :class:`calibre.customize.Plugin`. The has excellent in source documentation for its various features, here I will discuss a -few of the important ones. - -First, all plugins must supply a list of platforms they have been tested on by setting the ``supported_platforms`` member as in the -example above. - -If the plugin needs to do any initialization, it should implement the :meth:`initialize` method. The path to the plugin zip file -is available as ``self.plugin_path``. The initialization method could be used to load any needed resources from the zip file. - -If the plugin needs to be customized (i.e. it needs some information from the user), it should implement the :meth:`customization_help` -method, to indicate to |app| that it needs user input. This can be useful, for example, to ask the user to input the path to a needed system -binary or the URL of a website, etc. When |app| asks the user for the customization information, the string retuned by the :meth:`customization_help` -method is used as help text to le thte user know what information is needed. - -Another useful method is :meth:`temporary_file`, which returns a file handle to an opened temporary file. If your plugin needs to make use -of temporary files, it should use this method. Temporary file cleanup is then taken care of automatically. - -In addition, whenever plugins are run, their zip files are automatically added to the start of ``sys.path``, so you can directly import -any python files you bundle in the zip files. Note that this is not available when the plugin is being initialized, only when it is being run. - -Finally, plugins can have a priority (a positive integer). Higher priority plugins are run in preference tolower priority ones in a given context. -By default all plugins have priority 1. You can change that by setting the member :attr:'priority` in your subclass. - -See :ref:`pluginsPlugin` for details. - -File type plugins -------------------- - -File type plugins are intended to be associated with specific file types (as identified by extension). They can be run on several different occassions. - - * When books/formats are added ot the |app| database (if :attr:`on_import` is set to True). - * Just before an any2whatever converter is run on an input file (if :attr:`on_preprocess` is set to True). - * After an any2whatever converter has run, on the output file (if :attr:`on_postprocess` is set to True). - -File type plugins specify which file types they are associated with by specifying the :attr:`file_types` member as in the above example. -the actual work should be done in the :meth:`run` method, which must return the path to the modified ebook (it can be the same as the original -if the modifcations are done in place). - -See :ref:`pluginsFTPlugin` for details. - -Metadata plugins -------------------- - -Metadata plugins add the ability to read/write metadata from ebook files to |app|. See :ref:`pluginsMetadataPlugin` for details. - -.. toctree:: - :hidden: - - plugins - -Metadata download plugins ----------------------------- - -Metadata download plugins add various sources that |app| uses to download metadata based on title/author/isbn etc. See :ref:`pluginsMetadataSource` -for details. diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst index a3d4332fd0..97ef32e9d4 100644 --- a/src/calibre/manual/faq.rst +++ b/src/calibre/manual/faq.rst @@ -493,7 +493,16 @@ Most purchased EPUB books have `DRM `_. Thi I am getting a "Permission Denied" error? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -A permission denied error can occur because of many possible reasons, none of them having anything to do with |app|. You can get permission denied errors if you are using an SD card with write protect enabled. Or if you, or some program you used changed the file permissions of the files in question to read only. Or if there is a filesystem error on the device which caused your operating system to mount the filesystem in read only mode or mark a particular file as read only pending recovery. Or if the files have their owner set to a user other than you. Or if your file is open in another program. You will need to fix the underlying cause of the permissions error before resuming to use |app|. Read the error message carefully, see what file it points to and fix the permissions on that file. +A permission denied error can occur because of many possible reasons, none of them having anything to do with |app|. + + * You can get permission denied errors if you are using an SD card with write protect enabled. + * If you, or some program you used changed the file permissions of the files in question to read only. + * If there is a filesystem error on the device which caused your operating system to mount the filesystem in read only mode or mark a particular file as read only pending recovery. + * If the files have their owner set to a user other than you. + * If your file is open in another program. + * If the file resides on a device, you may have reached the limit of a maximum of 256 files in the root of the device. In this case you need to reformat the device/sd card referered to in the error message with a FAT32 filesystem, or delete some files from the SD card/device memory. + +You will need to fix the underlying cause of the permissions error before resuming to use |app|. Read the error message carefully, see what file it points to and fix the permissions on that file. Can I have the comment metadata show up on my reader? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -508,9 +517,9 @@ You have two choices: 1. Create a patch by hacking on |app| and send it to me for review and inclusion. See `Development `_. 2. `Open a ticket `_ (you have to register and login first). Remember that |app| development is done by volunteers, so if you get no response to your feature request, it means no one feels like implementing it. -Can I include |app| on a CD to be distributed with my product/magazine? +How is |app| licensed? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -|app| is licensed under the GNU General Public License v3 (an open source license). This means that you are free to redistribute |app| as long as you make the source code available. So if you want to put |app| on a CD with your product, you must also put the |app| source code on the CD. The source code is available for download `from googlecode `_. +|app| is licensed under the GNU General Public License v3 (an open source license). This means that you are free to redistribute |app| as long as you make the source code available. So if you want to put |app| on a CD with your product, you must also put the |app| source code on the CD. The source code is available for download `from googlecode `_. You are free to use the results of conversions from |app| however you want. You cannot use code, libraries from |app| in your software without maing your software open source. For details, see `The GNU GPL v3 `_. How do I run calibre from my USB stick? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/calibre/manual/gui.rst b/src/calibre/manual/gui.rst index 158bd81e50..9307ff30f6 100644 --- a/src/calibre/manual/gui.rst +++ b/src/calibre/manual/gui.rst @@ -166,7 +166,7 @@ Library .. |lii| image:: images/library.png :class: float-right-img -|lii| The :guilabel: `Library` action allows you to create, switch between, rename or delete a Library. |app| allows you to create as many libraries as you wish. You coudl for instance create a fiction library, a non fiction library, a foreign language library a project library, basically any structure that suits your needs. Libraries are the highest organizational structure within |app|, each library has its own set of books, tags, categories and base storage location. +|lii| The :guilabel: `Library` action allows you to create, switch between, rename or delete a Library. |app| allows you to create as many libraries as you wish. You could for instance create a fiction library, a non fiction library, a foreign language library a project library, basically any structure that suits your needs. Libraries are the highest organizational structure within |app|, each library has its own set of books, tags, categories and base storage location. 1. **Switch\Create library..**: This action allows you to; a) connect to a pre-existing |app| library at another location from your currently open library, b) Create and empty library at a nw location or, c) Move the current Library to a newly specified location. 2. **Quick Switch>**: This action allows you to switch between libraries that have been registered or created within |app|. @@ -549,6 +549,8 @@ Calibre has several keyboard shortcuts to save you time and mouse movement. Thes - Download metadata and shortcuts * - :kbd:`Ctrl+R` - Restart calibre + * - :kbd:`Ctrl+Shift+R` + - Restart calibre in debug mode * - :kbd:`Shift+Ctrl+E` - Add empty books to calibre * - :kbd:`Ctrl+Q` diff --git a/src/calibre/manual/images/sg_genre.jpg b/src/calibre/manual/images/sg_genre.jpg index b9a4537772..5d9658b14d 100644 Binary files a/src/calibre/manual/images/sg_genre.jpg and b/src/calibre/manual/images/sg_genre.jpg differ diff --git a/src/calibre/manual/images/sg_tb.jpg b/src/calibre/manual/images/sg_tb.jpg index eeb5e73c97..63610845db 100644 Binary files a/src/calibre/manual/images/sg_tb.jpg and b/src/calibre/manual/images/sg_tb.jpg differ diff --git a/src/calibre/manual/news.rst b/src/calibre/manual/news.rst index d0838ccb0f..52dc5a7166 100644 --- a/src/calibre/manual/news.rst +++ b/src/calibre/manual/news.rst @@ -137,7 +137,7 @@ to the recipe. Finally, lets replace some of the :term:`CSS` that we disabled ea With these additions, our recipe has become "production quality", indeed it is very close to the actual recipe used by |app| for the *BBC*, shown below: -.. literalinclude:: ../../../resources/recipes/bbc.recipe +.. literalinclude:: ../../../recipes/bbc.recipe This :term:`recipe` explores only the tip of the iceberg when it comes to the power of |app|. To explore more of the abilities of |app| we'll examine a more complex real life example in the next section. @@ -263,20 +263,18 @@ Tips for developing new recipes The best way to develop new recipes is to use the command line interface. Create the recipe using your favorite python editor and save it to a file say :file:`myrecipe.recipe`. The `.recipe` extension is required. You can download content using this recipe with the command:: - ebook-convert myrecipe.recipe output_dir --test -vv + ebook-convert myrecipe.recipe .epub --test -vv --debug-pipeline debug -The :command:`ebook-convert` will download all the webpages and save them to the directory :file:`output_dir`, creating it if necessary. The :option:`-vv` makes ebook-convert spit out a lot of information about what it is doing. The :option:`--test` makes it download only a couple of articles from at most two feeds. +The command :command:`ebook-convert` will download all the webpages and save them to the EPUB file :file:`myrecipe.epub`. The :option:`-vv` makes ebook-convert spit out a lot of information about what it is doing. The :option:`--test` makes it download only a couple of articles from at most two feeds. In addition, ebook-convert will put the downloaded HTML into the ``debug/input`` directory, where ``debug`` is the directory you specified in the :option:`--debug-pipeline` option. -Once the download is complete, you can look at the downloaded :term:`HTML` by opening the file :file:`index.html` in a browser. Once you're satisfied that the download and preprocessing is happening correctly, you can generate ebooks in different formats as shown below:: +Once the download is complete, you can look at the downloaded :term:`HTML` by opening the file :file:`debug/input/index.html` in a browser. Once you're satisfied that the download and preprocessing is happening correctly, you can generate ebooks in different formats as shown below:: ebook-convert myrecipe.recipe myrecipe.epub ebook-convert myrecipe.recipe myrecipe.mobi ... -If you're satisfied with your recipe, and you feel there is enough demand to justify its inclusion into the set of built-in recipes, add a comment to the ticket http://bugs.calibre-ebook.com/ticket/405 - -Alternatively, you could just post your recipe in the calibre forum at http://www.mobileread.com/forums/forumdisplay.php?f=166 to share it with other calibre users. +If you're satisfied with your recipe, and you feel there is enough demand to justify its inclusion into the set of built-in recipes, post your recipe in the `calibre recipes forum `_ to share it with other calibre users. .. seealso:: diff --git a/src/calibre/manual/plugin_examples/helloworld/__init__.py b/src/calibre/manual/plugin_examples/helloworld/__init__.py new file mode 100644 index 0000000000..3a49123e07 --- /dev/null +++ b/src/calibre/manual/plugin_examples/helloworld/__init__.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import (unicode_literals, division, absolute_import, + print_function) + +__license__ = 'GPL v3' +__copyright__ = '2011, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + +import os +from calibre.customize import FileTypePlugin + +class HelloWorld(FileTypePlugin): + + name = 'Hello World Plugin' # Name of the plugin + description = 'Set the publisher to Hello World for all new conversions' + supported_platforms = ['windows', 'osx', 'linux'] # Platforms this plugin will run on + author = 'Acme Inc.' # The author of this plugin + version = (1, 0, 0) # The version number of this plugin + file_types = set(['epub', 'mobi']) # The file types that this plugin will be applied to + on_postprocess = True # Run this plugin after conversion is complete + minimum_calibre_version = (0, 7, 53) + + def run(self, path_to_ebook): + from calibre.ebooks.metadata.meta import get_metadata, set_metadata + file = open(path_to_ebook, 'r+b') + ext = os.path.splitext(path_to_ebook)[-1][1:].lower() + mi = get_metadata(file, ext) + mi.publisher = 'Hello World' + set_metadata(file, mi, ext) + return path_to_ebook + + diff --git a/src/calibre/manual/plugin_examples/interface_demo/__init__.py b/src/calibre/manual/plugin_examples/interface_demo/__init__.py new file mode 100644 index 0000000000..ac7d9c6ec1 --- /dev/null +++ b/src/calibre/manual/plugin_examples/interface_demo/__init__.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import (unicode_literals, division, absolute_import, + print_function) + +__license__ = 'GPL v3' +__copyright__ = '2011, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + +# The class that all Interface Action plugin wrappers must inherit from +from calibre.customize import InterfaceActionBase + +class InterfacePluginDemo(InterfaceActionBase): + ''' + This class is a simple wrapper that provides information about the actual + plugin class. The actual interface plugin class is called InterfacePlugin + and is defined in the ui.py file, as specified in the actual_plugin field + below. + + The reason for having two classes is that it allows the command line + calibre utilities to run without needing to load the GUI libraries. + ''' + name = 'Interface Plugin Demo' + description = 'An advanced plugin demo' + supported_platforms = ['windows', 'osx', 'linux'] + author = 'Kovid Goyal' + version = (1, 0, 0) + minimum_calibre_version = (0, 7, 53) + + #: This field defines the GUI plugin class that contains all the code + #: that actually does something. Its format is module_path:class_name + #: The specified class must be defined in the specified module. + actual_plugin = 'calibre_plugins.interface_demo.ui:InterfacePlugin' + + def is_customizable(self): + ''' + This method must return True to enable customization via + Preferences->Plugins + ''' + return True + + def config_widget(self): + ''' + Implement this method and :meth:`save_settings` in your plugin to + use a custom configuration dialog. + + This method, if implemented, must return a QWidget. The widget can have + an optional method validate() that takes no arguments and is called + immediately after the user clicks OK. Changes are applied if and only + if the method returns True. + + If for some reason you cannot perform the configuration at this time, + return a tuple of two strings (message, details), these will be + displayed as a warning dialog to the user and the process will be + aborted. + + The base class implementation of this method raises NotImplementedError + so by default no user configuration is possible. + ''' + # It is important to put this import statement here rather than at the + # top of the module as importing the config class will also cause the + # GUI libraries to be loaded, which we do not want when using calibre + # from the command line + from calibre_plugins.interface_demo.config import ConfigWidget + return ConfigWidget() + + def save_settings(self, config_widget): + ''' + Save the settings specified by the user with config_widget. + + :param config_widget: The widget returned by :meth:`config_widget`. + ''' + config_widget.save_settings() + + # Apply the changes + ac = self.actual_plugin_ + if ac is not None: + ac.apply_settings() + + diff --git a/src/calibre/manual/plugin_examples/interface_demo/about.txt b/src/calibre/manual/plugin_examples/interface_demo/about.txt new file mode 100644 index 0000000000..f35b1e7196 --- /dev/null +++ b/src/calibre/manual/plugin_examples/interface_demo/about.txt @@ -0,0 +1,7 @@ +The Interface Plugin Demo +=========================== + +Created by Kovid Goyal + +Requires calibre >= 0.7.53 + diff --git a/src/calibre/manual/plugin_examples/interface_demo/config.py b/src/calibre/manual/plugin_examples/interface_demo/config.py new file mode 100644 index 0000000000..fd391ce944 --- /dev/null +++ b/src/calibre/manual/plugin_examples/interface_demo/config.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import (unicode_literals, division, absolute_import, + print_function) + +__license__ = 'GPL v3' +__copyright__ = '2011, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + +from PyQt4.Qt import QWidget, QHBoxLayout, QLabel, QLineEdit + +from calibre.utils.config import JSONConfig + +# This is where all preferences for this plugin will be stored +# Remember that this name (i.e. plugins/interface_demo) is also +# in a global namespace, so make it as unique as possible. +# You should always prefix your config file name with plugins/, +# so as to ensure you dont accidentally clobber a calibre config file +prefs = JSONConfig('plugins/interface_demo') + +# Set defaults +prefs.defaults['hello_world_msg'] = 'Hello, World!' + +class ConfigWidget(QWidget): + + def __init__(self): + QWidget.__init__(self) + self.l = QHBoxLayout() + self.setLayout(self.l) + + self.label = QLabel('Hello world &message:') + self.l.addWidget(self.label) + + self.msg = QLineEdit(self) + self.msg.setText(prefs['hello_world_msg']) + self.l.addWidget(self.msg) + self.label.setBuddy(self.msg) + + def save_settings(self): + prefs['hello_world_msg'] = unicode(self.msg.text()) + diff --git a/src/calibre/manual/plugin_examples/interface_demo/images/icon.png b/src/calibre/manual/plugin_examples/interface_demo/images/icon.png new file mode 100644 index 0000000000..ad823e2ff4 Binary files /dev/null and b/src/calibre/manual/plugin_examples/interface_demo/images/icon.png differ diff --git a/src/calibre/manual/plugin_examples/interface_demo/main.py b/src/calibre/manual/plugin_examples/interface_demo/main.py new file mode 100644 index 0000000000..f23664b1de --- /dev/null +++ b/src/calibre/manual/plugin_examples/interface_demo/main.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import (unicode_literals, division, absolute_import, + print_function) + +__license__ = 'GPL v3' +__copyright__ = '2011, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + +if False: + # This is here to keep my python error checker from complaining about + # the builtin functions that will be defined by the plugin loading system + # You do not need this code in your plugins + get_icons = get_resources = None + +from PyQt4.Qt import QDialog, QVBoxLayout, QPushButton, QMessageBox, QLabel + +from calibre_plugins.interface_demo.config import prefs + +class DemoDialog(QDialog): + + def __init__(self, gui, icon, do_user_config): + QDialog.__init__(self, gui) + self.gui = gui + self.do_user_config = do_user_config + + # The current database shown in the GUI + # db is an instance of the class LibraryDatabase2 from database.py + # This class has many, many methods that allow you to do a lot of + # things. + self.db = gui.current_db + + self.l = QVBoxLayout() + self.setLayout(self.l) + + self.label = QLabel(prefs['hello_world_msg']) + self.l.addWidget(self.label) + + self.setWindowTitle('Interface Plugin Demo') + self.setWindowIcon(icon) + + self.about_button = QPushButton('About', self) + self.about_button.clicked.connect(self.about) + self.l.addWidget(self.about_button) + + self.marked_button = QPushButton( + 'Show books with only one format in the calibre GUI', self) + self.marked_button.clicked.connect(self.marked) + self.l.addWidget(self.marked_button) + + self.view_button = QPushButton( + 'View the most recently added book', self) + self.view_button.clicked.connect(self.view) + self.l.addWidget(self.view_button) + + self.conf_button = QPushButton( + 'Configure this plugin', self) + self.conf_button.clicked.connect(self.config) + self.l.addWidget(self.conf_button) + + self.resize(self.sizeHint()) + + def about(self): + # Get the about text from a file inside the plugin zip file + # The get_resources function is a builtin function defined for all your + # plugin code. It loads files from the plugin zip file. It returns + # the bytes from the specified file. + # + # Note that if you are loading more than one file, for performance, you + # should pass a list of names to get_resources. In this case, + # get_resources will return a dictionary mapping names to bytes. Names that + # are not found in the zip file will not be in the returned dictionary. + text = get_resources('about.txt') + QMessageBox.about(self, 'About the Interface Plugin Demo', + text.decode('utf-8')) + + def marked(self): + fmt_idx = self.db.FIELD_MAP['formats'] + matched_ids = set() + for record in self.db.data.iterall(): + # Iterate over all records + fmts = record[fmt_idx] + # fmts is either None or a comma separated list of formats + if fmts and ',' not in fmts: + matched_ids.add(record[0]) + # Mark the records with the matching ids + self.db.set_marked_ids(matched_ids) + + # Tell the GUI to search for all marked records + self.gui.search.setEditText('marked:true') + self.gui.search.do_search() + + def view(self): + most_recent = most_recent_id = None + timestamp_idx = self.db.FIELD_MAP['timestamp'] + + for record in self.db.data: + # Iterate over all currently showing records + timestamp = record[timestamp_idx] + if most_recent is None or timestamp > most_recent: + most_recent = timestamp + most_recent_id = record[0] + + if most_recent_id is not None: + # Get the row number of the id as shown in the GUI + row_number = self.db.row(most_recent_id) + # Get a reference to the View plugin + view_plugin = self.gui.iactions['View'] + # Ask the view plugin to launch the viewer for row_number + view_plugin._view_books([row_number]) + + def config(self): + self.do_user_config(parent=self) + # Apply the changes + self.label.setText(prefs['hello_world_msg']) + diff --git a/src/calibre/manual/plugin_examples/interface_demo/plugin-import-name-interface_demo.txt b/src/calibre/manual/plugin_examples/interface_demo/plugin-import-name-interface_demo.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/calibre/manual/plugin_examples/interface_demo/ui.py b/src/calibre/manual/plugin_examples/interface_demo/ui.py new file mode 100644 index 0000000000..5026269b60 --- /dev/null +++ b/src/calibre/manual/plugin_examples/interface_demo/ui.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import (unicode_literals, division, absolute_import, + print_function) + +__license__ = 'GPL v3' +__copyright__ = '2011, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + +if False: + # This is here to keep my python error checker from complaining about + # the builtin functions that will be defined by the plugin loading system + # You do not need this code in your plugins + get_icons = get_resources = None + +# The class that all interface action plugins must inherit from +from calibre.gui2.actions import InterfaceAction +from calibre_plugins.interface_demo.main import DemoDialog + +class InterfacePlugin(InterfaceAction): + + name = 'Interface Plugin Demo' + + # Declare the main action associated with this plugin + # The keyboard shortcut can be None if you dont want to use a keyboard + # shortcut. Remember that currently calibre has no central management for + # keyboard shortcuts, so try to use an unusual/unused shortcut. + action_spec = ('Interface Plugin Demo', None, + 'Run the Interface Plugin Demo', 'Ctrl+Shift+F1') + + def genesis(self): + # This method is called once per plugin, do initial setup here + + # Set the icon for this interface action + # The get_icons function is a builtin function defined for all your + # plugin code. It loads icons from the plugin zip file. It returns + # QIcon objects, if you want the actual data, use the analogous + # get_resources builtin function. + # + # Note that if you are loading more than one icon, for performance, you + # should pass a list of names to get_icons. In this case, get_icons + # will return a dictionary mapping names to QIcons. Names that + # are not found in the zip file will result in null QIcons. + icon = get_icons('images/icon.png') + + # The qaction is automatically created from the action_spec defined + # above + self.qaction.setIcon(icon) + self.qaction.triggered.connect(self.show_dialog) + + def show_dialog(self): + # The base plugin object defined in __init__.py + base_plugin_object = self.interface_action_base_plugin + # Show the config dialog + # The config dialog can also be shown from within + # Preferences->Plugins, which is why the do_user_config + # method is defined on the base plugin class + do_user_config = base_plugin_object.do_user_config + + # self.gui is the main calibre GUI. It acts as the gateway to access + # all the elements of the calibre user interface, it should also be the + # parent of the dialog + d = DemoDialog(self.gui, self.qaction.icon(), do_user_config) + d.show() + + def apply_settings(self): + from calibre_plugins.interface_demo.config import prefs + # In an actual non trivial plugin, you would probably need to + # do something based on the settings in prefs + prefs + diff --git a/src/calibre/manual/regexp.rst b/src/calibre/manual/regexp.rst index 776141b113..7c879fa2e2 100644 --- a/src/calibre/manual/regexp.rst +++ b/src/calibre/manual/regexp.rst @@ -133,4 +133,5 @@ Thanks for helping with tips, corrections and such: * kacir * Starson17 +For more about regexps see `The Python User Manual `_. diff --git a/src/calibre/manual/sub_groups.rst b/src/calibre/manual/sub_groups.rst index edfc81d3d4..e5a433dce9 100644 --- a/src/calibre/manual/sub_groups.rst +++ b/src/calibre/manual/sub_groups.rst @@ -70,7 +70,7 @@ Then after restarting |app|, you must tell |app| that the column is to be treate At the point there are no genres in the column. We are left with the last step: how to apply a genre to a book. A genre does not exist in |app| until it appears on at least one book. To learn how to apply a genre for the first time, we must go into some detail about what a genre looks like in the metadata for a book. -A hierarchy of 'things' is built by creating an item consisting of phrases separated by periods. Continuing the genre example, these items would "History.Military", "Mysteries.Vampire", "Science Fiction.Space Opera", etc. Thus to create a new genre, you pick a book that should have that genre, edit its metadata, and enter the new genre into the column you created. Continuing our example, if you want to assign a new genre "Comics" with a sub-genre "Superheros" to a book, you would 'edit metadata' for that (comic) book, choose the Custom metadata tab, and then enter "Comics.Superheros" as shown in the following (ignore the other custom columns): +A hierarchy of 'things' is built by creating an item consisting of phrases separated by periods. Continuing the genre example, these items would "History.Military", "Mysteries.Vampire", "Science Fiction.Space Opera", etc. Thus to create a new genre, you pick a book that should have that genre, edit its metadata, and enter the new genre into the column you created. Continuing our example, if you want to assign a new genre "Comics" with a sub-genre "Superheroes" to a book, you would 'edit metadata' for that (comic) book, choose the Custom metadata tab, and then enter "Comics.Superheroes" as shown in the following (ignore the other custom columns): .. image:: images/sg_genre.jpg :align: center @@ -105,8 +105,8 @@ After creating the saved search, you can use it as a restriction. .. image:: images/sg_restrict2.jpg :align: center - Useful Template Functions - ------------------------- +Useful Template Functions +------------------------- You might want to use the genre information in a template, such as with save to disk or send to device. The question might then be "How do I get the outermost genre name or names?" An |app| template function, subitems, is provided to make doing this easier. @@ -114,4 +114,4 @@ After creating the saved search, you can use it as a restriction. {#genre:subitems(0,1)||/}{title} - {authors} -See :ref:`The |app| template language ` for more information templates and the subitem function. \ No newline at end of file +See :ref:`The |app| template language ` for more information templates and the subitem function. diff --git a/src/calibre/manual/tutorials.rst b/src/calibre/manual/tutorials.rst index c156167cb1..84f0281eaa 100644 --- a/src/calibre/manual/tutorials.rst +++ b/src/calibre/manual/tutorials.rst @@ -18,4 +18,5 @@ Here you will find tutorials to get you started using |app|'s more advanced feat regexp portable server + creating_plugins diff --git a/src/calibre/trac/bzr_commit_plugin.py b/src/calibre/trac/bzr_commit_plugin.py index 325bac7a79..c596425a68 100644 --- a/src/calibre/trac/bzr_commit_plugin.py +++ b/src/calibre/trac/bzr_commit_plugin.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' @@ -8,114 +8,74 @@ __docformat__ = 'restructuredtext en' Plugin to make the commit command automatically close bugs when the commit message contains `Fix #number` or `Implement #number`. Also updates the commit message with the summary of the closed bug. It also set the `--fixes` metadata -appropriately. Currently only works with a Trac bug repository with the XMLRPC -plugin enabled. - -To use copy this file into `~/.bazaar/plugins` and add the following to branch.conf -in the working tree you want to use it with:: - - trac_reponame_url = - trac_reponame_username = - trac_reponame_password = +appropriately. ''' -import os, re, xmlrpclib, subprocess -from bzrlib.builtins import cmd_commit as _cmd_commit, tree_files -from bzrlib import branch +import re, urllib, importlib, sys +from bzrlib.builtins import cmd_commit as _cmd_commit import bzrlib +from lxml import html + +SENDMAIL = ('/home/kovid/work/kde', 'pgp_mail') class cmd_commit(_cmd_commit): - @classmethod - def trac_url(self, username, password, url): - 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') - password = config.get_user_option(prefix+'password') - close_bug = config.get_user_option(prefix+'pattern') - if close_bug is None: - close_bug = r'(Fix|Implement|Fixes|Fixed|Implemented)\s+#(\d+)' + def expand_bug(self, msg): + close_bug = r'(Fix|Implement|Fixes|Fixed|Implemented)\s+#(\d+)' close_bug_pat = re.compile(close_bug, re.IGNORECASE) match = close_bug_pat.search(msg) if not match: - return msg, None, None, None + return msg, None, None action, bug = match.group(1), match.group(2) summary = '' - if type == 'trac': - url = self.trac_url(username, password, bug_tracker) - summary = self.get_trac_summary(bug, url) + raw = urllib.urlopen('https://bugs.launchpad.net/calibre/+bug/' + + bug).read() + try: + h1 = html.fromstring(raw).xpath('//h1[@id="edit-title"]')[0] + summary = html.tostring(h1, method='text', encoding=unicode).strip() + except: + summary = 'Private bug' + print 'Working on bug:', summary if summary: msg = msg.replace('#%s'%bug, '#%s (%s)'%(bug, summary)) msg = msg.replace('Fixesed', 'Fixed') - 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 - if os.access(config, os.R_OK): - for line in open(config).readlines(): - match = re.search(r'%s_(\S+)_url\s*=\s*(\S+)'%type, line) - if match: - 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 + return msg, bug, action 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): - nick = config = bug = action = None + bug = action = None if message: - try: - message, bug, url, action, nick, config = \ - self.expand_message(message, tree_files(selected_list)[0]) - except ValueError: - pass + message, bug, action = self.expand_bug(message) - if nick and bug and not fixes: - fixes = [nick+':'+bug] + if bug and not fixes: + fixes = ['lp:'+bug] ret = _cmd_commit.run(self, message=message, file=file, verbose=verbose, selected_list=selected_list, unchanged=unchanged, 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) + if message and bug and action: + self.close_bug(bug, action) return ret - def close_bug(self, bug, action, url, config): + def close_bug(self, bug, action): print 'Closing bug #%s'% bug #nick = config.get_nickname() - suffix = config.get_user_option('bug_close_comment') - if suffix is None: - suffix = 'The fix will be in the next release.' + suffix = ('The fix will be in the next release. ' + 'calibre is usually released every Friday.') action = action+'ed' msg = '%s in branch %s. %s'%(action, 'lp:calibre', suffix) msg = msg.replace('Fixesed', 'Fixed') - server = xmlrpclib.ServerProxy(url) - server.ticket.update(int(bug), msg, - {'status':'closed', 'resolution':'fixed'}, - True) - subprocess.Popen('/home/kovid/work/kde/mail.py -f --delay 10'.split()) + msg += '\n\n status fixreleased' + + sys.path.insert(0, SENDMAIL[0]) + + sendmail = importlib.import_module(SENDMAIL[1]) + + to = bug+'@bugs.launchpad.net' + sendmail.sendmail(msg, to, 'Fixed in lp:calibre') bzrlib.commands.register_command(cmd_commit) diff --git a/src/calibre/translations/af.po b/src/calibre/translations/af.po index 4efc4c0e76..8faa35bce1 100644 --- a/src/calibre/translations/af.po +++ b/src/calibre/translations/af.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2011-03-04 20:51+0000\n" +"POT-Creation-Date: 2011-03-26 02:12+0000\n" "PO-Revision-Date: 2009-11-06 19:11+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Afrikaans \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-03-05 04:34+0000\n" -"X-Generator: Launchpad (build 12351)\n" +"X-Launchpad-Export-Date: 2011-03-27 04:35+0000\n" +"X-Generator: Launchpad (build 12559)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" @@ -27,16 +27,16 @@ msgstr "Doen absolute niks" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:486 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:488 #: /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:660 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:455 -#: /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/devices/usbms/driver.py:461 +#: /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:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:423 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:430 #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:127 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:102 @@ -49,9 +49,9 @@ msgstr "Doen absolute niks" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:31 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:32 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:74 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:414 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:419 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:659 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:424 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:429 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:674 #: /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:54 @@ -61,8 +61,8 @@ msgstr "Doen absolute niks" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:126 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1054 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1164 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1064 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1174 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 @@ -71,7 +71,8 @@ msgstr "Doen absolute niks" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/rtf.py:91 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/rtf.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/snb.py:16 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txtz.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43 @@ -80,13 +81,13 @@ msgstr "Doen absolute niks" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:125 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:159 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:667 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:882 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:884 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:883 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:885 #: /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:981 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:986 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1052 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1006 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1072 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:145 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:152 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:65 @@ -112,10 +113,10 @@ msgstr "Doen absolute niks" #: /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:100 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:101 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:312 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:314 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:313 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:315 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:308 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:315 #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:155 @@ -127,46 +128,46 @@ msgstr "Doen absolute niks" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:153 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1106 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1109 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1108 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1111 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:68 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:145 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:732 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:734 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:440 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:991 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1184 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:449 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:999 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1192 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:70 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:185 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:112 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:199 #: /home/kovid/work/calibre/src/calibre/library/cli.py:216 #: /home/kovid/work/calibre/src/calibre/library/database.py:914 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:486 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:492 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:502 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1706 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1816 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2790 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2792 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2925 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:495 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:503 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:514 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1776 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1900 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2889 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2891 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3024 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:233 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:158 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:161 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:79 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:131 #: /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:55 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:54 msgid "Unknown" msgstr "Onbekend" @@ -179,8 +180,8 @@ msgid "Customize" msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:47 msgid "Cannot configure" msgstr "" @@ -320,7 +321,7 @@ msgid "Change the way calibre behaves" msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:218 msgid "Add your own columns" msgstr "" @@ -458,7 +459,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:995 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:267 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:268 msgid "Plugins" msgstr "" @@ -718,76 +719,92 @@ msgstr "" msgid "Communicate with Android phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:83 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:90 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:130 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:138 msgid "Communicate with S60 phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:92 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:52 +msgid "Use Series as Category in iTunes/iBooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:53 +msgid "Enable to use the series name as the iTunes Genre, iBooks Category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:55 +msgid "Cache covers from iTunes/iBooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:57 +msgid "Enable to cache and display covers from iTunes/iBooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:58 +msgid "Skip 'Connect to iTunes' recommendation" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:60 +msgid "Enable to skip the 'Connect to iTunes' recommendation dialog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:115 msgid "Apple device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:94 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:117 msgid "Communicate with iTunes/iBooks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:100 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:128 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:130 msgid "" "Cannot copy books directly from iDevice. Drag from iTunes Library to " "desktop, then add to calibre's Library window." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:262 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:265 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:290 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:293 msgid "Updating device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:341 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:380 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:949 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:989 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2971 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3011 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:369 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:408 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:986 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1026 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3010 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3050 msgid "%d of %d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:387 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:994 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3017 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:415 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1031 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3056 msgid "finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:562 -msgid "Use Series as Category in iTunes/iBooks" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:564 -msgid "Cache covers from iTunes/iBooks" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:576 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:600 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:913 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:950 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:2552 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2592 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:100 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:447 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:470 @@ -795,23 +812,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:915 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:264 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:288 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:301 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2654 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:445 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:294 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:307 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2753 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:159 msgid "News" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2553 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2593 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:634 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2616 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2634 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2715 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2733 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2875 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2914 msgid "Communicate with iTunes." msgstr "" @@ -854,7 +871,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:67 #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:70 #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:73 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:230 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:232 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:120 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:123 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:126 @@ -874,8 +891,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:285 #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:299 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:382 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:349 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:384 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:273 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:304 msgid "Adding books to device metadata listing..." @@ -885,8 +902,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:309 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:299 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:331 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:301 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:333 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:310 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:328 msgid "Removing books from device..." @@ -894,8 +911,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:324 #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:329 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:335 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:342 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:337 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:344 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:335 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:340 msgid "Removing books from device metadata listing..." @@ -1109,12 +1126,12 @@ msgid "" "Create a tag called \"Im_Reading\" " msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:368 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:383 msgid "Not Implemented" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:467 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:469 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." @@ -1263,7 +1280,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:190 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:69 msgid "Unnamed" msgstr "" @@ -1398,104 +1415,104 @@ msgstr "" msgid "Get device information..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:190 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:197 msgid "Rendered %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:193 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 msgid "Failed %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:247 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:254 msgid "" "Failed to process comic: \n" "\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:266 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:273 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:270 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:277 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:273 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:280 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:275 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 msgid "Disable sharpening." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:277 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:284 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:280 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 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:285 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 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:289 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:296 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:299 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:296 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:303 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:300 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:307 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:309 msgid "Do not convert the image to grayscale (black and white)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:311 msgid "" "Specify the image size as widthxheight pixels. Normally, an image size is " "automatically calculated from the output profile, this option overrides it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 msgid "" "When converting a CBC do not add links to each page to the TOC. Note this " "only applies if the TOC has more than one section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:447 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:459 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:454 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:466 msgid "Page" msgstr "" @@ -1525,62 +1542,62 @@ msgid "" "For full documentation of the conversion system see\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:106 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:108 msgid "INPUT OPTIONS" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:109 msgid "Options to control the processing of the input %s file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:113 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:115 msgid "OUTPUT OPTIONS" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:114 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:116 msgid "Options to control the processing of the output %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:130 msgid "Options to control the look and feel of the output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:143 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:145 msgid "" "Modify the document text and structure using common patterns. Disabled by " "default. Use %s to enable. Individual actions can be disabled with the %s " "options." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:16 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:18 msgid "Modify the document text and structure using user defined patterns." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:160 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:162 msgid "Control auto-detection of document structure." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:169 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:172 msgid "" "Control the automatic generation of a Table of Contents. By default, if the " "source file has a Table of Contents, it will be used in preference to the " "automatically generated one." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:179 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:182 msgid "Options to set metadata in the output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:182 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:185 msgid "Options to help with debugging the conversion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:208 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:211 msgid "List builtin recipes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:284 msgid "Output saved to" msgstr "" @@ -1741,25 +1758,33 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:309 msgid "" +"Some documents specify page margins by specifying a left and right margin on " +"each individual paragraph. calibre will try to detect and remove these " +"margins. Sometimes, this can cause the removal of margins that should not " +"have been removed. In this case you can disable the removal." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:320 +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:314 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:325 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:319 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:330 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:324 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:335 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:330 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:341 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 " @@ -1768,57 +1793,57 @@ msgid "" "Note that only some output formats support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:340 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:351 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:347 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:358 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:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:365 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:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:371 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:367 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:378 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:375 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:386 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:383 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 msgid "" "Convert plain quotes, dashes and ellipsis to their typographically correct " "equivalents. For details, see http://daringfireball.net/projects/smartypants" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:392 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:403 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:399 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:410 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1828,7 +1853,7 @@ msgid "" "current calibre interface language will be used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:414 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:425 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 " @@ -1838,105 +1863,105 @@ msgid "" "instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 #: /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:430 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:441 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:435 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 msgid "The version of the title to be used for sorting. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:439 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 msgid "String to be used when sorting by author. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:443 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 msgid "Set the cover to the specified file or URL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:447 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 #: /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:451 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 #: /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:455 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:466 #: /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:459 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:470 #: /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:463 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:474 #: /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:467 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:478 #: /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:471 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482 #: /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:475 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486 #: /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:479 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:490 #: /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:483 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:494 msgid "Set the publication date." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:487 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:498 msgid "Set the book timestamp (used by the date column in calibre)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:491 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:502 msgid "" "Enable heuristic processing. This option must be set for any heuristic " "processing to take place." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:496 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:507 msgid "" "Detect unformatted chapter headings and sub headings. Change them to h2 and " "h3 tags. This setting will not create a TOC, but can be used in conjunction " "with structure detection to create one." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:503 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:514 msgid "" "Look for common words and patterns that denote italics and italicize them." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:508 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:519 msgid "" "Turn indentation created from multiple non-breaking space entities into CSS " "indents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:513 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:524 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.4, just below " @@ -1944,86 +1969,86 @@ msgid "" "unwrapping this value should be reduced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:521 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:532 msgid "Unwrap lines using punctuation and other formatting clues." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:525 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:536 msgid "" "Remove empty paragraphs from the document when they exist between every " "other paragraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:530 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:541 msgid "" "Left aligned scene break markers are center aligned. Replace soft scene " "breaks that use multiple blank lines withhorizontal rules." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:536 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:547 msgid "" "Replace scene breaks with the specified text. By default, the text from the " "input document is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:541 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:552 msgid "" "Analyze hyphenated words throughout the document. The document itself is " "used as a dictionary to determine whether hyphens should be retained or " "removed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:547 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:558 msgid "" "Looks for occurrences of sequential

or

tags. The tags are " "renumbered to prevent splitting in the middle of chapter headings." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:553 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:564 msgid "Search pattern (regular expression) to be replaced with sr1-replace." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:558 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:569 msgid "Replacement to replace the text found with sr1-search." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:573 msgid "Search pattern (regular expression) to be replaced with sr2-replace." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:567 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:578 msgid "Replacement to replace the text found with sr2-search." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:571 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:582 msgid "Search pattern (regular expression) to be replaced with sr3-replace." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:576 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:587 msgid "Replacement to replace the text found with sr3-search." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:678 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:689 msgid "Could not find an ebook inside the archive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:736 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:747 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:743 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:754 msgid "Failed to parse date/time" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:909 msgid "Converting input to HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:925 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:936 msgid "Running transforms on ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:1015 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:1030 msgid "Creating" msgstr "" @@ -2498,97 +2523,97 @@ msgstr "" msgid "TEMPLATE ERROR" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:576 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:554 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:561 msgid "No" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:576 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:554 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:561 msgid "Yes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:658 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:673 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 #: /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:60 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:418 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:996 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:321 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:427 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1004 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:331 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:574 msgid "Title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:659 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:674 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1005 msgid "Author(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:660 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:675 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:661 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:676 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:662 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:244 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:247 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:380 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1203 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1211 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:211 msgid "Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:664 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:679 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:368 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1207 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:65 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:755 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:761 msgid "Tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:666 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:681 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:30 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:385 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1208 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1216 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:65 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:114 msgid "Series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:667 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:682 msgid "Language" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1191 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:684 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1199 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:671 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:686 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 @@ -2596,7 +2621,7 @@ msgstr "" msgid "Published" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:673 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:688 msgid "Rights" msgstr "" @@ -2698,23 +2723,23 @@ msgstr "" msgid "Cover download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:79 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:81 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:111 msgid "ISBN: %s not found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:117 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:121 msgid "Download covers from amazon.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:211 msgid "Download covers from Douban.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:214 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:220 msgid "Douban.com API timed out. Try again later." msgstr "" @@ -2747,7 +2772,7 @@ msgid "Convert comments downloaded from %s to plain text" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:145 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:157 msgid "Downloads metadata from Google Books" msgstr "" @@ -2878,7 +2903,7 @@ msgstr "" msgid "The publisher of the book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:64 msgid "" "\n" "%prog [options] ISBN\n" @@ -2950,19 +2975,43 @@ msgstr "" msgid "Cover saved to file " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1346 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1471 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1356 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1491 msgid "Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:16 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:280 msgid "Downloads metadata from Amazon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:287 +msgid "US" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:288 +msgid "France" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:289 +msgid "Germany" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:290 +msgid "UK" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:375 +msgid "Amazon timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:93 msgid "Metadata source" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/openlibrary.py:15 +msgid "Downloads metadata from The Open Library" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 msgid "Modify images to meet Palm device size limitations." msgstr "" @@ -3005,70 +3054,70 @@ msgstr "" msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1472 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1492 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1473 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1493 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:199 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1474 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1494 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1475 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1495 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1476 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1496 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1477 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1497 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1478 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1479 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1499 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1480 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1500 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1481 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1501 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1482 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1502 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1483 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1503 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1484 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1504 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1485 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1505 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1486 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1506 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1487 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1507 msgid "Main Text" msgstr "" @@ -3090,7 +3139,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:169 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:66 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:753 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Rating" msgstr "" @@ -3376,7 +3425,7 @@ msgstr "" msgid "Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:271 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:272 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3646,7 +3695,7 @@ msgstr "" msgid "tag browser categories not to display" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:419 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:420 msgid "Choose Files" msgstr "" @@ -3770,58 +3819,58 @@ msgstr "" msgid "Creating book records from ISBNs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:248 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:312 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:268 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:283 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:286 msgid "Select books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:308 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:323 msgid "Merged some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:324 msgid "" "The following duplicate books were found and incoming book formats were " "processed and merged into your Calibre database according to your automerge " "settings:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:329 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:344 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:345 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:351 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:390 msgid "Add to library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:371 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:138 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:384 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:375 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:390 msgid "No book files found" msgstr "" @@ -3915,8 +3964,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:54 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:167 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:126 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:170 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:125 msgid "%d books" msgstr "" @@ -3980,7 +4029,7 @@ msgid "Note that the actual library folder will be renamed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:225 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:199 msgid "Already exists" msgstr "" @@ -4001,11 +4050,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:368 #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:424 #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:430 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:223 msgid "Are you sure?" msgstr "" @@ -4038,8 +4088,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:284 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:286 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:340 msgid "Success" msgstr "" @@ -4052,7 +4102,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:150 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:689 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:972 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:101 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:276 @@ -4086,7 +4136,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:400 #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:782 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:789 msgid "Not allowed" msgstr "" @@ -4117,7 +4167,7 @@ msgid "Bulk convert" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:514 msgid "Cannot convert" msgstr "" @@ -4514,7 +4564,7 @@ msgid "Move to next highlighted match" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/next_match.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:354 msgid "N" msgstr "" @@ -4561,11 +4611,11 @@ msgstr "" msgid "Restart in debug mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:43 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:48 msgid "Cannot configure before calibre is restarted." msgstr "" @@ -4638,7 +4688,7 @@ msgid "Click the show details button to see which ones." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:760 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:766 msgid "Show book details" msgstr "" @@ -4725,36 +4775,40 @@ msgstr "" msgid "View specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:38 +msgid "Read a random book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:181 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 msgid "Format unavailable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:106 msgid "Selected books have no formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:108 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:127 msgid "Choose the format to view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:120 msgid "" "Not all the selected books were available in the %s format. You should " "convert them first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:127 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:128 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 " @@ -4762,11 +4816,11 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:137 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:182 msgid "%s has no available formats." msgstr "" @@ -4835,32 +4889,32 @@ msgstr "" msgid "Saved" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:56 msgid "Searching for sub-folders" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:61 msgid "Searching for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:73 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/__init__.py:108 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:70 msgid "Choose root folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:135 msgid "Invalid root folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:136 msgid "is not a valid root folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:146 msgid "Add books to calibre" msgstr "" @@ -4916,12 +4970,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:162 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:57 #: /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:86 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:565 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:412 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:414 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:417 @@ -4929,8 +4983,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:458 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:460 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:462 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:103 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:175 @@ -4942,9 +4997,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:82 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:272 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:274 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:280 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:89 @@ -4983,69 +5038,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:26 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:484 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:145 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:147 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:160 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1197 msgid "Path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:150 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:153 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:383 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:124 msgid "Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1000 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1192 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1008 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1200 msgid "Collections" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:65 msgid "Click to open" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:367 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:373 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:379 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1198 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1206 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1210 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:344 msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:239 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 msgid "Paste Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:240 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:238 msgid "Copy Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:483 msgid "Double-click to open Book Details window" msgstr "" @@ -5091,7 +5146,7 @@ msgstr "" msgid "output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:295 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 @@ -5114,11 +5169,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:33 #: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:147 #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:40 @@ -5145,68 +5200,36 @@ msgstr "" msgid "Form" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:78 msgid "Bib file encoding:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:43 msgid "Fields to include in output:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 -msgid "ascii/LaTeX" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:80 msgid "Encoding configuration (change if you have errors) :" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 -msgid "strict" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 -msgid "replace" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 -msgid "ignore" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:97 -msgid "backslashreplace" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81 msgid "BibTeX entry type:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:99 -msgid "mixed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:100 -msgid "misc" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:101 -msgid "book" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 msgid "Create a citation tag?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 msgid "Add files path with formats?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 msgid "Expression to form the BibTeX citation tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 msgid "" "Some explanation about this template:\n" " -The fields availables are 'author_sort', 'authors', 'id',\n" @@ -5487,6 +5510,7 @@ msgid "Style the selected text block" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:34 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:36 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:139 msgid "Normal" @@ -6016,7 +6040,7 @@ msgid "&Monospaced font family:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:200 msgid "Metadata" msgstr "" @@ -6094,7 +6118,7 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:525 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:420 msgid "&Author(s): " msgstr "" @@ -6110,7 +6134,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:535 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:428 msgid "&Publisher: " msgstr "" @@ -6121,7 +6145,7 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:537 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:430 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -6129,7 +6153,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:544 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:433 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:293 @@ -6138,8 +6162,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:546 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:434 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:435 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:292 @@ -6352,26 +6376,26 @@ msgstr "" msgid "Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:17 msgid "" "Search\n" "&\n" "Replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:36 msgid "&Search Regular Expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:101 msgid "Invalid regular expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:102 msgid "Invalid regular expression: %s" msgstr "" @@ -6475,19 +6499,19 @@ msgstr "" msgid "The XPath expression %s is invalid." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 msgid "Chapter &mark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 msgid "Remove first &image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 msgid "Insert &metadata as page at start of book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 msgid "" "The header and footer removal options have been replaced by the Search & " "Replace options. Click the Search & Replace category in the bar to the left " @@ -6495,6 +6519,10 @@ msgid "" "header/footer removal regexps into the search field." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 +msgid "Remove &fake margins" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 msgid "" "Table of\n" @@ -6628,7 +6656,7 @@ msgstr "" msgid "TXTZ Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:55 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 @@ -6639,7 +6667,7 @@ msgstr "" msgid "TextLabel" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 msgid "Use a wizard to help construct the Regular expression" msgstr "" @@ -6717,98 +6745,98 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:128 msgid "Browse by covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:158 msgid "Cover browser could not be loaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:113 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:150 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:558 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:599 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:622 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:673 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:629 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:680 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:503 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:114 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:249 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:253 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:252 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:994 msgid "Undefined" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:637 msgid "star(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:638 msgid "Unrated" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:667 msgid "Set '%s' to today" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:669 msgid "Clear '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:290 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:297 msgid " index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:366 msgid "" "The enumeration \"{0}\" contains an invalid value that will be set to the " "default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:520 msgid "Apply changes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:713 msgid "Remove series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:716 msgid "Automatically number books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:719 msgid "Force numbers to start with " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:783 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:790 msgid "" "The enumeration \"{0}\" contains invalid values that will not appear in the " "list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:834 msgid "Remove all tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:846 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:854 msgid "tags to add" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:852 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:861 msgid "tags to remove" msgstr "" @@ -6892,7 +6920,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:611 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:304 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" msgstr "" @@ -6902,7 +6930,7 @@ msgid "Error communicating with device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:628 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:299 msgid "No suitable formats" msgstr "" @@ -6965,7 +6993,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:935 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1018 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1150 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 msgid "Auto convert the following books before uploading to the device?" msgstr "" @@ -6973,25 +7001,25 @@ msgstr "" msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1063 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1065 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1117 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1119 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1157 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 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:1221 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1231 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1222 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1232 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" @@ -7008,14 +7036,14 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:402 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:255 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:61 msgid "Invalid template" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:138 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:403 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:256 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:62 msgid "The template %s is invalid:" @@ -7191,68 +7219,80 @@ msgid "" " have no entries in the database. Check the box next to the item you " "want\n" " to delete. Use with caution.

\n" -"

Fix marked is applicable only to covers (the two lines " -"marked\n" -" 'fixable'). In the case of missing cover files, checking the " -"fixable\n" -" box and pushing this button will remove the cover mark from the\n" -" database for all the files in that category. In the case of extra\n" -" cover files, checking the fixable box and pushing this button will\n" -" add the cover mark to the database for all the files in that\n" -" category.

\n" +"\n" +"

Fix marked is applicable only to covers and missing " +"formats\n" +" (the three lines marked 'fixable'). In the case of missing cover " +"files,\n" +" checking the fixable box and pushing this button will tell calibre " +"that\n" +" there is no cover for all of the books listed. Use this option if " +"you\n" +" are not going to restore the covers from a backup. In the case of " +"extra\n" +" cover files, checking the fixable box and pushing this button will " +"tell\n" +" calibre that the cover files it found are correct for all the books\n" +" listed. Use this when you are not going to delete the file(s). In " +"the\n" +" case of missing formats, checking the fixable box and pushing this\n" +" button will tell calibre that the formats are really gone. Use this " +"if\n" +" you are not going to restore the formats from a backup.

\n" +"\n" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:226 msgid "&Run the check again" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:229 msgid "Copy &to clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:230 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:236 msgid "Delete marked files (checked subitems)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:242 msgid "Fix marked sections (checked fixable items)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:252 msgid "Names to ignore:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:257 msgid "" "Enter comma-separated standard file name wildcards, such as synctoy*.dat" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:260 msgid "Extensions to ignore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:265 msgid "" "Enter comma-separated extensions without a leading dot. Used only in book " "folders" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:308 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:314 msgid "(fixable)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:331 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:337 msgid "Path from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:331 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:337 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:253 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:256 msgid "Name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:366 msgid "" "The marked files and folders will be permanently deleted. Are you " "sure?" @@ -7265,7 +7305,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_device_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1188 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1196 msgid "Format" msgstr "" @@ -7356,6 +7396,20 @@ msgstr "" msgid "&Move current library to new location" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_plugin_toolbars.py:23 +msgid "Add \"%s\" to toolbars or menus" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_plugin_toolbars.py:29 +msgid "Select the toolbars and/or menus to add %s to:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_plugin_toolbars.py:45 +msgid "" +"You can also customise the plugin locations using Preferences -> " +"Customise the toolbar" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33 msgid "Set defaults for conversion of comics (CBR/CBZ files)" msgstr "" @@ -7402,7 +7456,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_location_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:63 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:230 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:228 msgid "Library" msgstr "" @@ -7435,12 +7489,12 @@ 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:998 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1006 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:241 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:575 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:321 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:573 msgid "Date" msgstr "" @@ -7467,12 +7521,12 @@ msgid "Author sort" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1371 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1421 msgid "Invalid author name" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:129 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1372 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1422 msgid "Author names cannot contain & characters." msgstr "" @@ -7705,11 +7759,15 @@ msgid "" "cannot be canceled or undone" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:382 msgid "Book %d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:400 +msgid "Enter an identifier type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:405 msgid "" "You can destroy your library using this feature. Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " @@ -7717,7 +7775,7 @@ msgid "" "character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:413 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -7727,7 +7785,7 @@ msgid "" "text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:424 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -7742,145 +7800,149 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:489 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:502 msgid "S/R TEMPLATE ERROR" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:616 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:646 msgid "You must specify a destination when source is a composite field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:715 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:723 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:844 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:652 +msgid "You must specify a destination identifier type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:759 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:778 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:905 msgid "Search/replace invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:760 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:724 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:779 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:845 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:906 msgid "Search pattern is invalid: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:897 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:958 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:988 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:587 msgid "Delete saved search/replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:989 msgid "The selected saved search/replace will be deleted. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:945 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:953 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1006 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1014 msgid "Save search/replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:946 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1007 msgid "Search/replace name:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:954 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1015 msgid "" "That saved search/replace already exists and will be overwritten. Are you " "sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:524 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:526 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:527 msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:528 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:529 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:504 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:786 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:505 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:532 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:426 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:787 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:533 msgid "No change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:534 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:427 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:536 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:512 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:539 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:431 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:432 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:143 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:540 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:541 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:542 msgid "Check this box to remove all tags from the books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:543 msgid "Remove &all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:547 msgid "If checked, the series will be cleared" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:548 msgid "&Clear series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:549 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7888,192 +7950,202 @@ 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:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:553 msgid "&Automatically number books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:554 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:557 msgid "&Force numbers to start with:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:558 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:978 msgid "&Date:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:559 msgid "d MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:566 msgid "&Apply date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:562 msgid "&Published:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:444 msgid "Clear published date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:567 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:568 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" "title and author are swapped before the title case is set" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:570 msgid "Change title to title &case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:571 msgid "" "Update title sort based on the current title. This will be applied only " "after other changes to title." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:572 msgid "Update &title sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:573 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:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:576 msgid "Remove &stored conversion settings for the selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:577 msgid "Change &cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:578 msgid "&Generate default cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:579 msgid "&Remove cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:580 msgid "Set from &ebook file(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:465 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:392 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:526 msgid "&Basic metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:582 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:404 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:583 msgid "Load searc&h/replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:584 msgid "Select saved search/replace to load." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:585 msgid "Save current search/replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:586 msgid "Sa&ve" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:588 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:64 msgid "Delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:589 msgid "Search &field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:590 msgid "The name of the field that you want to search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:591 msgid "Search &mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:592 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:615 +msgid "Identifier type:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:616 +msgid "Choose which identifier type to operate upon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:595 msgid "Te&mplate:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:596 msgid "Enter a template to be used as the source for the search/replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:597 msgid "&Search for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:598 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:599 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:600 msgid "Cas&e sensitive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:601 msgid "&Replace with:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:602 msgid "" "The replacement text. The matched search text will be replaced with this " "string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:603 msgid "&Apply function after replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:604 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -8081,25 +8153,25 @@ msgid "" "processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:578 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:606 msgid "&Destination field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:579 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:607 msgid "" "The field that the text will be put into after all replacements.\n" "If blank, the source field is used if the field is modifiable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:609 msgid "M&ode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:610 msgid "Specify how the text should be copied into the destination." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:611 msgid "" "Specifies whether result items should be split into multiple values or\n" "left as single values. This option has the most effect when the source field " @@ -8107,41 +8179,41 @@ msgid "" "not multiple and the destination field is multiple" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:614 msgid "Split &result" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:617 msgid "For multiple-valued fields, sho&w" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:618 msgid "values starting a&t" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:619 msgid "with values separated b&y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:620 msgid "" "Used when displaying test results to separate values in multiple-valued " "fields" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:621 msgid "Test text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:622 msgid "Test result" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:623 msgid "Your test:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:624 msgid "&Search and replace" msgstr "" @@ -8152,18 +8224,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:122 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:252 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:262 msgid "Could not read cover" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:253 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:256 msgid "Could not read cover from %s format" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:263 msgid "The cover in the %s format is invalid" msgstr "" @@ -8286,84 +8358,84 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:472 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:49 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:50 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:221 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:384 msgid "Previous" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:483 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:358 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:366 msgid "Save changes and edit the metadata of %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:46 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:103 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:211 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:401 msgid "Next" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:688 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:693 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:695 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:913 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:696 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:698 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:920 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:781 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:783 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:862 msgid "Tags changed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:782 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:784 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:863 msgid "" "You have changed the tags. In order to use the tags editor, you must either " "discard or apply these changes. Apply changes?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:819 msgid "Timed out" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:818 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:820 msgid "" "The download of social metadata timed out, the servers are probably busy. " "Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:825 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:827 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:828 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:860 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:862 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:861 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:863 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:959 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:961 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:310 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:960 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:308 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:962 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:311 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -8376,7 +8448,7 @@ msgid "Meta information" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:92 msgid "" "Automatically create the title sort entry based on the current title entry.\n" "Using this button to create title sort will change title sort from red to " @@ -8384,12 +8456,12 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:413 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:114 msgid "Swap the author and title" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:415 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:103 msgid "" "Automatically create the author sort entry based on the current author " "entry.\n" @@ -8422,7 +8494,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:436 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:121 msgid "Remove unused series (Series that have no books)" msgstr "" @@ -8441,7 +8513,7 @@ msgid "Publishe&d:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:445 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:159 msgid "&Fetch metadata from server" msgstr "" @@ -8504,7 +8576,7 @@ msgid "Update metadata from the metadata in the selected format" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:464 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:585 msgid "&Comments" msgstr "" @@ -8513,23 +8585,23 @@ msgid "Password needed" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:234 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:173 msgid "&Show password" msgstr "" @@ -8572,196 +8644,241 @@ msgstr "" msgid "Restoring database was successful" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:75 +msgid "Saved search already exists" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:76 +msgid "The saved search %s already exists, perhaps with different case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:62 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:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:94 msgid "Saved Search Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:95 msgid "Saved Search: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:96 msgid "Select a saved search to edit" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:97 msgid "Delete this selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:99 msgid "Enter a new saved search name." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:100 msgid "Add the new saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:102 +msgid "Rename the current search to what is in the box" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:104 msgid "Change the contents of the saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:42 +msgid "" +" Download this periodical every week on the specified days " +"after\n" +" the specified time. For example, if you choose: Monday " +"after\n" +" 9:00 AM, then the periodical will be download every Monday " +"as\n" +" soon after 9:00 AM as possible.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:61 +msgid "&Download after:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:91 +msgid "" +" Download this periodical every month, on the specified " +"days.\n" +" The download will happen as soon after the specified time " +"as\n" +" possible on the specified days of each month. For example,\n" +" if you choose the 1st and the 15th after 9:00 AM, the\n" +" periodical will be downloaded on the 1st and 15th of every\n" +" month, as soon after 9:00 AM as possible.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:103 +msgid "&Days of the month:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:105 +msgid "Comma separated list of days of the month. For example: 1, 15" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:109 +msgid "Download &after:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:142 +msgid "" +" Download this periodical every x days. For example, if you\n" +" choose 30 days, the periodical will be downloaded every 30\n" +" days. Note that you can set periods of less than a day, " +"like\n" +" 0.1 days to download a periodical more than once a day.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:151 +msgid "&Download every:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:154 +msgid "every hour" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:157 +msgid "days" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:161 +msgid "" +"Note: You can set intervals of less than a day, by typing the value manually." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:196 msgid "%s news sources" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:311 msgid "Need username and password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:312 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:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:346 msgid "Account" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:347 msgid "(optional)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:348 msgid "(required)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:365 msgid "Created by: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:372 msgid "Last downloaded: never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:373 +msgid "never" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:379 msgid "%d days, %d hours and %d minutes ago" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:211 -msgid "Last downloaded" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:393 +msgid "Last downloaded:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:242 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:421 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 msgid "Schedule news download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:424 msgid "Add a custom news source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:429 msgid "Download all scheduled new sources" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:534 msgid "No internet connection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:535 msgid "Cannot download news as no internet connection is active" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 msgid "&Search:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 msgid "blurb" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 msgid "&Schedule for download:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:229 -msgid "Every " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +msgid "Days of week" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 -msgid "day" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +msgid "Days of month" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 -msgid "Monday" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +msgid "Every x days" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 -msgid "Tuesday" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:223 -msgid "Wednesday" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:224 -msgid "Thursday" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:225 -msgid "Friday" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:226 -msgid "Saturday" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:227 -msgid "Sunday" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:228 -msgid "at" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:230 -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:231 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:253 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:268 -msgid " days" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 msgid "&Account" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 msgid "For the scheduling to work, you must leave calibre running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 msgid "&Schedule" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:238 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 msgid "Add &title as tag" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:239 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 msgid "&Extra tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:240 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "" "Maximum number of copies (issues) of this recipe to keep. Set to 0 to keep " "all (disable)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 msgid "&Keep at most:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "" "

When set, this option will cause calibre to keep, at most, the specified " "number of issues of this periodical. Every time a new issue is downloaded, " @@ -8772,27 +8889,27 @@ msgid "" "below, takes priority over this setting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 msgid "all issues" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 msgid " issues" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:247 +#: /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:248 +#: /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:249 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 msgid "&Delete downloaded news older than:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 msgid "" "

Delete downloaded news older than the specified number of days. Set to " "zero to disable.\n" @@ -8801,15 +8918,20 @@ msgid "" "above." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:252 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:224 msgid "never delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273 +msgid " days" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:226 msgid "Download all scheduled news sources at once" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:227 msgid "Download &all scheduled" msgstr "" @@ -8939,34 +9061,38 @@ msgstr "" msgid "Publishers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:143 msgid " (not on any book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:146 +msgid "Category lookup name: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:222 msgid "Invalid name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:223 msgid "" "That name contains leading or trailing periods, multiple periods in a row or " "spaces before or after periods." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:230 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:151 msgid "Name already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:231 msgid "That name is already used, perhaps with different case." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:229 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:244 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" @@ -9079,12 +9205,12 @@ msgid "%s (was %s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1319 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1367 msgid "Item is blank" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1368 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" @@ -9186,120 +9312,124 @@ msgid "" "updating your calibre library.

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:141 msgid "No recipe selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:146 msgid "The attached file: %s is a recipe to download %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:147 msgid "Recipe for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 msgid "Switch to Advanced mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:162 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:178 msgid "Switch to Basic mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:188 msgid "Feed must have a title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:189 msgid "The feed must have a title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:193 msgid "Feed must have a URL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:194 msgid "The feed %s must have a URL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:200 msgid "This feed has already been added to the recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:233 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:242 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:329 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:337 msgid "Invalid input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:234 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:243 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:338 msgid "

Could not create recipe. Error:
%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:247 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:341 msgid "Replace recipe?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:248 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:307 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:256 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:315 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:342 msgid "A custom recipe named %s already exists. Do you want to replace it?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:282 msgid "Choose builtin recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:328 msgid "Choose a recipe file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:329 msgid "Recipes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:369 msgid "" "You will lose any unsaved changes. To save your changes, click the " "Add/Update recipe button. Continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:257 msgid "Add custom news source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:258 msgid "Available user recipes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:259 msgid "Add/Update &recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 msgid "&Remove recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:257 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 msgid "&Share recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:258 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:262 +msgid "S&how recipe files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 msgid "Customize &builtin recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:264 msgid "&Load recipe from file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266 msgid "" "\n" +"

Stwórz proste źródło " +"newsów, dodając do niego strumień RSS.
Dla większości strumieni, " +"będziesz musiał użyć \"Trybu zaawansowanego\" by bardziej dostosować proces " +"pobierania.

" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 msgid "Recipe &title:" msgstr "&Tytuł źródła:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:271 msgid "&Oldest article:" msgstr "&Najstarszy artykuł może mieć:" -#: /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:272 msgid "The oldest article to download" msgstr "Najstarszy artykuł do pobrania" -#: /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:274 msgid "&Max. number of articles per feed:" msgstr "&Maksymalna ilość artykułów na strumień:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:275 msgid "Maximum number of articles to download per feed." msgstr "Maksymalna liczba artykułów do pobrania na strumień." -#: /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:276 msgid "Feeds in recipe" msgstr "Strumienie w źródle aktualności" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:278 msgid "Remove feed from recipe" msgstr "Usuń strumień ze źródła" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:276 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:281 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:284 msgid "Add feed to recipe" msgstr "Dodaj strumień do źródła" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:282 msgid "&Feed title:" msgstr "&Tytuł strumienia:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:278 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:283 msgid "Feed &URL:" msgstr "Adres &URL strumienia:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:280 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:285 msgid "&Add feed" msgstr "&Dodaj strumień" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:281 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:286 msgid "" "For help with writing advanced news recipes, please visit User Recipes" msgstr "" +"Aby uzyskać pomoc przy tworzeniu zaawansowanych źródeł newsowych, odwiedź Źródła " +"Użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:287 msgid "Recipe source code (python)" msgstr "Kod źródłowy źródła aktualności (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/dnd.py:51 +msgid "Download %s" +msgstr "Pobierz %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/dnd.py:54 +msgid "Downloading %s from %s" +msgstr "Pobieranie %s z %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/dnd.py:84 +msgid "Download failed" +msgstr "Błąd pobierania" + +#: /home/kovid/work/calibre/src/calibre/gui2/dnd.py:85 +msgid "Failed to download from %r with error: %s" +msgstr "Nie powiodło się pobieranie %r z błędem: %s" + #: /home/kovid/work/calibre/src/calibre/gui2/email.py:146 msgid "Email %s to %s" -msgstr "" +msgstr "Email %s do %s" #: /home/kovid/work/calibre/src/calibre/gui2/email.py:188 msgid "News:" @@ -9846,7 +10652,7 @@ msgstr "Newsy:" #: /home/kovid/work/calibre/src/calibre/gui2/email.py:190 msgid "Attached is the %s periodical downloaded by calibre." -msgstr "" +msgstr "W załączeniu przesyłam %s czasopism pobranych przez calibre." #: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 msgid "E-book:" @@ -9857,7 +10663,7 @@ msgid "Attached, you will find the e-book" msgstr "W załączniku znajdziesz e-booka" #: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:185 msgid "by" msgstr "przez" @@ -9873,22 +10679,22 @@ msgstr "Wysyłanie wiadomości do" 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?" +"emailem?" #: /home/kovid/work/calibre/src/calibre/gui2/email.py:300 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 " +"Nie można było przesłać następujących książek emailem, ponieważ nie " "znaleziono odpowiednich formatów:" #: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 msgid "Failed to email book" -msgstr "" +msgstr "Nie udało się wysłać emailem książki" #: /home/kovid/work/calibre/src/calibre/gui2/email.py:309 msgid "sent" -msgstr "" +msgstr "wysłano" #: /home/kovid/work/calibre/src/calibre/gui2/email.py:334 msgid "Sent news to" @@ -9907,6 +10713,16 @@ msgid "" "group names for the various metadata entries are documented in " "tooltips.

" msgstr "" +"
\n" +"

Ustaw wzorzec regularnych wyrażeń dla próby odgadnięcia metadanych " +"książki z nazwy plików.

\n" +"

Dostępny jest tutorial o użyciu regularnych " +"wyrażeń.

\n" +"

Użyj poniższego testu funkcjonalności, by przetestować swoje " +"regularne wyrażenie na kilku przykładowych nazwach plków (pamiętaj, aby " +"dołączyć rozszerzenie pliku). Nazwy grup dla różnych wpisów metadanych są " +"udokumentowane we wskazówkach narzędziowych.

" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 msgid "Regular &expression" @@ -9929,11 +10745,11 @@ msgstr "Wyrażenie regularne (?P<title>)" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:106 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:124 msgid "No match" msgstr "Brak wyników" @@ -9975,7 +10791,7 @@ msgstr "Przeglądarka okładek" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:110 msgid "Shift+Alt+B" -msgstr "" +msgstr "Shift+Alt+B" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:124 msgid "Tag Browser" @@ -9983,7 +10799,7 @@ msgstr "Przeglądarka etykiet" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:126 msgid "Shift+Alt+T" -msgstr "" +msgstr "Shift+Alt+T" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:157 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:29 @@ -10010,11 +10826,11 @@ msgstr "O książce" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:225 msgid "Alt+D" -msgstr "" +msgstr "Alt+D" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:235 msgid "Shift+Alt+D" -msgstr "" +msgstr "Shift+Alt+D" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:61 msgid "Job" @@ -10069,7 +10885,7 @@ msgstr "Zadań:" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" -msgstr "" +msgstr "Shift+Alt+J" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" @@ -10081,11 +10897,12 @@ msgstr " - Zadania" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:424 msgid "Do you really want to stop the selected job?" -msgstr "" +msgstr "Naprawdę chcesz zatrzymać wybrane zadanie?" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:430 msgid "Do you really want to stop all non-device jobs?" msgstr "" +"Naprawdę chcesz zatrzymać wszystkie zadania nie związane z urządzeniem?" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:53 msgid "Eject this device" @@ -10097,10 +10914,10 @@ msgstr "Pokaż książki w bibliotece calibre" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:66 msgid "Show books in the main memory of the device" -msgstr "Pokaż książki w pamięci głownej urządzenia" +msgstr "Pokaż książki w pamięci głównej urządzenia" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:995 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1009 msgid "Card A" msgstr "Karta A" @@ -10109,7 +10926,7 @@ msgid "Show books in storage card A" msgstr "Pokaż książki na karcie pamięci A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:997 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1011 msgid "Card B" msgstr "Karta B" @@ -10125,12 +10942,12 @@ msgstr "dostępne" msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" -"Wyświetlane książki będą zawężone do pozycji z wybranego zapisanego " +"Wyświetlane książki zostaną ograniczone do pozycji pasujących do zapisanego " "wyszukania" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:171 msgid "Shift+Ctrl+F" -msgstr "" +msgstr "Shift+Ctrl+F" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:174 msgid "Advanced search" @@ -10141,6 +10958,9 @@ msgid "" "

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

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

Wyszukaj listę książek po tytule, autorzem wydawcy, etykietach, " +"komentarzach, itd.

Słowa rozdzielone spacją są traktowane jako " +"warunek ORAZ (AND)" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:185 msgid "&Go!" @@ -10148,7 +10968,7 @@ msgstr "Szukaj!" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:191 msgid "Do Quick Search (you can also press the Enter key)" -msgstr "" +msgstr "Wykonaj szybkie wyszukiwanie (możesz też nacisnąć Enter)" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:197 msgid "Reset Quick Search" @@ -10156,7 +10976,7 @@ msgstr "Wyczyść pasek wyszukiwania" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:203 msgid "Change the way searching for books works" -msgstr "" +msgstr "Zmień sposób wyszukiwania książek" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:215 msgid "Copy current search text (instead of search name)" @@ -10170,13 +10990,13 @@ msgstr "Zapisz aktualne wyszukanie pod nazwą pokazaną w polu" msgid "Delete current saved search" msgstr "Usuń aktualne zapisane wyszukanie" -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:354 msgid "Y" -msgstr "" +msgstr "Y" -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:389 msgid "Edit template" -msgstr "" +msgstr "Modyfikuj szablon" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:251 @@ -10184,120 +11004,86 @@ msgid "On Device" msgstr "Na urządzeniu" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:68 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:301 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:311 msgid "Size (MB)" msgstr "Rozmiar (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 msgid "Book %s of %s." -msgstr "" +msgstr "Książka %s z %s." -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:624 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:540 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:554 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:564 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:954 -msgid "checked" -msgstr "zaznaczony" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:624 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:540 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:554 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:564 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:954 -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:192 -msgid "yes" -msgstr "tak" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:626 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:542 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:551 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:561 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:956 -msgid "unchecked" -msgstr "odznaczony" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:626 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:542 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:551 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:561 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:956 -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:192 -msgid "no" -msgstr "nie" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:754 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1308 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:748 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:762 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1316 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:784 msgid "The lookup/search name is \"{0}\"" -msgstr "" +msgstr "Poszukiwana nazwa to \"{0}\"" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:760 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1310 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1318 msgid "This book's UUID is \"{0}\"" -msgstr "" +msgstr "UUID tej książki to \"{0}\"" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:995 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1003 msgid "In Library" msgstr "W bibliotece" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:999 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1007 msgid "Size" msgstr "Rozmiar" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1208 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1216 msgid "Book %s of %s." msgstr "Książka %s z %s." -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1288 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1296 msgid "Marked for deletion" msgstr "Oznaczone do usunięcia" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1291 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1299 msgid "Double click to edit me

" msgstr "Kliknij dwa razy, aby rozpocząć edycję

" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Hide column %s" msgstr "Ukryj kolumnę %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:161 msgid "Sort on %s" msgstr "Posortuj po kolumnie %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:162 msgid "Ascending" msgstr "Rosnąco" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 msgid "Descending" msgstr "Malejąco" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:177 msgid "Change text alignment for %s" msgstr "Zmień wyrównanie tekstu dla %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:179 msgid "Left" msgstr "Do lewej" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:179 msgid "Right" msgstr "Do prawej" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:180 msgid "Center" msgstr "Wyśrodkuj" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:199 msgid "Show column" msgstr "Pokaż kolumnę" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:211 msgid "Restore default layout" msgstr "Przywróć domyślny układ" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:783 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:790 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -10330,7 +11116,7 @@ msgid "No matches for the search phrase %s were found." msgstr "Nie znaleziono wyników dla szukanej frazy %s." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:500 msgid "No matches found" msgstr "Brak pasujących wyników" @@ -10400,6 +11186,8 @@ msgid "" "Ignore custom plugins, useful if you installed a plugin that is preventing " "calibre from starting" msgstr "" +"Ignoruj wtyczki niestandardowe, przydatne gdy zainstalujesz wtyczkę, która " +"zablokuje uruchomienie calibre" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:678 @@ -10443,7 +11231,7 @@ msgstr "Zła lokalizacja bazy danych" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:198 msgid "Bad database location %r. calibre will now quit." -msgstr "Zła lokalizacja bazy danych %r. calibre zostanie teraz wyłączone" +msgstr "Zła lokalizacja bazy danych %r. calibre zostanie teraz wyłączone." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:210 msgid "Corrupted database" @@ -10508,69 +11296,74 @@ msgstr "Nie można uruchomić " msgid "%s is already running." msgstr "%s jest już uruchomiony." -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:25 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 "" +"Przekieruj wynik konsoli na okno dialogowe (zarówno stdout i stderr). " +"Przydatne w oknach gdzie aplikacje GUI nie mają strumieni wynikowych." -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:113 msgid "&Preferences" -msgstr "&Ustawienia" +msgstr "&Preferencje" -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:114 msgid "&Quit" msgstr "&Zakończ" -#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:138 msgid "Unhandled exception" -msgstr "" +msgstr "Nieznany wyjątek" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:111 msgid "Title &sort:" -msgstr "" +msgstr "Sortowanie według &tytułu:" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:220 msgid "Author s&ort:" -msgstr "" +msgstr "S&ortowanie według autora:" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:348 msgid "&Number:" -msgstr "" +msgstr "&Numer:" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:716 msgid "Invalid cover" -msgstr "" +msgstr "Błędna okładka" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:717 msgid "Could not change cover as the image is invalid." -msgstr "" +msgstr "Nie zmieniłem okładki z powodu błednego obrazu" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:744 msgid "This book has no cover" -msgstr "" +msgstr "Ta książka nie ma okładki" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:794 msgid "stars" -msgstr "" +msgstr "gwiazdek" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:828 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

They can be any wordsor phrases, separated by commas." msgstr "" +"Etykiety klasyfikują książki. Jest to szczególnie przydatne przy " +"wyszukiwaniu.

Mogą to być jakiekolwiek słowa lub frazy, oddzielone " +"przecinkami." #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:927 msgid "&Publisher:" -msgstr "" +msgstr "&Wydawca:" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:997 msgid "Clear date" -msgstr "" +msgstr "Data wyczyszczenia" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:109 msgid "Book has neither title nor ISBN" -msgstr "Książka nie ma, ani tytułu, ani kodu ISBN" +msgstr "Książka nie ma ani tytułu, ani kodu ISBN" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:138 msgid "No matches found for this book" @@ -10578,81 +11371,83 @@ msgstr "Nie znaleziono wyników dla tej książki" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:187 msgid "Failed to download metadata" -msgstr "" +msgstr "Nie udało się pobrać metadanych" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:227 msgid "cover" -msgstr "" +msgstr "okładka" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:228 msgid "Downloaded" -msgstr "" +msgstr "Pobrano" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:228 msgid "Failed to get" -msgstr "" +msgstr "Nie udało się uzyskać" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:232 msgid "%s %s for: %s" -msgstr "" +msgstr "%s %s dla: %s" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:291 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:163 msgid "Done" msgstr "Gotowe" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:292 msgid "Successfully downloaded metadata for %d out of %d books" -msgstr "" +msgstr "Udało się pobrać metadane dla %d z %d książek" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:294 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:765 msgid "Details" -msgstr "" +msgstr "Szczegóły" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:68 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:214 msgid "Edit Metadata" -msgstr "" +msgstr "Edycja metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:438 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:604 msgid "Change cover" -msgstr "" +msgstr "Zmień okładkę" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:491 msgid "Co&mments" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:508 -msgid "&Metadata" -msgstr "" +msgstr "Ko&mentarze" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:513 -msgid "&Cover and formats" -msgstr "" +msgid "&Metadata" +msgstr "&Metadane" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:518 +msgid "&Cover and formats" +msgstr "Okładki i &formaty" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:573 msgid "C&ustom metadata" -msgstr "" +msgstr "Własne metadane" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/__init__.py:36 msgid "" "Restore settings to default values. You have to click Apply to actually save " "the default settings." msgstr "" +"Przywróć ustawienia na domyślne wartości. Musisz kliknąć w Zastosuj, aby " +"zapisać ustawienia domyślne." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding.py:28 msgid "Ignore duplicate incoming formats" -msgstr "" +msgstr "Ignoruj zduplikowane formaty" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding.py:29 msgid "Overwrite existing duplicate formats" -msgstr "" +msgstr "Nadpisz istniejące zduplikowane formaty" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding.py:30 msgid "Create new record for each duplicate format" -msgstr "" +msgstr "Stwórz nowy rekord dla każdego zduplikowatego formatu" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:65 msgid "" @@ -10660,10 +11455,13 @@ msgid "" "to it. calibre can either read metadata from the contents of the file, or " "from the filename." msgstr "" +"Tutaj możesz ustawić w jaki sposób calibre będzie czytał metadane z plików " +"które dodasz do programu. calibre albo przeczyta metadane z zawartości pliku " +"albo z nazwy pliku." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:66 msgid "Read &metadata from &file contents rather than file name" -msgstr "" +msgstr "Odczytaj &metadane prędzej z zawartości &pliku niż nazwy pliku" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:67 msgid "" @@ -10689,10 +11487,20 @@ msgid "" "Title match ignores leading indefinite articles (\"the\", \"a\", \"an\"), " "punctuation, case, etc. Author match is exact." msgstr "" +"Autoscalanie: Jeśli znalezione książki mają identyczne tytuły i autorów, " +"połącz dołączane formaty do\n" +"istniejących rekordów książki. Opcja po prawej odpowiada za to co się stanie " +"gdy istniejący rekord ma już\n" +"dołączany format. Weź pod uwagę, że ta opcja ma również wpływ na akcję " +"Kopiuj do biblioteki.\n" +"\n" +"Porównanie tytułów ignoruje poprzedzające przedimki nieokreślone (\"the\", " +"\"a\", \"an\"), interpunkcję, duże, małe litery itd. Porównanie autora jest " +"dokładne." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:74 msgid "&Automerge added books if they already exist in the calibre library:" -msgstr "" +msgstr "&Autoscal dodane książki jeśli już istnieją w bibliotece calibre:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:75 msgid "" @@ -10713,34 +11521,57 @@ msgid "" "punctuation, case, etc.\n" "Author matching is exact." msgstr "" +"Autoscalanie: Jeśli znalezione książki mają identyczne tytuły i autorów, " +"połącz automatycznie dołączane\n" +"formaty do istniejących rekordów książki. Opcja ta odpowiada za to co się " +"stanie gdy istniejący rekord ma już\n" +"dołączany format:\n" +"\n" +"Ignoruj zduplikowane dołączane pliki - oznacza, że istniejące pliki w twojej " +"bibliotece calibrenie zostaną zastąpione\n" +"Nadpisz zduplikowane pliki - oznacza, że istniejące pliki w twojej " +"bibliotece calibre zostaną zastąpione\n" +"Stwórz nowy rekord dla każdego zduplikowanego pliku - stworzony zostanie " +"nowy wpis książki dla każdego zduplikowanego pliku\n" +"\n" +"Porównanie tytułów ignoruje poprzedzające przedimki nieokreślone (\"the\", " +"\"a\", \"an\"), interpunkcję, duże, małe litery itd. Porównanie autora jest " +"dokładne." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:85 msgid "&Tags to apply when adding a book:" -msgstr "" +msgstr "E&tykiety do zastosowanie przy dodawaniu książki:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:86 msgid "" "A comma-separated list of tags that will be applied to books added to the " "library" msgstr "" +"Lista etykiet oddzielonych przecinkiem, które zostaną zastosowane do książek " +"dodawanych do biblioteki" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:87 msgid "&Configure metadata from file name" msgstr "&Konfiguruj metadane pobierane z nazwy pliku" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:140 -msgid "High" -msgstr "Wysoki" - +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:34 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:36 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:141 msgid "Low" msgstr "Niski" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:140 +msgid "High" +msgstr "Wysoki" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:36 +msgid "Very low" +msgstr "Bardzo niski" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:164 msgid "Confirmation dialogs have all been reset" -msgstr "" +msgstr "Wszystkie zapytania o potwierdzenie zostały zresetowane" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:131 msgid "&Overwrite author and title by default when fetching metadata" @@ -10761,7 +11592,7 @@ msgstr "Automatycznie przesyłaj pobrane newsy na czytnik" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:135 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" +"&Usuń wiadomości z biblioteki, gdy są automatycznie wysyłane do czytnika" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:136 msgid "Default network &timeout:" @@ -10772,6 +11603,8 @@ msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" +"Wyznacz domyślny czas oczekiwania dla pobierania z sieci (np. za każdym " +"razem gdy włączamy internet w celu uzyskania informacji)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:138 msgid " seconds" @@ -10787,7 +11620,7 @@ msgstr "Preferowany format &docelowy:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:144 msgid "Restriction to apply when the current library is opened:" -msgstr "" +msgstr "Zastosowane ograniczenie gdy jest otwarta bieżąca biblioteka:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:145 msgid "" @@ -10795,10 +11628,12 @@ msgid "" "used. Also applied when switching to this library. Note that this setting is " "per library. " msgstr "" +"Zastosuj to ograniczenie podczas uruchamiania programu calibre jeśli bieżąca " +"biblioteka jest w użyciu. To ustawienie jest dla biblioteki. " #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:146 msgid "Reset all disabled &confirmation dialogs" -msgstr "" +msgstr "Zresetuj wszystkie wyłączone zapytania o potwierdzenie" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:147 msgid "Preferred &input format order:" @@ -10814,7 +11649,7 @@ msgstr "Musisz wybrać kolumnę, by móc ją usunąć" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:101 msgid "The selected column is not a custom column" -msgstr "" +msgstr "Wskazana kolumna nie jest kolumną dodatkową" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:103 msgid "Do you really want to delete column %s and all its data?" @@ -10827,10 +11662,13 @@ msgid "" "book list. You can hide columns by unchecking them. You can also create your " "own, custom columns." msgstr "" +"Tutaj możesz zmienić układ kolumn w liście książek biblioteki calibre. " +"Możesz ukryć kolumny odznaczając je. Możesz również stworzyć własne, " +"dodatkowe kolumny." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:88 msgid "Move column up" -msgstr "" +msgstr "Przenieś kolumnę w górę" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:84 @@ -10849,38 +11687,42 @@ msgstr "Edytuj ustawienia kolumny użytkownika" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:96 msgid "Move column down" -msgstr "" +msgstr "Przenieś kolumnę w dół" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:91 msgid "Add &custom column" -msgstr "" +msgstr "Dodaj dodatkową &kolumnę" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/conversion.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/conversion.py:41 msgid "" "Restore settings to default values. Only settings for the currently selected " "section are restored." msgstr "" +"Przywróć ustawienia do wartości domyślnych. Tylko ustawienia dla obecnie " +"zaznaczonych sekcji zostaną przywrócone." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:18 msgid "Text, column shown in the tag browser" -msgstr "" +msgstr "Tekst, kolumna pokazywana w przeglądarce etykiet" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:21 msgid "Comma separated text, like tags, shown in the tag browser" msgstr "" +"Tekst rozdzielany przecinkiem, jak etykiety, pokazywany w przeglądarce " +"etykiet" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:24 msgid "Long text, like comments, not shown in the tag browser" -msgstr "Długi tekst, jak komentarze, nie pokazywany w Przeglądarce etykiet" +msgstr "Długi tekst, jak komentarze, nie pokazywany w przeglądarce etykiet" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:27 msgid "Text column for keeping series-like information" -msgstr "" +msgstr "Tekst kolumny dla utrzymania informacji cyklo-podobnych" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:30 msgid "Text, but with a fixed set of permitted values" -msgstr "" +msgstr "Tekst, ale z ustalonym zestawem dozwolonych wartości" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:34 msgid "Floating point numbers" @@ -10892,32 +11734,36 @@ msgstr "Liczby całkowite" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:38 msgid "Ratings, shown with stars" -msgstr "Oceany pokazywane gwiazdkami" +msgstr "Oceny pokazywane gwiazdkami" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:145 msgid "Yes/No" msgstr "Tak/Nie" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:43 msgid "Column built from other columns" -msgstr "" +msgstr "Kolumna składająca się z innych kolumn" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:51 msgid "Create a custom column" -msgstr "" +msgstr "Stwórz własną kolumnę" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:62 msgid "Quick create:" -msgstr "" +msgstr "Szybkie tworzenie:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:149 msgid "Modified Date" -msgstr "" +msgstr "Data modyfikacji" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:66 +msgid "People's names" +msgstr "Nazwiska ludzi" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71 msgid "Number" @@ -10930,7 +11776,7 @@ msgstr "Tekst" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:87 msgid "Edit a custom column" -msgstr "" +msgstr "Edycja własnej kolumny" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:91 msgid "No column selected" @@ -10944,91 +11790,128 @@ msgstr "Żadna kolumna nie została wybrana" msgid "Selected column is not a user-defined column" msgstr "Wybrana kolumna nie jest kolumną użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:146 msgid "My Tags" -msgstr "" +msgstr "Moje etykiety" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:147 msgid "My Series" -msgstr "" +msgstr "Moje cykle" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:148 msgid "My Rating" -msgstr "" +msgstr "Moje oceny" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:150 +msgid "People" +msgstr "Ludzie" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:179 msgid "No lookup name was provided" -msgstr "" +msgstr "Nie podano nazwy do wyszukania" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:183 msgid "" "The lookup name must contain only lower case letters, digits and " "underscores, and start with a letter" msgstr "" +"Nazwy do wyszukania mogą zawierać tylko małe litery, cyfry i podkreślniki, i " +"powinny zaczynać się od litery" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:186 msgid "" "Lookup names cannot end with _index, because these names are reserved for " "the index of a series column." msgstr "" +"Nazwy do wyszukania nie mogą się kończyć ciągiem _index, ponieważ te nazwy " +"są zarezerwowane dla indeksów kolumny cykli" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:196 msgid "No column heading was provided" -msgstr "" +msgstr "Nie podano nagłówka kolumny" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:206 msgid "The lookup name %s is already used" -msgstr "" +msgstr "Nazwa wyszukania %s już została wykorzystana" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:218 msgid "The heading %s is already used" -msgstr "" +msgstr "Nagłówek %s już został wykorzystany" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:229 msgid "You must enter a template for composite columns" -msgstr "" +msgstr "Musisz wprowadzić szablon dla kolumn złożonych" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:238 msgid "You must enter at least one value for enumeration columns" msgstr "" +"Musisz wprowadzić przynajmniej jedną wartość dla kolumn przeliczających" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:228 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:242 msgid "You cannot provide the empty value, as it is included by default" msgstr "" +"Nie możesz wpisać pustej wartości, tak jak to jest załączone domyślnie" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:246 msgid "The value \"{0}\" is in the list more than once" -msgstr "" +msgstr "Wartość \"{0}\" występuje w liście więcej niż jeden raz" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:190 msgid "&Lookup name" -msgstr "" +msgstr "&Nazwa wyszukania" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:191 msgid "Column &heading" msgstr "&Nagłówek kolumny" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:192 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/preferences/create_custom_column_ui.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:193 msgid "" "Column heading in the library view and category name in the tag browser" msgstr "" +"Nagłówek kolumny w widoku biblioteki i nazwa kategorii w przeglądarce etykiet" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:194 msgid "&Column type" -msgstr "" +msgstr "Typ &kolumny" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:195 msgid "What kind of information will be kept in the column." msgstr "Jaki typ informacji będzie przechowywany w kolumnie." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:196 +msgid "" +"Show check marks in the GUI. Values of 'yes', 'checked', and 'true'\n" +"will show a green check. Values of 'no', 'unchecked', and 'false' will show " +"a red X.\n" +"Everything else will show nothing." +msgstr "" +"Pokazuje znaczki potwierdzeń w interfejsie graficznym. Wartości 'tak', " +"'zaznaczony',\n" +"i 'prawda' będą oznaczone na zielono. Wartości 'nie', 'niezaznaczony', i " +"'fałsz'\n" +"będą oznaczone na czerwono. Pozostałe wartości nic nie pokażą." + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:199 +msgid "Show checkmarks" +msgstr "Pokaż znaczki" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:200 +msgid "" +"Check this box if this column contains names, like the authors column." +msgstr "Zaznacz to jeśli ta kolumna zawiera nazwy, tak jak kolumna autorów" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:201 +msgid "Contains names" +msgstr "Zawiera nazwy" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:202 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" @@ -11038,62 +11921,85 @@ msgid "" "
  • dd MMMM yy gives 05 January 10
  • \n" " " msgstr "" +"

    Format daty. Użyj do 1 do 4 'd' dla dnia, od 1 do 4 'M' dla miesiąca, i " +"od 2 do 4 'r' dla roku.

    \n" +"

    Na przykład:\n" +"

      \n" +"
    • ddd, d MMM rrrr wyświetli Pon, 5 Sty 2010
    • \n" +"
    • dd MMMM yy wyświetli 05 Stycznia 10
    • \n" +"
    " -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:208 msgid "Use MMM yyyy for month + year, yyyy for year only" -msgstr "" +msgstr "Użyj MMM rrrr dla miesiąca + roku, rrrr dla roku" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:209 msgid "Default: dd MMM yyyy." -msgstr "Domyślnie: dd MMM yyyy." +msgstr "Domyślnie: dd MMM rrrr." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:210 msgid "Format for &dates" msgstr "Format dla &dat" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:211 msgid "&Template" -msgstr "" +msgstr "&Szablon" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:212 msgid "Field template. Uses the same syntax as save templates." -msgstr "" +msgstr "Szablona pola. Używa takiej samej składni jak zapisane szablony." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:213 msgid "Similar to save templates. For example, {title} {isbn}" -msgstr "" +msgstr "Podobny do zapisywania szablonu. Na przykład, {tytuł} {isbn}" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:194 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:224 msgid "Default: (nothing)" -msgstr "" +msgstr "Domyślnie: (nic)" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:215 msgid "&Sort/search column by" -msgstr "" +msgstr "&Sortowanie/wyszukiwanie kolumny po" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:216 msgid "How this column should handled in the GUI when sorting and searching" msgstr "" +"Jak ta kolumna powinna się zachować w interfejsie graficznym podczas " +"sortowania i wyszukiwania" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:197 -msgid "Values" +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:217 +msgid "If checked, this column will appear in the tags browser as a category" msgstr "" +"Jeśli zaznaczone, ta kolumna pojawi się w przeglądarce etykiet jako kategoria" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:218 +msgid "Show in tags browser" +msgstr "Pokaż w przeglądarce etykiet" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:219 +msgid "Values" +msgstr "Wartości" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:220 msgid "" "A comma-separated list of permitted values. The empty value is always\n" "included, and is the default. For example, the list 'one,two,three' has\n" "four values, the first of them being the empty value." msgstr "" +"Lista dozwolonych wartości oddzielonych przecinkiem. Pusta wartość jest " +"zawsze\n" +"załączona i jest domyślna. Na przykład, lista 'jeden,dwa,trzy' ma 4 " +"wartości,\n" +"pierwszą z nich jest pusta wartość." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:223 msgid "The empty string is always the first value" -msgstr "" +msgstr "Pusty ciąg znaków zawsze jest pierwszą wartością" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_debug.py:21 msgid "Getting debug information" -msgstr "" +msgstr "Uzyskuję informację do debugowania" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_debug.py:22 msgid "Copy to &clipboard" @@ -11101,7 +12007,7 @@ msgstr "Kopiuj do &schowka" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_debug.py:24 msgid "Debug device detection" -msgstr "" +msgstr "Wykrycie urządzenia do debugowania" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:66 msgid "" @@ -11109,10 +12015,13 @@ msgid "" "automatically sent for downloaded news to all email addresses that have Auto-" "send checked." msgstr "" +"calibre może wysyłać twoje książki do ciebie (lub twojego czytnika) emailem. " +"Emaile będą wysyłane automatycznie dla pobranych newsów na wszystkie adresy " +"emailowe które mają zaznaczoną opcję auto-wysyłania." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:67 msgid "Add an email address to which to send books" -msgstr "Dodaj adres email, na którego chcesz wysłać ksiązki" +msgstr "Dodaj adres email, na którego chcesz wysłać książki" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:68 msgid "&Add email" @@ -11136,13 +12045,15 @@ msgstr "E-mail" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:29 msgid "Formats to email. The first matching format will be sent." -msgstr "" +msgstr "Formaty emaila. Pierwszy pasujący format zostanie wysłany." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:30 msgid "" "If checked, downloaded news will be automatically mailed
    to this email " "address (provided it is in one of the listed formats)." msgstr "" +"Jeśli zaznaczone, pobrane newsy zostaną automatycznie wysłane
    na ten " +"adres (pod warunkiem że jest w jednym z wyświetlonych formatów)." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:104 msgid "new email address" @@ -11182,32 +12093,33 @@ msgstr "Nigdy" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:61 msgid "By first letter" -msgstr "" +msgstr "Od pierwszej litery" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:61 msgid "Disabled" -msgstr "" +msgstr "Wyłączone" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:62 msgid "Partitioned" -msgstr "" +msgstr "Podzielone na partycje" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:143 msgid "User Interface &layout (needs restart):" -msgstr "&Układ interfejsu użytkownika (wymaga restartu):" +msgstr "&Układ interfejsu użytkownika (wymaga ponownego uruchomienia):" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:144 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -"&Liczba wyświetlanych okładek w trybie przeglądarki (wymaga restartu):" +"&Liczba wyświetlanych okładek w trybie przeglądarki (wymaga ponownego " +"uruchomienia):" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:145 msgid "Choose &language (requires restart):" -msgstr "Wybierz &język (wymaga restartu):" +msgstr "Wybierz &język (wymaga ponownego uruchomienia):" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:146 msgid "Show &average ratings in the tags browser" -msgstr "Pokaż &średnie oceny w Przeglądarce etykiet" +msgstr "Pokaż &średnie oceny w przeglądarce etykiet" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:147 msgid "Disable all animations. Useful if you have a slow/old computer." @@ -11229,19 +12141,20 @@ msgstr "Pokaż planszę &startową podczas uruchomienia" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:151 msgid "Disable ¬ifications in system tray" -msgstr "" +msgstr "Wyłącz powiadomienia w zasob&niku systemowym" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:152 msgid "Use &Roman numerals for series" -msgstr "" +msgstr "Użyj numeracji rzymskiej dla cykli" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:153 msgid "Show cover &browser in a separate window (needs restart)" -msgstr "Pokaż &przeglądarkę okładek w nowym oknie (wymaga restartu)" +msgstr "" +"Pokaż &przeglądarkę okładek w nowym oknie (wymaga ponownego uruchomienia)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:154 msgid "Tags browser category &partitioning method:" -msgstr "" +msgstr "Metoda kategorii partycjonowania przeglądarki etykiet:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:155 msgid "" @@ -11251,10 +12164,15 @@ msgid "" "have a list of fixed-sized groups. Set to disabled\n" "if you never want subcategories" msgstr "" +"Wybierz jak podkategorie przeglądarki etykiet są wyświetlane\n" +"gdy jest więcej elementów niż wskazuje na to ograniczenie.\n" +"Wybierz od pierwszej litery, aby zobaczyć listę A, B, C. Wybierz\n" +"partycjonowane, aby uzyskać listę grup o określonym rozmiarze.\n" +"Wybierz wyłącz, aby nie oglądać podkategorii" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:160 msgid "&Collapse when more items than:" -msgstr "" +msgstr "Schowaj gdy wystąpi więcej elementów niż:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:161 msgid "" @@ -11262,10 +12180,14 @@ msgid "" "up into sub-categories. If the partition method is set to disable, this " "value is ignored." msgstr "" +"Jeśli kategoria przeglądarki etykier ma większą ilość elementów niż " +"wskazana, jest dzielona\n" +"na podkategorie. Jeśli metoda partycjonowania jest wyłączona, ta wartość jes " +"ignorowana." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:163 msgid "Categories with &hierarchical items:" -msgstr "" +msgstr "Kategorie z elementami hierarchicznymi:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:164 msgid "" @@ -11276,6 +12198,14 @@ msgid "" "both under 'Mystery'. If 'tags' is not in this box,\n" "then the tags will be displayed each on their own line." msgstr "" +"Lista kolumna oddzielana przecinkami, w których elementy zawierające\n" +"okresy są wyświetlane w drzewkach przeglądarki elementów. Na przykład,\n" +"jeśli to pole zawiera 'etykiety' wówczas etykiety z formularza " +"'Tajemnice.Angielski'\n" +"i 'Tajemnice.Thriller' zostaną wyświetlone zarówno z Angielski i Thriller " +"pod\n" +"'Tajemnice'. Jeśli 'etykeity' nie znajdą się w tym polu, wówczas etykiety\n" +"zostaną wyświetlone każda we własnym wierszu." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:170 msgid "&Toolbar" @@ -11291,7 +12221,7 @@ msgstr "Pokaż &tekst pod ikonami:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:173 msgid "&Split the toolbar into two toolbars" -msgstr "" +msgstr "Podziel pa&sek narzędzi na dwa paski" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:174 msgid "Interface font:" @@ -11299,49 +12229,54 @@ msgstr "Czcionka interfejsu:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:175 msgid "Change &font (needs restart)" -msgstr "" +msgstr "Zmień czcionkę (wymaga ponownego uruchomienia)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:96 msgid "&Apply" -msgstr "" +msgstr "&Zastosuj" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Restore &defaults" -msgstr "" +msgstr "Przywróć ustawienia &domyślne" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Save changes" -msgstr "" +msgstr "Zapisz zmiany" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:232 msgid "Cancel and return to overview" -msgstr "" +msgstr "Anuluj i wróć do omówienia" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:288 msgid "Restoring to defaults not supported for" -msgstr "" +msgstr "Przywracanie wartości domyślnych nie jest wspierane dla" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:323 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." msgstr "" +"Niektóre ze zmian wymagają ponownego uruchomienia. Proszę jak najszybciej " +"ponownie uruchomić calibre." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:326 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." msgstr "" +"Zmiany, których dokonałeś wymagają natychmiastowego ponownego uruchomienia " +"programu calibre. Nie można zmieniać żadnych dalszych preferencji bez " +"uprzedniego ponownego uruchomienia." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:331 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:132 msgid "Restart needed" -msgstr "" +msgstr "Wymagane ponowne uruchomienie" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:42 msgid "Failed to install command line tools." -msgstr "Nie powiodła się instalacja narzędzi linii poleceń." +msgstr "Instalacja narzędzi linii poleceń nie powiodła się." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:45 msgid "Command line tools installed" @@ -11361,6 +12296,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:61 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" +"&Maksymalna ilość oczekujących procesów roboczych (wymaga ponownego " +"uruchomienia):" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:62 msgid "Limit the max. simultaneous jobs to the available CPU &cores" @@ -11369,7 +12306,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:63 msgid "Debug &device detection" -msgstr "" +msgstr "Wykrycie urzą&dzenia debugującego" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:64 msgid "Open calibre &configuration directory" @@ -11381,7 +12318,7 @@ msgstr "Za&instaluj narzędzia linii komend" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:31 msgid "Open Editor" -msgstr "" +msgstr "Otwórz edytor" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:65 msgid "Device currently connected: " @@ -11389,21 +12326,22 @@ msgstr "Podłączone urządzenie: " #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:68 msgid "Device currently connected: None" -msgstr "" +msgstr "Podłączone urządzenie: brak" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:228 msgid "" "That format and device already has a plugboard or conflicts with another " "plugboard." msgstr "" +"Ten format i urządzenie już ma wtyczkę lub wystąpił konflikt z inną wtyczką." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:261 msgid "Invalid destination" -msgstr "" +msgstr "Niepoprawne miejsce przeznaczenia" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:262 msgid "The destination field cannot be blank" -msgstr "" +msgstr "Pole przeznaczenia nie może byc puste" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:114 msgid "" @@ -11424,52 +12362,68 @@ msgid "" "users might do to force it to use the ';' that the kindle requires. A third " "would be to specify the language." msgstr "" +"Tutaj możesz zmienić metadane, których calibre używa do aktualizacji książki " +"podczas zapisywania na dysk lub wysyłania na urządzenie.\n" +"\n" +"Tutaj możesz zdefiniować 'wtyczkę' dla formatu (lub wszystkich formatów) i " +"urządzeń (lub wszystkich urządzeń). Wtyczka określa, jaki szablon jest " +"podłączony do jakiego pola. Szablon jest wykorzystany do obliczenia " +"wartości, a ta wartość jest przypisywana do podłączonego pola.\n" +"\n" +"Szablony często zawierają proste referencje do złożonych kolumn, ale nie " +"jest to wymagane. Możesz wykorzystać jakikolwiek szablon z pola źródłowego, " +"który możesz wykorzystać wszędzie w calibre.\n" +"\n" +"Wtyczki można użyć między innymi do zmiany tytułu, który ma zawierać " +"informacje o cyklu. Można także zmienić sortowanie według autora, " +"użytkownicy formatu mobi mogą wymusić używanie ';', czego wymaga kindle. " +"Trzecim wykorzystaniem może być określenie języka." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:121 msgid "Format (choose first)" -msgstr "" +msgstr "Format (wybierz pierwszy)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:122 msgid "Device (choose second)" -msgstr "" +msgstr "Urządzenie (wybierz drugie)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:123 msgid "Add new plugboard" -msgstr "" +msgstr "Dodaj nową wtyczkę" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:124 msgid "Edit existing plugboard" -msgstr "" +msgstr "Edytuj istniejącą wtyczkę" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:125 msgid "Existing plugboards" -msgstr "" +msgstr "Istniejące wtyczki" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:126 msgid "Source template" -msgstr "" +msgstr "Szablon źródłowy" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:127 msgid "Destination field" -msgstr "" +msgstr "Pole miejsca przeznaczenia" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:128 msgid "Save plugboard" -msgstr "" +msgstr "Zapisz wtyczkę" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:129 msgid "Delete plugboard" -msgstr "" +msgstr "Skasuj wtyczkę" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:178 msgid "%(plugin_type)s %(plugins)s" msgstr "%(plugins)s: %(plugin_type)s" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:179 msgid "plugins" -msgstr "Wtyczki" +msgstr "wtyczki" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:188 msgid "" "\n" "Customization: " @@ -11477,81 +12431,88 @@ msgstr "" "\n" "Dostosowywanie: " -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:217 msgid "Search for plugin" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:224 -msgid "No matches" -msgstr "" +msgstr "Szukaj wtyczki" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:225 +msgid "No matches" +msgstr "Brak trafień" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:226 msgid "Could not find any matching plugins" -msgstr "" +msgstr "Nie znalazłem żadnych pasujących wtyczek" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:266 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:267 msgid "Add plugin" -msgstr "" +msgstr "Dodaj wtyczkę" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:275 msgid "" "Installing plugins is a security risk. Plugins can contain a " "virus/malware. Only install it if you got it from a trusted source. Are you " "sure you want to proceed?" msgstr "" +"Instalacja wtyczek niesie ze sobą ryzyko związane z bezpieczeństwem. " +"Wtyczki mogą zawierać wirusy/szkodliwe oprogramowanie. Instaluj tylko " +"wtyczki pochodzące z zaufanych źródeł. Jesteś pewien, że chcesz kontynuować?" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:287 msgid "" "Plugin {0} successfully installed under {1} plugins. You may " "have to restart calibre for the plugin to take effect." msgstr "" +"Wtyczka {0} pomyślnie zainstalowana pod {1} wtyczkami. " +"Możliwe, że trzeba ponownie uruchomić calibre, aby wtyczka zaczęła działać." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:295 msgid "No valid plugin path" msgstr "Niewłaściwa ścieżka do wtyczki" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:296 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/preferences/plugins.py:303 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:305 msgid "Select an actual plugin under %s to customize" -msgstr "" +msgstr "Wskaż aktualną wtyczkę pod %s w celu dostosowania" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:311 msgid "Plugin cannot be disabled" msgstr "Wtyczka nie może zostać wyłączona" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:310 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:312 msgid "The plugin: %s cannot be disabled" msgstr "Wtyczka %s nie może zostać wyłączona" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:322 msgid "Plugin not customizable" msgstr "Tej wtyczki nie można dostosowywać" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:323 msgid "Plugin: %s does not need customization" msgstr "Wtyczka %s nie potrzebuje dodatkowego dostosowywania" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:327 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:329 msgid "Must restart" -msgstr "Wymagany restart" +msgstr "Wymagane ponowne uruchomienie" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:330 msgid "" "You must restart calibre before you can configure the %s plugin" msgstr "" +"Musisz ponownie uruchomić program calibre nim będziesz mógł skonfigurować " +"%s wtyczkę" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:335 msgid "Plugin {0} successfully removed" -msgstr "" +msgstr "Wtyczka {0} została pomyślnie usunięta" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:343 msgid "Cannot remove builtin plugin" msgstr "Nie można usunąć wbudowanej wtyczki" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:344 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. " @@ -11562,7 +12523,7 @@ msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -"Tutaj można dostosować zachowanie Calibre poprzez kontrolę wtyczek, których " +"Tutaj można dostosować zachowanie calibre poprzez kontrolę wtyczek, których " "ma używać." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:90 @@ -11579,25 +12540,29 @@ msgstr "&Usuń wtyczkę" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:93 msgid "&Add a new plugin" -msgstr "" +msgstr "Dod&aj nową wtyczkę" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:33 msgid "Any custom field" -msgstr "" +msgstr "Jakiekolwiek pole dodatkowe" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:34 msgid "The lookup name of any custom field. These names begin with \"#\")" msgstr "" +"Nazwa wyszukania jakiegokolwiek pola dodatkowego. Te nazwy zaczynają się od " +"znaku \"#\"." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:57 msgid "Constant template" -msgstr "" +msgstr "Stały szablon" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:58 msgid "" "The template contains no {fields}, so all books will have the same name. Is " "this OK?" msgstr "" +"Szablon nie zawiera żadnych {fields}, więc wszystkie książki będą miały tę " +"samą nazwę. Tak ma być?" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template_ui.py:47 msgid "Save &template" @@ -11611,6 +12576,11 @@ msgid "" "particular book does not have some metadata, the variable will be replaced " "by the empty string." msgstr "" +"Dostosowując poniższy szablon, może kontrolować, w których folderach pliki " +"są zapisywane i jakie mają nadawane nazwy. Możesz użyć znaku / by wskazać " +"podfoldery. Dostępne są wskazane poniżej zmienne metadanych. Gdy dana " +"książka nie posiada metadanych, zmienna zostanie zastąpiona pustym ciągiem " +"znaków." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template_ui.py:49 msgid "Available variables:" @@ -11682,6 +12652,30 @@ msgid "" "check for duplicates, to find which column contains a particular item, or to " "have hierarchical categories (categories that contain categories)." msgstr "" +"Zgrupowane wyszukiwanie są to wyszukania, które pozwalają zapytaniu " +"automatycznie wyszukiwać pośród więcej niż jednej kolumn. Na przykład, jeśli " +"stworzysz zgrupowane wyszukanie wszystkiecykle (allseries) z " +"wartością cykle, #mojecykle, #mojecykle2, wówczas zapytanie " +"wszystkiecykle:adhoc znajdzie 'adhoc' w każdej z kolumn " +"cykle, #mojecykle i " +"#mojecykle2.

    Wpisz nazwę zgrupowanego wyszukiwania w polu " +"rozwijanym, wpisz listę kolumn do wyszukania w polu wartości, a następnie " +"naciśnij Zapisz.

    Informacja: wyszukiwanie wymusza małe litery; " +"MojWyszukanie i mojewyszukanie oznacza ten sam " +"warunek.

    Możesz ustawić, aby zgrupowane wyszukiwanie pokazywało się jako " +"kategoria użytkownika w przeglądarce etykiet. Wytarczy, że dodasz nazwy " +"zgrupowanego wyszukiwania do pola Stwórz kategorie użytkownika. Możesz dodać " +"wiele warunków oddzielonych przecinkiem. Nowa kategoria użytkownika zostanie " +"automatycznie wstawiona z wszystkimi elementami w kategoriach zawartych w " +"zgrupowanym wyszukiwaniu.

    Automatyczne kategorie użytkownika pozwalają na " +"łatwe obejrzenie wszystkich elementów kategorii, które są w kolumnach " +"zawartych w zgrupowanym wyszukiwaniu. Używając powyższego " +"wszystkiecykle przykładu, automatycznie wygenerowana kategoria " +"użytkownika będzie zawierać wszystkie cykle zawarte w cykle, " +"#mojecykle i #mojecykle2. To może być pomocne przy " +"sprawdzaniu duplikatów, przy wyszukaniu kolumn zawierających określone " +"elementy lub do posiadania hierarchicznych kategorii (kategorii, które " +"zawierają kategorie)." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search.py:106 @@ -11690,40 +12684,42 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:119 msgid "Grouped Search Terms" -msgstr "" +msgstr "Zgrupowane wyszukiwanie" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search.py:97 msgid "The search term cannot be blank" -msgstr "" +msgstr "Wyszukiwanie nie może być puste" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search.py:107 msgid "That name is already used for a column or grouped search term" msgstr "" +"Ta nazwa już jest wykorzystana dla kolumny lub zgrupowanego wyszukiwania" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search.py:111 msgid "That name is already used for user category" -msgstr "" +msgstr "Ta nazwa już jest wykorzystana dla kategorii użytkownika" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search.py:117 msgid "The value box cannot be empty" -msgstr "" +msgstr "Pole wartości nie może być puste" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search.py:129 msgid "The empty grouped search term cannot be deleted" -msgstr "" +msgstr "Puste zgrupowane wyszukiwanie nie może zostać skasowane" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:110 msgid "Search as you &type" -msgstr "" +msgstr "Szukaj w &trakcie pisania" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:111 msgid "" "&Highlight search results instead of restricting the book list to the results" msgstr "" +"&Podświetlaj wyniki wyszukania zamiast ograniczać listę książek do wyników" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:112 msgid "What to search by default" -msgstr "" +msgstr "Czego domyślnie szukać" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:113 msgid "" @@ -11732,14 +12728,19 @@ msgid "" "search not just authors but title/tags/series/comments/etc. Use these " "options if you would like to change this behavior." msgstr "" +"Gdy wpiszesz frazę wyszukania bez prefiksu, calibre domyślnie przeszuka " +"wszystkie metadane pod tym kątem. Na przykład wpisując \"asimov\" przeszuka " +"nie tylko według autora, ale także po " +"tytule/etykiecie/cyklu/komentarzach/itd. Użyj tych opcji jeśli chcesz " +"zmienić to zachowanie." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:114 msgid "&Limit the searched metadata" -msgstr "" +msgstr "&Ogranicz przeszukiwane metadane" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:115 msgid "&Columns that non-prefixed searches are limited to:" -msgstr "" +msgstr "&Kolumny których bezprefiksowe wyszukiwania są ograniczone do:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:116 msgid "" @@ -11748,12 +12749,19 @@ msgid "" "you always use prefixes in your saved searches. For example, use " "\"series:Foundation\" rather than just \"Foundation\" in a saved search" msgstr "" +"Ta opcja ma wpływ na wszystkie wyszukiwania, włącznie z zapisanymi " +"wyszukiwaniami i ograniczeniami. Dlatego też, jeśli użyjesz tej opcji, " +"najlepiej będzie, jeśli się upewnisz, że zawsze używasz prefiksów w " +"zapisanych wyszukiwaniach. Na przykład użyj lepiej \"cykle:Fundacja\" niż " +"samo \"Fundacja\" w zapisanych wyszukiwaniach" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:117 msgid "" "Clear search histories from all over calibre. Including the book list, e-" "book viewer, fetch news dialog, etc." msgstr "" +"Wyczyść historię wyszukiwania w całym calibre. Włącznie z listą książek, " +"przeglądarką książek, pobieraniem newsów itd." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:118 msgid "Clear search &histories" @@ -11771,10 +12779,15 @@ msgid "" "changing the name and pressing Save. Change the value of\n" "a search term by changing the value box then pressing Save." msgstr "" +"Zawiera nazwy obecnie zdefiniowanych zgrupowanych wyszukiwań.\n" +"Stwórz nową nazwę wpisując ją w puste pole, a następnie\n" +"naciśnij Zapisz. Zmień nazwę wyszukiwania wskazując je, a potem\n" +"zmień nazwę i naciśnij Zapisz. Zmień wartość wyszukiwania\n" +"zmieniając wartość w polu, a następnie naciśnij Zapisz." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:126 msgid "Delete the current search term" -msgstr "" +msgstr "Skasuj bieżące wyszukiwanie" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:128 msgid "" @@ -11782,6 +12795,9 @@ msgid "" "changing the name then pressing Save. You can change the value\n" "of a search term by changing the value box then pressing Save." msgstr "" +"Zapisz bieżące wyszukiwanie. Możesz zmienić nazwę wyszukiwania\n" +"zmieniając nazwę i naciskając Zapisz. Możesz zmienić wartość\n" +"wyszukiwania zmieniając wartość pola, a następnie naciskając Zapisz." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:131 msgid "&Save" @@ -11789,13 +12805,15 @@ msgstr "&Zapisz" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:132 msgid "Make &user categories from:" -msgstr "" +msgstr "Utwórz kategorie użytkownika z:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:133 msgid "" "Enter the names of any grouped search terms you wish\n" "to be shown as user categories" msgstr "" +"Wpisz nazwy jakiegokolwiek zgrupowanego wyszukiwania,\n" +"które chcesz wyświetlać w kategoriach użytkownika" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:70 @@ -11826,6 +12844,14 @@ msgid "" "

  • Automatic management: Calibre automatically keeps metadata on the " "device in sync with the calibre library, on every connect
  • " msgstr "" +"
  • Manualne zarządzanie: Calibre aktualizuje metadane i dodaje " +"kolekcje tylko gdy książka jest wysyłana. Z tą opcją, calibre nigdy nie " +"usunie kolekcji.
  • \n" +"
  • Tylko przy wysyłaniu: Calibre aktualizuje metadane i dodaje/usuwa " +"kolekcje dla książki wtedy, gdy książka jest wysłana na urządzenie.
  • \n" +"
  • Automatyczne zarządzanie: Calibre automatycznie przechowuje " +"metadane na urządzeniu w synchronizacji z biblioteką calibre, przy każdym " +"połączeniu
  • " #: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:77 msgid "" @@ -11833,9 +12859,13 @@ msgid "" "Send to Device button. This setting can be overriden for individual devices " "by customizing the device interface plugins in Preferences->Advanced->Plugins" msgstr "" +"Tutaj możesz ustalić zachowanie calibre odnośnie zapisywania twoich książek " +"gdy klikniesz w przycisk Wyślij na Urządzenie. Te ustawienia mogą zostać " +"uchylone dla indywidualnych urządzeń poprzez dostosowanie wtyczek interfejsu " +"urzadzenia w Preferencje->Zaawansowane->Wtyczki" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:382 msgid "Failed to start content server" msgstr "Włączanie serwera zakończone niepowodzeniem" @@ -11849,7 +12879,7 @@ msgstr "Dziennik dostępów:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:133 msgid "You need to restart the server for changes to take effect" -msgstr "Musisz zrestartować serwer, aby zmiany były widoczne" +msgstr "Musisz ponownie uruchomić serwer, aby zmiany były widoczne" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:124 msgid "Server &port:" @@ -11868,6 +12898,8 @@ msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" +"Maksymalny rozmiar (szerokośćxwysokość) dla wyświetlanych okładek. Większe " +"okładki zostaną zmniejszone. " #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:129 msgid "Max. &cover size:" @@ -11875,15 +12907,15 @@ msgstr "Maks. rozmiar &okładki" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:131 msgid "Max. &OPDS items per query:" -msgstr "" +msgstr "Maks. elementy &OPDS dla zapytań:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:132 msgid "Max. OPDS &ungrouped items:" -msgstr "" +msgstr "Maks. niezgr&upowane elementy OPDS:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:133 msgid "Restriction (saved search) to apply:" -msgstr "" +msgstr "Ograniczenie (zapisane wyszukiwanie) do zastosowania:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:134 msgid "" @@ -11891,6 +12923,10 @@ msgid "" "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 "" +"To ograniczenie (oparte na zapisanym wyszukaniu) ograniczy ilość dostępnych " +"książek na serwerze zawartości do tych spełniających kryteria wyszukiwania. " +"To ustawienie dotyczy biblioteki (np. możesz mieć różne ograniczenia dla " +"każdej biblioteki)." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:135 msgid "&Start Server" @@ -11932,8 +12968,8 @@ 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, by pozostawić calibre załączone, jako że serwer działa tylko " -"wtedy, gdy calibre pracuje.\n" +"

    Pamiętaj, by pozostawić włączony program calibre, gdyż 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. myhostname powinien być poprawną nazwą hosta lub " @@ -12010,6 +13046,71 @@ msgid "" "

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

    Tutaj możesz dodawać lub usuwać funkcje używane w procesie " +"tworzenia\n" +" szablonu. Funkcja szablonu jest pisana w pythonie. Pobiera " +"informacje\n" +" z książki, przetwarza je po czy zwraca wynik w postaci ciągu znaków. " +"Funkcje\n" +" zdefiniowane tutaj można wykorzystać w szablonach w ten sam sposób " +"co\n" +" wbudowane funkcje. Funkcja musi zostać nazwana evaluate i " +"mieć\n" +" poniższy podpis.

    \n" +"

    evaluate(self, formatter, kwargs, mi, locals, twoje " +"parametry)\n" +" → zwracany ciąg unicode

    \n" +"

    Parametry funkcji evaluate:\n" +"

      \n" +"
    • formatter: the instance of the formatter being used to\n" +" evaluate the current template. You can use this to do recursive\n" +" template evaluation.
    • \n" +"
    • kwargs: a dictionary of metadata. Field values are in " +"this\n" +" dictionary.\n" +"
    • mi: a Metadata instance. Used to get field information.\n" +" This parameter can be None in some cases, such as when evaluating\n" +" non-book templates.
    • \n" +"
    • locals: the local variables assigned to by the current\n" +" template program.
    • \n" +"
    • your parameters: You must supply one or more formal\n" +" parameters. The number must match the arg count box, unless arg " +"count is\n" +" -1 (variable number or arguments), in which case the last argument " +"must\n" +" be *args. At least one argument is required, and is usually the " +"value of\n" +" the field being operated upon. Note that when writing in basic " +"template\n" +" mode, the user does not provide this first argument. Instead it is\n" +" supplied by the formatter.
    • \n" +"

    \n" +"

    \n" +" The following example function checks the value of the field. If " +"the\n" +" field is not empty, the field's value is returned, otherwise the " +"value\n" +" EMPTY is returned.\n" +"

    \n"
    +"        name: my_ifempty\n"
    +"        arg count: 1\n"
    +"        doc: my_ifempty(val) -- return val if it is not empty, otherwise the "
    +"string 'EMPTY'\n"
    +"        program code:\n"
    +"        def evaluate(self, formatter, kwargs, mi, locals, val):\n"
    +"            if val:\n"
    +"                return val\n"
    +"            else:\n"
    +"                return 'EMPTY'
    \n" +" This function can be called in any of the three template program " +"modes:\n" +"
      \n" +"
    • single-function mode: {tags:my_ifempty()}
    • \n" +"
    • template program mode: {tags:'my_ifempty($)'}
    • \n" +"
    • general program mode: program: my_ifempty(field('tags'))
    • \n" +"

      \n" +" " #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:143 @@ -12017,27 +13118,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:154 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:165 msgid "Template functions" -msgstr "" +msgstr "Funkcje szablonu" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:134 msgid "You cannot delete a built-in function" -msgstr "" +msgstr "Nie możesz skasować wbudowanych funkcji" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:144 msgid "Function not defined" -msgstr "" +msgstr "Niezdefiniowana funkcja" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:155 msgid "Argument count must be -1 or greater than zero" -msgstr "" +msgstr "Suma argumentu musi wynosić -1 lub być większa od zera" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:166 msgid "Exception while compiling function" -msgstr "" +msgstr "Podczas kompilowania funkcji nastąpił wyjątek" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:194 msgid "function source code not available" -msgstr "" +msgstr "kod źródłowy funkcji niedostępny" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions_ui.py:96 msgid "&Function:" @@ -12045,15 +13146,15 @@ msgstr "&Funkcja:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions_ui.py:97 msgid "Enter the name of the function to create." -msgstr "" +msgstr "Wpisz nazwę funkcji, którą chcesz stworzyć." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions_ui.py:98 msgid "Arg &count:" -msgstr "" +msgstr "Suma argumentów:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions_ui.py:99 msgid "Set this to -1 if the function takes a variable number of arguments" -msgstr "" +msgstr "Ustaw to na -1 jeśli funkcja pobiera zmienną ilość argumentów" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions_ui.py:102 msgid "&Delete" @@ -12065,91 +13166,91 @@ msgstr "Z&astąp" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions_ui.py:104 msgid "C&reate" -msgstr "" +msgstr "Utwó&rz" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions_ui.py:105 msgid "&Program Code: (be sure to follow python indenting rules)" -msgstr "" +msgstr "Kod &programu: (stosuj reguły wcięć z pythona)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:36 msgid "Switch between library and device views" -msgstr "" +msgstr "Przełącz pomiędzy widokami biblioteki i urządzenia" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:39 msgid "Separator" -msgstr "" +msgstr "Odstęp" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:55 msgid "Choose library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:206 -msgid "The main toolbar" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:207 -msgid "The main toolbar when a device is connected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:208 -msgid "The context menu for the books in the calibre library" -msgstr "" +msgstr "Wybierz bibliotekę" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:210 +msgid "The main toolbar" +msgstr "Główny pasek narzędzi" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:211 +msgid "The main toolbar when a device is connected" +msgstr "Główny pasek narzędzi gdy urządzenie jest podłączone" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:212 +msgid "The context menu for the books in the calibre library" +msgstr "Menu kontekstowe dla książek w bibliotece calibre" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:214 msgid "The context menu for the books on the device" -msgstr "" +msgstr "Menu kontekstowe dla książek na urządzeniu" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:244 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:248 msgid "Cannot add" -msgstr "" +msgstr "Nie można dodać" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:249 msgid "Cannot add the actions %s to this location" -msgstr "" +msgstr "Nie można dodać akcji %s do tej lokalizacji" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:267 msgid "Cannot remove" -msgstr "" +msgstr "Nie mogę usunąć" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:268 msgid "Cannot remove the actions %s from this location" -msgstr "" +msgstr "Nie mogę usunąć akcji %s z tej lokalizacji" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:99 msgid "Customize the actions in:" -msgstr "" +msgstr "Dostosuj akcje w:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:100 msgid "A&vailable actions" -msgstr "" +msgstr "Dostępne &akcje" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:101 msgid "&Current actions" -msgstr "" +msgstr "Obe&cne akcje" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:102 msgid "Move selected action up" -msgstr "" +msgstr "Przenieś wybraną akcję do góry" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:104 msgid "Move selected action down" -msgstr "" +msgstr "Przenieś wybraną akcję w dół" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:107 msgid "Add selected actions to toolbar" -msgstr "" +msgstr "Dodaj wybrane akcje do paska narzędzi" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:109 msgid "Remove selected actions from toolbar" -msgstr "" +msgstr "Usuń wybrane akcje z paska narzędzi" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:113 msgid "This tweak has it default value" -msgstr "" +msgstr "To ulepszenie ma domyślną wartość" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:115 msgid "This tweak has been customized" -msgstr "" +msgstr "To ulepszenie zostało dostosowane" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:236 msgid "" @@ -12157,6 +13258,9 @@ msgid "" "these tweaks should be available on the website from where you downloaded " "the plugins." msgstr "" +"Dodaj/edytuj ulepszenia dla wszystkich dodatkowych wtyczek, które " +"zainstalowałeś. Dokumentacja dla tych ulepszeń powinna być dostępna na " +"stronie skąd pobrałeś wtyczki." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:277 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:317 @@ -12164,16 +13268,21 @@ msgid "" "There was a syntax error in your tweak. Click the show details button for " "details." msgstr "" +"W twoim ulepszeniu jest błąd składni. Kliknij w pokaż szczegóły, aby uzyskać " +"więcej informacji" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:330 msgid "Invalid tweaks" -msgstr "" +msgstr "Błędne ulepszenia" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:331 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 "" +"Ulepszenia, które wprowadziłeś są błędne, spróbuj zresetować ulepszenia do " +"wartości domyślnych i zmieniaj je pojedynczo aż nie natrafisz na błedne " +"ustawienie." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:88 msgid "" @@ -12181,41 +13290,44 @@ msgid "" "calibre. Your changes will only take effect after a restart of " "calibre." msgstr "" +"Wartości dla ulepszeń są przedstawione poniżej. Edytuj je, aby zmienić " +"zachowanie programu calibre. Twoje zmiany zostaną wprowadzone po ponownym " +"uruchomieniu programu calibre." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:89 msgid "Edit tweaks for any custom plugins you have installed" -msgstr "" +msgstr "Edytuj ulepszenia dla dodatkowych wtyczek, które zainstalowałeś" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:90 msgid "&Plugin tweaks" -msgstr "" +msgstr "Ule&pszenia wtyczek" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:92 msgid "Edit tweak" -msgstr "" +msgstr "Edytuj ulepszenia" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:93 msgid "Restore this tweak to its default value" -msgstr "" +msgstr "Przywróc to ulepszenie do wartości domyślnych" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:94 msgid "Restore &default" -msgstr "" +msgstr "Przywróć &domyślne" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:95 msgid "Apply any changes you made to this tweak" -msgstr "" +msgstr "Zastosuj wszystkie zmiany, których dokonałeś do tego ulepszenia" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:277 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:646 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:277 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:280 msgid "Search" msgstr "Szukaj" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:321 msgid "The selected search will be permanently deleted. Are you sure?" -msgstr "Wybrane wyszukania będą trwale usunięte. Jesteś pewien?" +msgstr "Wybrane wyszukania zostaną trwale usunięte. Jesteś pewien?" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:364 msgid "Search (For Advanced Search click the button to the left)" @@ -12233,7 +13345,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:12 msgid "Restrict to" -msgstr "Zawęź do:" +msgstr "Ogranicz do:" #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:19 #: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:59 @@ -12254,7 +13366,7 @@ msgstr "Wciśnij dowolny klawisz..." #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:80 msgid "Already assigned" -msgstr "Jest juz przypisany" +msgstr "Jest już przypisany" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:82 msgid "already assigned to" @@ -12280,7 +13392,7 @@ msgstr "Klawisze" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" -msgstr "Kliknij dwa razy any zmienić" +msgstr "Kliknij dwa razy aby zmienić" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 msgid "Frame" @@ -12303,161 +13415,167 @@ msgstr "Kliknij, by zmienić" msgid "&Alternate shortcut:" msgstr "&Alternatywny skrót:" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:316 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:391 msgid "Rename %s" -msgstr "" +msgstr "Zmień nazwę %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:336 msgid "Edit sort for %s" -msgstr "" +msgstr "Edytuj sortowanie dla %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:343 msgid "Add %s to user category" -msgstr "" +msgstr "Dodaj %s do kategorii użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:356 msgid "Children of %s" -msgstr "" +msgstr "Dzieci %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:344 -msgid "Remove %s from category %s" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:350 -msgid "Search for %s" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:355 -msgid "Search for everything but %s" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:367 -msgid "Add sub-category to %s" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:366 +msgid "Delete search %s" +msgstr "Skasuj wyszukiwania %s" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:371 -msgid "Delete user category %s" -msgstr "" +msgid "Remove %s from category %s" +msgstr "Usuń %s z kategorii %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:378 +msgid "Search for %s" +msgstr "Szukaj %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:383 +msgid "Search for everything but %s" +msgstr "Szukaj wszystkiego oprócz %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:395 +msgid "Add sub-category to %s" +msgstr "Dodaj podkategorię do %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:399 +msgid "Delete user category %s" +msgstr "Skasuj kategorię użytkownika %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:404 msgid "Hide category %s" msgstr "Ukryj kategorię %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:408 msgid "Show category" msgstr "Wyświetl kategorię" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:418 msgid "Search for books in category %s" -msgstr "" +msgstr "Szukaj książek w kategorii %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:424 msgid "Search for books not in category %s" -msgstr "" +msgstr "Szukaj książek nie w kategorii %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:401 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:433 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:438 msgid "Manage %s" msgstr "Zarządzaj %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:441 msgid "Manage Saved Searches" msgstr "Zarządzaj zapisanymi wyszukaniami" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:417 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:421 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:449 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:453 msgid "Manage User Categories" msgstr "Zarządzaj kategoriami użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:460 msgid "Show all categories" msgstr "Wyświetl wszystkie kategorie" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:431 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "Change sub-categorization scheme" -msgstr "" +msgstr "Zmień schemat pod-kategoryzacji" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:743 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:779 msgid "The grouped search term name is \"{0}\"" -msgstr "" +msgstr "Nazwa zgrupowanego wyszukiwania to \"{0}\"" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1007 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1051 msgid "" "Changing the authors for several books can take a while. Are you sure?" -msgstr "" +msgstr "Zmiana autorów dla kilku książek może chwilę zająć. Jesteś pewien?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1012 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1056 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" -msgstr "" +msgstr "Zmiana metadanych dla tylu książek może chwilę zająć. Jesteś pewien?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1095 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1139 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:413 msgid "Searches" msgstr "Wyszukiwania" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1325 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1344 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1352 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1373 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1393 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1402 msgid "Rename user category" -msgstr "" +msgstr "Zmień kategorię użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1326 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1374 msgid "You cannot use periods in the name when renaming user categories" msgstr "" +"Nie możesz używać okresów w nazwie podczas zmiany nazwy kategorii użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1345 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1394 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1403 msgid "The name %s is already used" -msgstr "" +msgstr "Nazwa %s już jest w użyciu" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1426 msgid "Duplicate search name" msgstr "Powtórzona nazwa wyszukania" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1377 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1427 msgid "The saved search name %s is already used." msgstr "Nazwa zapisanego wyszukania %s jest już używana." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1777 -msgid "New Category" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1828 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1831 -msgid "Delete user category" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1829 +msgid "New Category" +msgstr "Nowa kategoria" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1880 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1883 +msgid "Delete user category" +msgstr "Skasuj kategorię użytkownika" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1881 msgid "%s is not a user category" -msgstr "" +msgstr "%s nie jest kategorią użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1832 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1884 msgid "%s contains items. Do you really want to delete it?" -msgstr "" +msgstr "%s zawiera elementy. Naprawdę chcesz skasować?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1853 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1905 msgid "Remove category" -msgstr "" +msgstr "Usuń kategorię" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1906 msgid "User category %s does not exist" -msgstr "" +msgstr "Kategoria użytkownika %s nie istnieje" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1873 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1925 msgid "Add to user category" -msgstr "" +msgstr "Dodaj do kategorii użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1874 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1926 msgid "A user category %s does not exist" -msgstr "" +msgstr "Kategoria użytkownika %s nie istnieje" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1997 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2049 msgid "Find item in tag browser" -msgstr "" +msgstr "Znajdź element w przeglądarce elementów" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2000 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2052 msgid "" "Search for items. This is a \"contains\" search; items containing the\n" "text anywhere in the name will be found. You can limit the search\n" @@ -12466,67 +13584,82 @@ msgid "" "*foo will filter all categories at once, showing only those items\n" "containing the text \"foo\"" msgstr "" +"Szukaj elementów. To jest wyszukiwanie typu \"zawiera\"; elementy " +"zawierające\n" +"tekst gdziekolwiek w nazwie zostaną znalezione. Możesz ograniczyć " +"wyszukiwanie\n" +"do określonych kategorii używając składni identycznej do wyszukiwania. Na " +"przykład,\n" +"etykiety:foo znajdzie foo w każdej etykiecie, ale nie w autorze itd. " +"Wpisując\n" +"*foo odfiltruje natychmiast wszystkie kategorie, pokazując tylko te " +"elementy\n" +"zawierające tekst \"foo\"" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2009 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2061 msgid "ALT+f" -msgstr "" +msgstr "ALT+f" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2013 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2065 msgid "F&ind" -msgstr "" +msgstr "Znajdź" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2014 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2066 msgid "Find the first/next matching item" msgstr "Znajdź pierwszą/kolejną pasującą pozycję" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2021 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2071 msgid "Collapse all categories" -msgstr "" +msgstr "Zwiń wszystkie kategorie" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2042 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2095 msgid "No More Matches.

      Click Find again to go to first match" msgstr "" +"Brak dalszych trafień.

      Kliknij Szukaj ponownie, aby znaleźć pierwsze " +"trafienie" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2055 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2108 msgid "Sort by name" msgstr "Sortuj wg nazwy" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2055 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2108 msgid "Sort by popularity" msgstr "Sortuj wg popularności" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2056 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2109 msgid "Sort by average rating" msgstr "Sortuj wg średniej oceny" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2059 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2112 msgid "Set the sort order for entries in the Tag Browser" -msgstr "Ustaw porządek sortowania dla wpisów w Przeglądarce etykiet" +msgstr "Ustaw porządek sortowania dla wpisów w przeglądarce etykiet" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2065 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2118 msgid "Match all" msgstr "Dopasuj wszystkie" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2065 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2118 msgid "Match any" msgstr "Dopasuj którykolwiek" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2070 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2123 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" +"Przy wybraniu wielu wpisów w przeglądarce etykiet dopasuj jakiekolwiek lub " +"wszystkie z nich" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2074 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2127 msgid "Manage &user categories" msgstr "Zarządzaj kategoriami &użytkownika" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2077 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:2130 msgid "Add your own categories to the Tag Browser" msgstr "Dodaj swoje własne kategorie do Przeglądarki etykiet" #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:65 msgid "Convert book %(num)d of %(total)d (%(title)s)" -msgstr "" +msgstr "Konwertuj książkę %(num)d z %(total)d (%(title)s)" #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:205 @@ -12548,7 +13681,7 @@ msgstr "Kolejkowanie książek do masowej konwersji" #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:183 msgid "Queueing " -msgstr "Kolejnkowanie " +msgstr "Kolejkowanie " #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:184 msgid "Convert book %d of %d (%s)" @@ -12560,7 +13693,7 @@ msgstr "Pobierzy newsy z " #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:327 msgid "Convert existing" -msgstr "Okładka istnieje" +msgstr "Konwertuj istniejące" #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:328 msgid "" @@ -12586,11 +13719,11 @@ msgstr "&Odłącz połączone urządzenie" msgid "Calibre Quick Start Guide" msgstr "Krótki przewodnik po calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:305 msgid "Debug mode" -msgstr "" +msgstr "Tryb debugowania" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:303 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 msgid "" "You have started calibre in debug mode. After you quit calibre, the debug " "log will be available in the file: %s

      The log will be displayed " @@ -12600,31 +13733,24 @@ msgstr "" "debugowania będzie dostępny w pliku: %s

      Log zostanie automatycznie " "wyświetlony." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 msgid "Conversion Error" msgstr "Błąd podczas konwersji" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:525 msgid "Recipe Disabled" msgstr "Źródło wyłączone" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:541 msgid "Failed" msgstr "Nie powiodło się" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:571 -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:597 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:574 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -"Niektóre zadania są aktywne. Jesteś pewnien, że chcesz zamknąć program?" +"Niektóre zadania są aktywne. Jesteś pewien, że chcesz zamknąć program?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:577 msgid "" " is communicating with the device!
      \n" " Quitting may cause corruption on the device.
      \n" @@ -12634,11 +13760,11 @@ msgstr "" " Wyjście może spowodować uszkodzenie urządzenia.
      \n" " Jesteś pewny, że chcesz wyjść?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:581 msgid "Active jobs" -msgstr "" +msgstr "Aktywne zadania" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:650 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -12651,14 +13777,16 @@ msgid "" "%s has been updated to version %s. See the new features." msgstr "" +"%s został zaktualizowany do wersji %s. Zobacz nowe funkcje." #: /home/kovid/work/calibre/src/calibre/gui2/update.py:58 msgid "Update available!" -msgstr "" +msgstr "Jest dostępna aktualizacja!" #: /home/kovid/work/calibre/src/calibre/gui2/update.py:63 msgid "Show this notification for future updates" -msgstr "" +msgstr "Pokazuj to powiadomienie dla przyszłych aktualizacji" #: /home/kovid/work/calibre/src/calibre/gui2/update.py:68 msgid "&Get update" @@ -12686,11 +13814,11 @@ msgstr "Import zakładek" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 msgid "Pickled Bookmarks (*.pickle)" -msgstr "" +msgstr "Zapisane zakładki (*.pickle)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 msgid "Bookmark Manager" -msgstr "Menadżer zakładek" +msgstr "Menedżer zakładek" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 msgid "Actions" @@ -12740,7 +13868,7 @@ msgstr "&Domyślny rozmiar czcionki:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:201 msgid " px" -msgstr " px" +msgstr " piks." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:185 msgid "Monospace &font size:" @@ -12756,7 +13884,7 @@ msgstr "Szeryfowa" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:189 msgid "Sans-serif" -msgstr "Sans-serif" +msgstr "Bez-szeryfowa" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:190 msgid "Monospace" @@ -12828,10 +13956,13 @@ msgid "" "For examples, click here." msgstr "" +"

      Style CSS, który może być używany do kontrolowania wyglądu i stylu " +"książek. Dla przykładów kliknij tutaj." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:207 msgid "User &Stylesheet" -msgstr "" +msgstr "Style użytkownika" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 msgid "No results found for:" @@ -12842,7 +13973,7 @@ msgid "Options to customize the ebook viewer" msgstr "Opcje odpowiedzialne za personalizacje przeglądarki książek" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:780 msgid "Remember last used window size" msgstr "Zapamiętaj ostatnio użyty rozmiar okienka" @@ -12885,6 +14016,8 @@ msgstr "Zmiana stron kółkiem myszy" msgid "" "The time, in seconds, for the page flip animation. Default is half a second." msgstr "" +"Czas, w sekundach, na animację przewrócenia strony. Domyślnie jest to pół " +"sekundy." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:65 msgid "Font options" @@ -12896,7 +14029,7 @@ msgstr "Rodzina czcionek szeryfowych" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:69 msgid "The sans-serif font family" -msgstr "Rodzina czcionek sans-serif" +msgstr "Rodzina czcionek bez-szeryfowych" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:71 msgid "The monospaced font family" @@ -12916,20 +14049,22 @@ msgstr "Standardowy typ czcionki" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:125 msgid "Still editing" -msgstr "" +msgstr "Wciąż wdytuję" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:126 msgid "" "You are in the middle of editing a keyboard shortcut first complete that, by " "clicking outside the shortcut editing box." msgstr "" +"Jesteś w trakcie edycji skrótu klawiaturowego, zakończ to klikając poza pole " +"edycji skrótu." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:515 msgid "&Lookup in dictionary" msgstr "Sprawdź w słowniku" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:141 msgid "Go to..." msgstr "Przejdź do..." @@ -13005,102 +14140,114 @@ msgstr "Przewiń w lewo" msgid "Scroll right" msgstr "Przewiń w prawo" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:118 msgid "Book format" msgstr "Format książki" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:198 msgid "Position in book" msgstr "Pozycja w książce" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:205 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" +"Idź do referencji. Aby uzyskać numery referencji, użyj trybu referencji." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:213 msgid "Search for text in book" msgstr "Szukanie tekstu w książce" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:292 msgid "Print Preview" msgstr "Podgląd wydruku" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:303 +msgid "Clear list of recently opened books" +msgstr "Wyczyść listę ostatnio otwieranych książek" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:358 msgid "Connecting to dict.org to lookup: %s…" msgstr "Łączenie z dict.org by sprawdzić: %s…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:445 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:464 msgid "Choose ebook" -msgstr "Wybierz e-book" +msgstr "Wybierz książkę" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:465 msgid "Ebooks" -msgstr "E-booki" +msgstr "Książki" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:501 msgid "No matches found for: %s" msgstr "Nie znalezniono wyników dla: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:538 msgid "Loading flow..." -msgstr "" +msgstr "Ładuję strumień..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:576 msgid "Laying out %s" -msgstr "" +msgstr "Zestawiam %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Bookmark #%d" msgstr "Zakładka #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:611 msgid "Add bookmark" msgstr "Dodaj zakładkę" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 msgid "Enter title for bookmark:" -msgstr "Dodaj tytuł zakładki" +msgstr "Dodaj tytuł zakładki:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:622 msgid "Manage Bookmarks" msgstr "Zarządzaj zakładkami" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:649 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:662 msgid "Loading ebook..." msgstr "Ładowanie książki..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:674 msgid "Could not open ebook" msgstr "Nie można otworzyć książki" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:754 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:767 msgid "Options to control the ebook viewer" -msgstr "Opcje odpowiadające za kontolę nad przeglądarką książek" +msgstr "Opcje odpowiadające za kontrolę nad przeglądarką książek" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:761 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:774 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" +"Jeśli określone, okno przeglądarki spróbuje pokazać się na wierzchu podczas " +"startu." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:777 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" +"Jeśli określone, okno przeglądarki spróbuje otworzyć się na pełnym ekranie " +"podczas startu." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:769 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:782 msgid "Print javascript alert and console messages to the console" -msgstr "Wyświetlaj uwagi javascript'u i widomości konsolowe w konsoli" +msgstr "Wyświetlaj uwagi javascriptu i wiadomości konsolowe w konsoli" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:775 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:788 msgid "" "%prog [options] file\n" "\n" "View an ebook.\n" msgstr "" +"%prog [options] file\n" +"\n" +"Zobacz książkę.\n" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 msgid "E-book Viewer" -msgstr "Przeglądarka e-booków" +msgstr "Przeglądarka książek" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 msgid "Close dictionary" @@ -13164,7 +14311,7 @@ msgstr "Znajdź poprzednie wystąpienie" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 msgid "Print eBook" -msgstr "Wydrukuj e-książkę" +msgstr "Wydrukuj książkę" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:412 msgid "Change Case" @@ -13176,7 +14323,7 @@ msgstr "Zamień wielkość liter" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:955 msgid "Drag to resize" -msgstr "Przeciągnij aby zmienić wielkość" +msgstr "Przeciągnij, aby zmienić wielkość" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:990 msgid "Show" @@ -13195,7 +14342,7 @@ msgid "" "Choose you e-book device. If your device is not in the list, choose a \"%s\" " "device." msgstr "" -"Wybierz swój czytnik książek, jeśli Twojego urządzenia nie ma na liście, " +"Wybierz swój czytnik książek, jeśli twojego urządzenia nie ma na liście, " "wybierz \"%s\" ." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 @@ -13216,6 +14363,8 @@ msgid "" "

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

      Nieprawidłowa biblioteka istnieje już w %s, skasuj ją przed " +"przeniesieniem istniejącej biblioteki.
      Błąd: %s" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:582 msgid "Could not move library" @@ -13266,14 +14415,16 @@ msgid "" "

      Congratulations!

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

      Gratulacje!

      Udało Ci się skonfigurować calibre. Naciśnij %s aby " -"zastosować Twoje ustawienia." +"

      Gratulacje!

      Udało ci się skonfigurować calibre. Naciśnij %s aby " +"zastosować twoje ustawienia." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 msgid "" "

      Demo videos

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

      Filmy demonstracyjne

      Filmy pokazujące różne funkcje programu calibre " +"są dostępne w sieci." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:51 msgid "" @@ -13281,7 +14432,7 @@ msgid "" "ebook.com/user_manual\">online." msgstr "" "

      Podręcznik użytkownika

      Podręcznik użytkownika dostępny jest również " -"w Internecie." +"w sieci." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:49 msgid "" @@ -13291,6 +14442,11 @@ msgid "" "button below. You will also have to register your gmail address in your " "Amazon account." msgstr "" +"

      calibre może automatycznie wysyłac książki emailem na twojego Kindle'a. " +"Aby to zrobić musisz wpisać dane konta email poniżej. Najłatwiej będzie " +"założyć darmowe konto gmail i kliknięcie w " +"klawisz Użyj gmaila poniżej. Musisz również zarejestrować ten adres emailowy " +"na koncie Amazon." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:50 msgid "&Kindle email:" @@ -13305,9 +14461,9 @@ msgid "" "

      Choose a location for your books. When you add books to calibre, they " "will be copied here. Use an empty folder for a new calibre library:" msgstr "" -"

      Wybierz lokalizację dla książek. Kiedy dodasz książkę do calibre, będzie " -"ona skopiowana tutaj. Użyj pustego folderu fdla nowej biblioteki " -"calibre:" +"

      Wybierz lokalizację dla książek. Kiedy dodasz książkę do calibre, " +"zostanie ona tutaj skopiowana. Użyj pustego folderu dla nowej " +"biblioteki calibre:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -13335,72 +14491,90 @@ msgstr "Wysyłanie..." msgid "Mail successfully sent" msgstr "Email wysłany pomyślnie" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:96 msgid "OK to proceed?" msgstr "Kontynuować?" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:97 msgid "" "This will display your email password on the screen. Is it OK to proceed?" -msgstr "To wyświetli Twoje hasło do e-maila na ekranie. Czy kontynuować?" +msgstr "To wyświetli twoje hasło do e-maila na ekranie. Czy kontynuować?" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 msgid "" "If you are setting up a new hotmail account, you must log in to it once " "before you will be able to send mails." msgstr "" -"Jeśli ustawiasz nowego konto hotmail, musisz najpierw się na nie zalogować, " +"Jeśli ustawiasz nowe konto hotmail, musisz najpierw się na nie zalogować, " "zanim będziesz mógł wysyłać maile." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:151 msgid "Setup sending email using" msgstr "Ustawienie adresu email do wysyłania" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:153 msgid "" "If you don't have an account, you can sign up for a free {name} email " "account at http://{url}. {extra}" msgstr "" +"Jeśli nie masz konta, możesz zarejestrować za darmo {name} konto emailowe http://{url}. {extra}" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:160 msgid "Your %s &email address:" msgstr "Twój %s &adres e-mail:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:161 msgid "Your %s &username:" msgstr "Twoja %s &nazwa użytkownika:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:162 msgid "Your %s &password:" msgstr "Twoje %s &hasło:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:180 msgid "" "If you plan to use email to send books to your Kindle, remember to add the " "your %s email address to the allowed email addresses in your Amazon.com " "Kindle management page." msgstr "" "Jeśli zamierzasz używać tego adresu e-mail do wysyłania książek na Kindle, " -"by dodać Twój %s adres email do dozwolonych adresów email na Twojej stronie " -"zarządzania Amazon.com Kindle." +"pamiętaj by dodać swój %s adres email do dozwolonych adresów email na twojej " +"stronie zarządzania Amazon.com Kindle." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:187 msgid "Setup" msgstr "Ustawienia" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:201 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:218 msgid "Bad configuration" msgstr "Zła konfiguracja" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "You must set the From email address" msgstr "Musisz ustawić adres Od" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:209 -msgid "You must set the username and password for the mail server." +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:214 +msgid "" +"You must either set both the username and password for the mail " +"server or no username and no password at all." msgstr "" -"Musisz ustawić nazwe uzytkownika i hasło dla tego serweru pocztowego." +"Musisz ustawić zarówno użytkownika i hasło dla serwera pocztowego lub " +"brak użytkownika i brak hasła." + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:219 +msgid "Please enter a username and password or set encryption to None " +msgstr "Proszę wpisać użytkownika i hasło lub ustawić szyfrowanie na żadne " + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:224 +msgid "" +"No username and password set for mailserver. Most mailservers need a " +"username and password. Are you sure?" +msgstr "" +"Nie ustalono użytkownika i hasła dla serwera pocztowego. Większość serwerów " +"wymaga użytkownika i hasła. Jesteś pewien?" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" @@ -13411,12 +14585,16 @@ msgid "" "

      This is what will be present in the From: field of emails sent by " "calibre.
      Set it to your email address" msgstr "" +"

      To będzie pokazane w polu Od: w emailach wysłanych przez calibre.
      " +"Wstaw tutaj swój adres emailowy" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "

      A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." msgstr "" +"

      Serwer pocztowy jest użyteczny gdy usługa, do której wysyłasz emaila " +"akceptuje emaile ze znanych usług emailowych." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" @@ -13434,7 +14612,7 @@ msgstr "&Nazwa komputera:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" -msgstr "Nazwa hosta Twojego serwera poczty, np. smtp.gmail.com" +msgstr "Nazwa hosta twojego serwera poczty, np. smtp.gmail.com" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" @@ -13444,7 +14622,7 @@ msgstr "&Port:" msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" -"Port, na którym Twój serwer poczty nasłuchuje połączeń. Domyślnie to 25" +"Port, na którym twój serwer poczty nasłuchuje połączeń. Domyślnie to 25" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" @@ -13484,7 +14662,7 @@ msgstr "&SSL" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 msgid "WARNING: Using no encryption is highly insecure" -msgstr "Ostrzeżenie: Brak użycia kodowania jest wysoce niebezpieczny" +msgstr "OSTRZEŻENIE: Brak szyfrowania jest wysoce niebezpieczny" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 msgid "&None" @@ -13509,33 +14687,63 @@ msgid "" "directly on the device. To do this you have to turn on the calibre content " "server." msgstr "" +"

      Jeśli używasz aplikacji Stanza na twoim iPhone/iTouch, " +"możesz uzyskac dostęp do kolekcji książek calibre bezpośrednio na " +"urządzeniu. Aby to zrobić musisz włączyć serwer zawartości programu calibre." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:50 msgid "Turn on the &content server" msgstr "Włącz serwer &zawartości" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:330 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:161 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:565 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:575 +msgid "checked" +msgstr "zaznaczony" + +#: /home/kovid/work/calibre/src/calibre/library/caches.py:161 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:565 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:575 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:192 +msgid "yes" +msgstr "tak" + +#: /home/kovid/work/calibre/src/calibre/library/caches.py:163 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:562 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:572 +msgid "unchecked" +msgstr "odznaczony" + +#: /home/kovid/work/calibre/src/calibre/library/caches.py:163 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:562 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:572 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:192 +msgid "no" +msgstr "nie" + +#: /home/kovid/work/calibre/src/calibre/library/caches.py:355 msgid "today" msgstr "dzisiaj" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:333 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:358 msgid "yesterday" msgstr "wczoraj" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:336 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:361 msgid "thismonth" msgstr "w tym miesiącu" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:339 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:340 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:364 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:365 msgid "daysago" msgstr "dni temu" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:558 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:569 msgid "blank" msgstr "pusty" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:558 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:569 msgid "empty" msgstr "pusty" @@ -13549,6 +14757,13 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Pola wyjściowe przy katalogowaniu książek w bazie danych. Pola powinny być " +"oddzielone przecinkami.\n" +"Dostępne pola: %s,\n" +"plus stworzone przez użytkownika pola dodatkowe.\n" +"Przykład: %s=title,authors,tags\n" +"Domyślnie: '%%default'\n" +"Odnosi się do: formatów wyjściowych CSV, XML" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:65 msgid "" @@ -13557,6 +14772,10 @@ msgid "" "Default: '%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Pole wyściowe do sortowania.\n" +"Dostępne pola: author_sort, id, rating, size, timestamp, title.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe CSV, XML" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:232 msgid "" @@ -13568,6 +14787,13 @@ msgid "" "Default: '%%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Pola wyjściowe przy katalogowaniu książek w bazie danych. Pola powinny być " +"oddzielone przecinkami.\n" +"Dostępne pola: %s,\n" +"plus stworzone przez użytkownika pola dodatkowe.\n" +"Przykład: %s=title,authors,tags\n" +"Domyślnie: '%%default'\n" +"Odnosi się do: formatu wyjściowego BIBTEX" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:245 msgid "" @@ -13576,6 +14802,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Pole wyściowe do sortowania.\n" +"Dostępne pola: author_sort, id, rating, size, timestamp, title.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formatu wyjściowego BIBTEX" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:254 msgid "" @@ -13584,6 +14814,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Stwórz cytaty dla wpisów BibTeX\n" +"Wartość zerojedynkowa: Prawda, Fałsz\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formatu wyjściowego BIBTEX" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:263 msgid "" @@ -13592,6 +14826,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Stwórz wpis pliku jeśli formaty są wybranymi dla wpisów BibTeX.\n" +"Wartość zerojedynkowa: Prawda, Fałsz\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formatu wyjściowego BIBTEX" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:272 msgid "" @@ -13601,6 +14839,11 @@ msgid "" "Default: '%%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Szablon dla tworzenia cytatów z pól bazy danych.\n" +"Powinien być szablon z {} zamkniętymi polami.\n" +"Dostępne pola: %s.\n" +"Domyślnie: '%%default'\n" +"Odnosi się do: formatu wyjściowego BIBTEX" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:282 msgid "" @@ -13609,6 +14852,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Kodowanie wyjściowe pliku BibTeX.\n" +"Dostępne typy: utf8, cp1252, ascii.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formatu wyjściowego BIBTEX" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:291 msgid "" @@ -13617,6 +14864,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Flag kodowania pliku BibTeX.\n" +"Dostępne typy: strict, replace, ignore, backslashreplace.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formatu wyjściowego BIBTEX" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:300 msgid "" @@ -13625,6 +14876,10 @@ msgid "" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Wpis wejściowy dla katalogu BibTeX.\n" +"Dostępne typy: book, misc, mixed.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formatu wyjściowego BIBTEX" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:607 msgid "" @@ -13632,6 +14887,9 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Tytuł wygenerowanego katalogu użytego jako tytuł w metadanych.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:614 msgid "" @@ -13641,6 +14899,11 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Zapisz wynik z różnych etapów konwersji do określonego katalogu. Użyteczne " +"jeśli nie jesteś pewien który z etapów konwersji powoduje występowanie " +"błędu.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:624 msgid "" @@ -13649,6 +14912,10 @@ msgid "" "Default: '%default'\n" "Applies to ePub, MOBI output formats" msgstr "" +"pole:wzorzec określający pole użytkownika/zawartości wskazujące książkę " +"która powinna być pominięta.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:631 msgid "" @@ -13656,6 +14923,9 @@ msgid "" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Etykiety opisujące regex do wykluczenia jako gatunki.\n" +"Domyślnie: '%default' wyklucza etykiety w nawiasach, np. '[]'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:637 msgid "" @@ -13664,6 +14934,11 @@ msgid "" "this'.Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Oddzielona przecinkami lista etykiet wskazująca książki, które mają być " +"wykluczone przy wyjściu. Na przykład: 'pomiń' będzie pasować do 'pomiń tę " +"książkę' and 'Pomińmy to milczeniem'.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:645 msgid "" @@ -13671,6 +14946,9 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Dołącz sekcję 'Autorzy' do katalogu.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:652 msgid "" @@ -13678,6 +14956,9 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Dołącz sekcję 'Opisy' do katalogu.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:659 msgid "" @@ -13685,6 +14966,9 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Dołącz sekcję 'Gatunki' do katalogu.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:666 msgid "" @@ -13692,6 +14976,9 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Dołącz sekcję 'Tytuły' do katalogu.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:673 msgid "" @@ -13699,6 +14986,9 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Dołącz sekcję 'Cykle' do katalogu.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:680 msgid "" @@ -13706,6 +14996,9 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Dołącz sekcję 'Ostatnio dodane' do katalogu.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:687 msgid "" @@ -13713,6 +15006,9 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Pole użytkownika zawierające tekst do wprowadzenia w Nagłówku opisu.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:694 msgid "" @@ -13723,6 +15019,14 @@ msgid "" "Default: '%default'\n" "Applies to ePub, MOBI output formats" msgstr "" +":[before|after]:[True|False] określające:\n" +" Pole użytkownika zawierające informacje do złączenia z " +"Komentarzami\n" +" [before|after] Umiejscowienie informacji z odniesieniem do Komentarzy\n" +" [True|False] - Horyzontalna reguła jest wprowadzona pomiędzy tekstem i " +"Komentarzami\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:704 msgid "" @@ -13733,6 +15037,12 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Okresla profil wyjściowy. W niektórych przypadkach wymagany jest profil " +"wyjściwy w celu zoptymalizowania katalogu dla urządzenia. Na przykład, " +"'kindle' lub 'kindle_dx' tworzy zestrukturyzowany spis zawartości wraz z " +"sekcjami i paragrafami.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:711 msgid "" @@ -13740,6 +15050,9 @@ msgid "" "Default: '%default'\n" "Applies to ePub, MOBI output formats" msgstr "" +"pole:wzorzec wskazujący, że książka była czytana.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:717 msgid "" @@ -13748,6 +15061,10 @@ msgid "" "Default: '%default'\n" "Applies to ePub, MOBI output formats" msgstr "" +"Wskazówka rozmiaru (w calach) dla okładek książki w katalogu.\n" +"Zakres: 1.0 - 2.0\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:725 msgid "" @@ -13755,10 +15072,14 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Etykieta wskazująca czy ksiązka ma być wyświetlana jako pozycja listy " +"życzeń.\n" +"Domyślnie: '%default'\n" +"Odnosi się do: formaty wyjściowe ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:1408 msgid "No enabled genres found to catalog.\n" -msgstr "" +msgstr "Nie znaleziono żadnych gatunków dla tego katalogu.\n" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:1412 msgid "No books available to catalog" @@ -13774,6 +15095,14 @@ msgid "" "Select all books by '{0}', apply correct Author Sort value in Edit Metadata " "dialog, then rebuild the catalog.\n" msgstr "" +"Sprzeczne wartości przy Sortowaniu Autora dla\n" +"Author '{0}':\n" +"'{1}' <> '{2}'\n" +"Nie można stworzyć katalogu MOBI.\n" +"\n" +"Wybierz wszystkie książki używając '{0}', zastosuj poprawną wartość " +"Sortowania Autora w oknie Edytuj Metadane, a następnie przebuduj ten " +"katalog.\n" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:1504 msgid "" @@ -13781,12 +15110,17 @@ msgid "" "Author '{0}':\n" "'{1}' <> '{2}'\n" msgstr "" +"Ostrzeżenie: sprzeczne wartości przy Sortowaniu Autora dla\n" +"Author '{0}':\n" +"'{1}' <> '{2}'\n" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:1700 msgid "" "No books found to catalog.\n" "Check 'Excluded books' criteria in E-book options.\n" msgstr "" +"Nie znaleziono książek w katalogu.\n" +"Sprawdz kryteria 'Wykluczone książki' w opcjach książek.\n" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:1702 msgid "No books available to include in catalog" @@ -13797,6 +15131,9 @@ msgid "" "\n" "*** Adding 'By Authors' Section required for MOBI output ***" msgstr "" +"\n" +"*** Dodawanie Sekcji 'Według Autora' wymaganej przez profil wyjściowy MOBI " +"***" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:26 msgid "Invalid titles" @@ -13828,15 +15165,15 @@ msgstr "Nieznane pliki w książkach" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:33 msgid "Missing covers files" -msgstr "" +msgstr "Brak plików z okładkami" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:34 msgid "Cover files not in database" -msgstr "" +msgstr "Pliki okładek nie figurują w bazie danych" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:35 msgid "Folders raising exception" -msgstr "" +msgstr "Foldery powodujące wyjątek" #: /home/kovid/work/calibre/src/calibre/library/cli.py:44 msgid "" @@ -13852,6 +15189,9 @@ msgid "" "\n" "List the books available in the calibre database.\n" msgstr "" +"%prog list [options]\n" +"\n" +"Wyświetl książki dostępne w bazie danych calibre.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:131 msgid "" @@ -13861,6 +15201,12 @@ msgid "" "Default: %%default. The special field \"all\" can be used to select all " "fields. Only has effect in the text output format." msgstr "" +"Pola do wyświetlenia gdy wyświetlane są książki w bazie danych. Lista pól " +"powinna być oddzielona przecinkami.\n" +"Dostępne pola: %s\n" +"Domyślnie: %%default. Specjalne pole \"wszystkie\" (all) może zostać użyte w " +"celu wybrania wszystkich pól. Zastosować można tylko w tekstowym formacie " +"wyjściowym." #: /home/kovid/work/calibre/src/calibre/library/cli.py:138 msgid "" @@ -13868,6 +15214,9 @@ msgid "" "Available fields: %s\n" "Default: %%default" msgstr "" +"Pole, po którym sortować wyniki.\n" +"Dostępne pola: %s\n" +"Domyślnie: %%default" #: /home/kovid/work/calibre/src/calibre/library/cli.py:140 msgid "Sort results in ascending order" @@ -13879,6 +15228,9 @@ msgid "" "please see the search related documentation in the User Manual. Default is " "to do no filtering." msgstr "" +"Filtruj wyniki po zapytaniu. Dla sformatowania zapytania, zobacz odpowiednią " +"dokumentację w Podręczniku Użytkownika. Domyślnie nie jest włączone żadne " +"filtrowanie." #: /home/kovid/work/calibre/src/calibre/library/cli.py:144 #: /home/kovid/work/calibre/src/calibre/library/cli.py:1043 @@ -13891,13 +15243,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:145 msgid "The string used to separate fields. Default is a space." -msgstr "Znak używany do oddzielania pól. Domyslny to spacja." +msgstr "Znak używany do oddzielania pól. Domyślny to spacja." #: /home/kovid/work/calibre/src/calibre/library/cli.py:146 msgid "" "The prefix for all file paths. Default is the absolute path to the library " "folder." msgstr "" +"Przedrostek dla wszystkich ścieżek do plików. Domyślnie jest to ścieżka " +"absolutna do folderu biblioteki." #: /home/kovid/work/calibre/src/calibre/library/cli.py:168 msgid "Invalid fields. Available fields:" @@ -13905,14 +15259,14 @@ msgstr "Niewłaściwe pola. Dostepne pola:" #: /home/kovid/work/calibre/src/calibre/library/cli.py:175 msgid "Invalid sort field. Available fields:" -msgstr "Niewłaściwe pole sortowania. Dostepnę pola:" +msgstr "Niewłaściwe pole sortowania. Dostępne pola:" #: /home/kovid/work/calibre/src/calibre/library/cli.py:247 msgid "" "The following books were not added as they already exist in the database " "(see --duplicates option):" msgstr "" -"Następujące książki nie zostały dodane ponieważ istnieją ją one w bazie " +"Następujące książki nie zostały dodane ponieważ istnieją już one w bazie " "danych (zobacz opcję --duplicates):" #: /home/kovid/work/calibre/src/calibre/library/cli.py:271 @@ -13923,12 +15277,18 @@ msgid "" "directories, see\n" "the directory related options below.\n" msgstr "" +"%prog add [options] file1 file2 file3 ...\n" +"\n" +"Dodaje określone pliki jako książki do bazy danych. Możesz również określić " +"katalogi, zobacz opcje odnośnie katalogów poniżej.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:280 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 "" +"Zakładaj, że każdy katalog ma tylko jedną logiczną książkę i że wszystkie " +"pliki znajdujące się w nim są innymi formatami tej samej książki" #: /home/kovid/work/calibre/src/calibre/library/cli.py:282 msgid "Process directories recursively" @@ -13939,7 +15299,7 @@ msgid "" "Add books to database even if they already exist. Comparison is done based " "on book titles." msgstr "" -"Dodaj książki do bazy danych nawet jeśli już są w niej. Porównanie odbywa " +"Dodaj książki do bazy danych nawet jeśli są już w niej. Porównanie odbywa " "się na podstawie tytułów." #: /home/kovid/work/calibre/src/calibre/library/cli.py:286 @@ -13960,7 +15320,7 @@ msgstr "Wpisz ISBN dla dodanej pustej książki" #: /home/kovid/work/calibre/src/calibre/library/cli.py:318 msgid "You must specify at least one file to add" -msgstr "Musisz określić conajmniej jeden plik do dodania" +msgstr "Musisz określić co najmniej jeden plik do dodania" #: /home/kovid/work/calibre/src/calibre/library/cli.py:335 msgid "" @@ -13970,6 +15330,11 @@ msgid "" "separated list of id numbers (you can get id numbers by using the list " "command). For example, 23,34,57-85\n" msgstr "" +"%prog remove ids\n" +"\n" +"Usuń książki określone przez id z bazy danych. id powinny być numerami id " +"oddzielone przecinkami (możesz uzyskać numery id używając listy komend). Na " +"przykład, 23,34,57-85\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:350 msgid "You must specify at least one book to remove" @@ -13983,6 +15348,11 @@ msgid "" "identified by id. You can get id by using the list command. If the format " "already exists, it is replaced.\n" msgstr "" +"%prog add_format [options] id ebook_file\n" +"\n" +"Dodaj książkę w pliku (ebook_file) do dostępnych formatów dla logicznej " +"książki określonej przez id. Możesz uzyskać id używając listy komend. Jeśli " +"format już istnieje, zostanie nadpisany.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:384 msgid "You must specify an id and an ebook file" @@ -13990,7 +15360,7 @@ msgstr "Musisz podać identyfikator i plik książki" #: /home/kovid/work/calibre/src/calibre/library/cli.py:389 msgid "ebook file must have an extension" -msgstr "Plik e-książki musi mieć rozszerzenie" +msgstr "Plik książki musi mieć rozszerzenie" #: /home/kovid/work/calibre/src/calibre/library/cli.py:397 msgid "" @@ -14001,6 +15371,12 @@ msgid "" "by using the list command. fmt should be a file extension like LRF or TXT or " "EPUB. If the logical book does not have fmt available, do nothing.\n" msgstr "" +"\n" +"%prog remove_format [options] id fmt\n" +"\n" +"Usuń format fmt z logicznej książki określonej przez id. Możesz uzyskać id " +"używając listy komend. fmt powinien być rozszerzenie takim jak LRF lub TXT " +"lub EPUB. Jeśli logiczna książka nie ma dostępnego fmt, nie rób nic.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:414 msgid "You must specify an id and a format" @@ -14015,6 +15391,12 @@ msgid "" "id.\n" "id is an id number from the list command.\n" msgstr "" +"\n" +"%prog show_metadata [options] id\n" +"\n" +"Pokazuje metadane przechowywane w bazie danych calibre dla książek " +"określonych przez id.\n" +"id is to numer id z listy komend.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:440 msgid "Print metadata in OPF form (XML)" @@ -14036,6 +15418,15 @@ msgid "" "can get a quick feel for the OPF format by using the --as-opf switch to the\n" "show_metadata command.\n" msgstr "" +"\n" +"%prog set_metadata [options] id /path/to/metadata.opf\n" +"\n" +"Określa metadane przechowywane w bazie danych calibre dla książki " +"określonej\n" +"przez id z pliku metadanych OPF metadata.opf. id to numer id z listy " +"komend.\n" +"Możesz wypróbować format OPF używając przełącznika --as-opf dla\n" +"komendy show_metadata.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:480 msgid "You must specify an id and a metadata file" @@ -14051,6 +15442,13 @@ msgid "" "(in\n" "an opf file). You can get id numbers from the list command.\n" msgstr "" +"%prog export [options] ids\n" +"\n" +"Eksportuje książki określone przez id (lista oddzielona przecinkami) do " +"systemu plików.\n" +"Operacja eksportu zapisuje wszystkie formaty książek, jej okładkę i metadane " +"(w pliku\n" +"opf). Możesz uzyskać numeryid z listy komend.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:508 msgid "Export all books in database, ignoring the list of ids." @@ -14066,11 +15464,11 @@ msgstr "Eksportuj wszystkie książki do pojedynczego katalogu" #: /home/kovid/work/calibre/src/calibre/library/cli.py:519 msgid "Specifying this switch will turn this behavior off." -msgstr "" +msgstr "Określając ten przełącznik wyłączysz to zachowanie" #: /home/kovid/work/calibre/src/calibre/library/cli.py:542 msgid "You must specify some ids or the %s option" -msgstr "" +msgstr "Musisz określić jakieś id albo opcję %s" #: /home/kovid/work/calibre/src/calibre/library/cli.py:555 msgid "" @@ -14082,12 +15480,19 @@ msgid "" "column.\n" "datatype is one of: {0}\n" msgstr "" +"%prog add_custom_column [options] label name datatype\n" +"\n" +"Stwórz własną kolumnę. label to nazwa kolumny w języku komputerowym. Nie\n" +"powinna zawierać spacji ani dwukropka. name to nazwa ludzka kolumny.\n" +"datatype to jeden z: {0}\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:564 msgid "" "This column stores tag like data (i.e. multiple comma separated values). " "Only applies if datatype is text." msgstr "" +"Ta kolumna przechowuje dane etykietopodobne (np. wielokrotne wartości " +"oddzielone przecinkami). Ma zastosowanie tylko jeśli typ danych to tekst." #: /home/kovid/work/calibre/src/calibre/library/cli.py:568 msgid "" @@ -14095,10 +15500,13 @@ msgid "" "interpreted. This is a JSON string. For enumeration columns, use --" "display='{\"enum_values\":[\"val1\", \"val2\"]}'" msgstr "" +"Słownik opcji określających jak dane w tej kolumnie zostaną zinterpretowane. " +"To ciąg znaków JSON. Dla wyliczenia kolumn użyj --" +"display='{\"enum_values\":[\"val1\", \"val2\"]}'" #: /home/kovid/work/calibre/src/calibre/library/cli.py:582 msgid "You must specify label, name and datatype" -msgstr "" +msgstr "Musisz wskazać etykietę, nazwę i typ danych" #: /home/kovid/work/calibre/src/calibre/library/cli.py:643 msgid "" @@ -14110,6 +15518,14 @@ msgid "" "ouput.\n" " " msgstr "" +"\n" +" %prog catalog /path/to/destination.(CSV|EPUB|MOBI|XML ...) [options]\n" +"\n" +" Eksportuje katalog w formacie określonym przez ścieżkę/do/miejsce " +"docelowe rozszerzenia.\n" +" Opcje kontrolują jak wpisy są wyświetlane w wygenerowanym katalogu " +"wynikowym.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:657 msgid "" @@ -14117,6 +15533,9 @@ msgid "" "If declared, --search is ignored.\n" "Default: all" msgstr "" +"Lista ID oddzielona przecnkami do katalogu.\n" +"Jeśli jest zadeklarowane, --search jest ignorowane.\n" +"Domyślnie: wszystkie (all)" #: /home/kovid/work/calibre/src/calibre/library/cli.py:661 msgid "" @@ -14124,6 +15543,9 @@ msgid "" "please see the search-related documentation in the User Manual.\n" "Default: no filtering" msgstr "" +"Filtruj wyniki przez zapytanie. Dla formatu zapytania, zobacz odpowiednią " +"dokumentację w Podręczniku Użytkownika.\n" +"Domyślnie: brak filtrowania" #: /home/kovid/work/calibre/src/calibre/library/cli.py:667 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:499 @@ -14146,12 +15568,22 @@ msgid "" " command.\n" " " msgstr "" +"\n" +" %prog set_custom [options] column id value\n" +"\n" +" Ustaw wartość kolumny dodatkowej dla książki określonej przez id.\n" +" Możesz uzyskać listę id używając listy komend.\n" +" Możesz uzyskać listę nazw dodatkowych kolumn używając komendy " +"custom_columns.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:737 msgid "" "If the column stores multiple values, append the specified values to the " "existing ones, instead of replacing them." msgstr "" +"Jeśli kolumna przechowuje wielokrotne wartości, dołącz określone wartości do " +"istniejących, zamiast je zastępować." #: /home/kovid/work/calibre/src/calibre/library/cli.py:748 msgid "Error: You must specify a field name, id and value" @@ -14165,6 +15597,11 @@ msgid "" " List available custom columns. Shows column labels and ids.\n" " " msgstr "" +"\n" +" %prog custom_columns [options]\n" +"\n" +" Lista dostępnych dodatkowych kolumn. Pokazuje etykiety kolumn i id.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:774 msgid "Show details for each column." @@ -14172,7 +15609,7 @@ msgstr "Pokaż szczegóły dla każdej kolumny." #: /home/kovid/work/calibre/src/calibre/library/cli.py:786 msgid "You will lose all data in the column: %r. Are you sure (y/n)? " -msgstr "Utracisz wszystkie dane z kolumny: %r. Jesteś pewien (y/n)? " +msgstr "Utracisz wszystkie dane z kolumny: %r. Jesteś pewien (t/n)? " #: /home/kovid/work/calibre/src/calibre/library/cli.py:788 msgid "y" @@ -14187,6 +15624,12 @@ msgid "" " columns with the custom_columns command.\n" " " msgstr "" +"\n" +" %prog remove_custom_column [options] label\n" +"\n" +" Usuń dodatkową kolumnę określoną przez label. Możesz zobaczyć dostępne\n" +" kolumny używając komendy custom_columns.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:802 msgid "Do not ask for confirmation" @@ -14208,6 +15651,15 @@ msgid "" " replaced.\n" " " msgstr "" +"\n" +" %prog saved_searches [options] list\n" +" %prog saved_searches add name search\n" +" %prog saved_searches remove name\n" +"\n" +" Zarządzaj zapisanymi wyszukiwaniami zachowanymi w bazie danych.\n" +" Jeśli spróbujesz dodać zapytanie z nazwą, która juz istnieje, zostanie\n" +" nadpisane.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:840 msgid "Error: You must specify an action (add|remove|list)" @@ -14219,11 +15671,11 @@ msgstr "Nazwa:" #: /home/kovid/work/calibre/src/calibre/library/cli.py:849 msgid "Search string:" -msgstr "" +msgstr "Wyszukanie:" #: /home/kovid/work/calibre/src/calibre/library/cli.py:855 msgid "Error: You must specify a name and a search string" -msgstr "" +msgstr "Błąd: Musisz wskazać nazwę i wyszukiwanie" #: /home/kovid/work/calibre/src/calibre/library/cli.py:858 msgid "added" @@ -14239,7 +15691,7 @@ msgstr "usunięto" #: /home/kovid/work/calibre/src/calibre/library/cli.py:870 msgid "Error: Action %s not recognized, must be one of: (add|remove|list)" -msgstr "" +msgstr "Błąd: Akcja %s nierozpoznana, musi być jedno z: (dodaj|usuń|lista)" #: /home/kovid/work/calibre/src/calibre/library/cli.py:878 msgid "" @@ -14248,33 +15700,42 @@ msgid "" "Perform some checks on the filesystem representing a library. Reports are " "{0}\n" msgstr "" +"%prog check_library [options]\n" +"\n" +"Wykonaj sprawdzenie w systemie plików biblioteki. Zgłoszenia są {0}\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:885 #: /home/kovid/work/calibre/src/calibre/library/cli.py:1035 msgid "Output in CSV" -msgstr "" +msgstr "Wynik w CSV" #: /home/kovid/work/calibre/src/calibre/library/cli.py:888 msgid "" "Comma-separated list of reports.\n" "Default: all" msgstr "" +"Lista raportów rozdzielona przecinkiem.\n" +"Domyślnie: wszystkie" #: /home/kovid/work/calibre/src/calibre/library/cli.py:892 msgid "" "Comma-separated list of extensions to ignore.\n" "Default: all" msgstr "" +"Lista rozszerzeń rozdzielona przecinkiem do zignorowania.\n" +"Domyślnie: wszystkie" #: /home/kovid/work/calibre/src/calibre/library/cli.py:896 msgid "" "Comma-separated list of names to ignore.\n" "Default: all" msgstr "" +"Lista nazw rozdzielona przecinkiem do zignorowania.\n" +"Domyślnie: wszystkie" #: /home/kovid/work/calibre/src/calibre/library/cli.py:926 msgid "Unknown report check" -msgstr "" +msgstr "Nieznany status raportu" #: /home/kovid/work/calibre/src/calibre/library/cli.py:959 msgid "" @@ -14290,16 +15751,31 @@ msgid "" "what is found in the OPF files.\n" " " msgstr "" +"%prog restore_database [options]\n" +"\n" +"Przywróć tę bazę danych z metadanych zachowanych w plikach OPF w każdym\n" +"katalogu biblioteki calibre. To jest użyteczne jeśli twój plik metadata.db\n" +"uległ uszkodzeniu.\n" +"\n" +"UWAGA: Ta komenda całkowicie zregeneruje twoją bazę danych. Stracisz\n" +"wszystkie zapisane wyszukiwanie, kategorie użytkowników, wtyczki, ustawienia " +"konwersji\n" +"i własne źródła. Przywrócone metadane będą tak dokładne jakie zostaną " +"znalezione\n" +"w plikach OPF.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:974 msgid "" "Really do the recovery. The command will not run unless this option is " "specified." msgstr "" +"Naprawdę dokonaj przywrócenia. Ta komenda nie uruchomi się dopóki ta opcja " +"nie zostanie określona." #: /home/kovid/work/calibre/src/calibre/library/cli.py:987 msgid "You must provide the %s option to do a recovery" -msgstr "" +msgstr "Musisz zaznaczyć opcję %s aby dokonać przywrócenia" #: /home/kovid/work/calibre/src/calibre/library/cli.py:1024 msgid "" @@ -14308,32 +15784,44 @@ msgid "" "Produce a report of the category information in the database. The\n" "information is the equivalent of what is shown in the tags pane.\n" msgstr "" +"%prog list_categories [options]\n" +"\n" +"Wygeneruj raport z informacji kategorii w bazie danych. Informacja\n" +"jest równoznaczna z tym co jest pokazane na ekranie etykiet.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:1032 msgid "" "Output only the number of items in a category instead of the counts per item " "within the category" msgstr "" +"Wyprowadź tylko taką ilość elementów w kategorii zamiast wyliczać na każdy " +"element wewnątrz kategorii" #: /home/kovid/work/calibre/src/calibre/library/cli.py:1037 msgid "" "The character to put around the category value in CSV mode. Default is " "quotes (\")." msgstr "" +"Znak do ustawienia w wartości kategorii w trybie CSV. Domyślnie jest to " +"cudzysłów (\")." #: /home/kovid/work/calibre/src/calibre/library/cli.py:1040 msgid "" "Comma-separated list of category lookup names.\n" "Default: all" msgstr "" +"Lista kategorii wyszukiwań nazw oddzielona przecinkami.\n" +"Domyślnie: wszystkie" #: /home/kovid/work/calibre/src/calibre/library/cli.py:1046 msgid "The string used to separate fields in CSV mode. Default is a comma." msgstr "" +"Ciąg znaków użyty do oddzielenia pól w trybie CSV. Domyślnie jest to " +"przecinek." #: /home/kovid/work/calibre/src/calibre/library/cli.py:1084 msgid "CATEGORY ITEMS" -msgstr "" +msgstr "ELEMENTY KATEGORII" #: /home/kovid/work/calibre/src/calibre/library/cli.py:1153 msgid "" @@ -14346,35 +15834,45 @@ msgid "" "\n" "For help on an individual command: %%prog command --help\n" msgstr "" +"%%prog command [options] [arguments]\n" +"\n" +"%%prog to komenda linii interfejsu dla bazy danych książek calibre.\n" +"\n" +"komendami mogą być:\n" +" %s\n" +"\n" +"Dla pomocy odnośnie każdej komendy wpisz: %%prog command --help\n" -#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:586 +#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:589 msgid "No label was provided" -msgstr "" +msgstr "Nie wskazano etykiety" -#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:588 +#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:591 msgid "" "The label must contain only lower case letters, digits and underscores, and " "start with a letter" msgstr "" +"Etykieta musi zawierać tylko małe litery, cyfry i podkreślniki oraz zaczynać " +"się od litery" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:63 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:66 msgid "%sAverage rating is %3.1f" -msgstr "" +msgstr "%sŚrednia ocena to %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:993 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1007 msgid "Main" msgstr "Główna" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2951 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3050 msgid "

      Migrating old database to ebook library in %s

      " msgstr "" "

      Przenoszenie starej bazy danych do biblioteki książek w %s

      " -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2980 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3079 msgid "Copying %s" msgstr "Kopiowanie %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2997 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3096 msgid "Compacting database" msgstr "Kompaktowanie bazy danych" @@ -14384,9 +15882,9 @@ msgstr "Oceny" #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:181 msgid "Identifiers" -msgstr "" +msgstr "Identyikatory" -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:301 msgid "Title Sort" msgstr "Tytuł sort." @@ -14396,7 +15894,7 @@ msgstr "Przetworzony" #: /home/kovid/work/calibre/src/calibre/library/restore.py:192 msgid "creating custom column " -msgstr "" +msgstr "tworzenie kolumny użytkownika " #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 msgid "The title" @@ -14411,6 +15909,8 @@ msgid "" "The author sort string. To use only the first letter of the name use " "{author_sort[0]}" msgstr "" +"Ciąg sortowania według autora. By użyć tylko pierwszej litery nazwy użyj " +"{author_sort[0]}" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The tags" @@ -14470,7 +15970,7 @@ msgid "" "with the actual e-book files." msgstr "" "Normalnie calibre zapisze metadane do osobnego pliku OPF obok właściwego " -"pliku z e-bookiem." +"pliku z książką." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:68 msgid "" @@ -14478,13 +15978,15 @@ msgid "" "actual e-book file(s)." msgstr "" "Normalnie calibre zapisze okładkę do osobnego pliku obok właściwego pliku z " -"e-bookiem." +"książką." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:71 msgid "" "Comma separated list of formats to save for each book. By default all " "available formats are saved." msgstr "" +"Oddzielana przecinkami lista formatów do zapisania dla każdej książki. " +"Domyślnie zapisywane są wszystkie dostępne formaty." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:74 msgid "" @@ -14493,6 +15995,9 @@ msgid "" "subdirectory with filenames containing title and author. Available controls " "are: {%s}" msgstr "" +"Szablon kontrolujący nazyw plików i strukturę katalogu zapisanych plików. " +"Domyślnie jest \"%s\" który zapisze książki w podkatalogach z nazwą autora z " +"nazwami plików zawierających tytuł i autora. Dostępne kontrole to:{%s}" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:79 msgid "" @@ -14501,6 +16006,10 @@ msgid "" "directory with filenames containing title and author. Available controls " "are: {%s}" msgstr "" +"Szablon kontrolujący nazyw plików i strukturę katalogu wysłanych do " +"urzadzenia. Domyślnie jest \"%s\" który zapisze książki w podkatalogach z " +"nazwą autora z nazwami plików zawierających tytuł i autora. Dostępne " +"kontrole to:{%s}" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:86 msgid "" @@ -14512,7 +16021,7 @@ msgstr "" "Normalnie calibre skonwertuje wszystkie nie-angielskie znaki na ich " "angielskie odpowiedniki w nazwach plików. UWAGA: Jeżeli wyłączysz tę opcję, " "możesz doświadczyć błędów podczas zapisywania, w zależności od tego, jak " -"dobrze Twój system plików radzi sobie z Unicode." +"dobrze twój system plików radzi sobie z Unicode." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:92 #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:95 @@ -14531,10 +16040,10 @@ msgstr "Przekształć scieżki na małe znaki." msgid "Replace whitespace with underscores." msgstr "Zastąp spacje podkreśleniami." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:361 -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:385 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:357 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:381 msgid "Requested formats not available" -msgstr "Żądane formaty nie dostępne" +msgstr "Żądane formaty nie są dostępne" #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:21 msgid "Settings to control the calibre content server" @@ -14546,16 +16055,16 @@ msgstr "Port, na którym będziemy nasłuchiwać. Domyślnie to %default" #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:27 msgid "The server timeout in seconds. Default is %default" -msgstr "Czas oczekiwania serwera w sekundach. Domyslnie %default" +msgstr "Czas oczekiwania serwera w sekundach. Domyślnie %default" #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:29 msgid "The max number of worker threads to use. Default is %default" -msgstr "Ilość wątków pracy która ma być użyta. Domyślne jest %default" +msgstr "Ilość wątków pracy, która ma być użyta. Domyślne jest %default" #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:31 msgid "Set a password to restrict access. By default access is unrestricted." msgstr "" -"Ustaw hasło aby ograniczyć dostęp. Domyślnie dostęp jest nieograniczony." +"Ustaw hasło, aby ograniczyć dostęp. Domyślnie dostęp jest nieograniczony." #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:33 msgid "Username for access. By default, it is: %default" @@ -14570,6 +16079,8 @@ msgid "" "The maximum number of matches to return per OPDS query. This affects Stanza, " "WordPlayer, etc. integration." msgstr "" +"Maksymalna ilość trafień przy zapytaniu OPDS. Dotyczy integracji ze Stanzą, " +"WordPlayerem itd." #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:43 msgid "" @@ -14577,129 +16088,134 @@ msgid "" "more than this number of items. Default: %default. Set to a large number to " "disable grouping." msgstr "" +"Grupuj elementy w kategorie takie jak autor/etykiety po pierwszej literze " +"gdy zaistnieje więcej niż jeden element. Domyślnie: %default. Ustaw wyższą " +"wartość aby wyłączyć grupowanie." #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:48 msgid "" "Prefix to prepend to all URLs. Useful for reverseproxying to this server " "from Apache/nginx/etc." msgstr "" +"Przedrostek do dołączenia przed wszystkimi URL. Użyteczne przy " +"reverseproxying dla tego serwera z Apache/nginx/itd." -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:60 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:495 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:64 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:498 msgid "Loading, please wait" -msgstr "Wszytywanie, proszę czekać" +msgstr "Wczytywanie, proszę czekać" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:86 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:90 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:111 msgid "Go to" msgstr "Idź do" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 msgid "First" msgstr "Pierwsze" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 msgid "Last" msgstr "Ostatnie" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:105 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:109 msgid "Browsing %d books" msgstr "Przeglądanie %d książek" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:252 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:126 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:255 msgid "Average rating" msgstr "Średnia ocen" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:123 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:127 msgid "%s: %.1f stars" -msgstr "" +msgstr "%s: %.1f gwiazdek" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:160 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:163 msgid "%d stars" msgstr "%d gwiazdki" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:253 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:256 msgid "Popularity" msgstr "Popularność" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:275 msgid "Sort by" msgstr "Sortuj według" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:275 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:278 msgid "library" msgstr "biblioteka" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:276 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:279 msgid "home" msgstr "strona główna" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:337 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:575 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:340 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:612 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:573 msgid "Newest" msgstr "Najnowsze" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:338 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:610 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:341 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:613 msgid "All books" msgstr "Wszystkie książki" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:383 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:448 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:386 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:451 msgid "Browse books by" msgstr "Przeglądaj książki po" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:388 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:391 msgid "Choose a category to browse by:" msgstr "Wybierz kategorię do przeglądania:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:518 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:521 msgid "Browsing by" msgstr "Przeglądanie po" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:519 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:522 msgid "Up" msgstr "Góra" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:643 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:648 msgid "in" msgstr "w" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:651 msgid "Books in" msgstr "Książki w" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:734 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:740 msgid "Other formats" msgstr "Inne formaty" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:741 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:747 msgid "Read %(title)s in the %(fmt)s format" -msgstr "" +msgstr "Czytaj %(title)s w formacie %(fmt)s" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:746 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:752 msgid "Get" msgstr "Uzyskaj" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:761 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:767 msgid "Permalink" msgstr "Bezpośredni odnośnik" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:762 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:768 msgid "A permanent link to this book" msgstr "Stały link do tej książki" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:773 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:779 msgid "This book has been deleted" msgstr "Książka została skasowana" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:859 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:865 msgid "in search" -msgstr "W poszukiwaniu" +msgstr "w poszukiwaniu" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:861 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:867 msgid "Matching books" msgstr "Odpowiadające książki" @@ -14715,6 +16231,17 @@ msgid "" "\n" "The OPDS interface is advertised via BonJour automatically.\n" msgstr "" +"[options]\n" +"\n" +"Uruchom serwer zawartości calibre. Serwer zawartości calibre\n" +"wystawia twoją bibliotekę calibre w internecie. Domyślny interfejs\n" +"pozwala ci przeglądać bibliotekę calibre według kategorii. Możesz także\n" +"uzyskać dostęp do interfejsu zoptymalizowany dla przeglądarek przenośnych " +"używając\n" +"/mobile i interejsu opartego na OPDS z aplikacjami do czytania używając " +"/opds.\n" +"\n" +"Interfejs OPDS jest ogłaszany automatycznie poprzez BonJour.\n" #: /home/kovid/work/calibre/src/calibre/library/server/main.py:52 msgid "Path to the library folder to serve with the content server" @@ -14730,42 +16257,46 @@ msgid "" "Specifies a restriction to be used for this invocation. This option " "overrides any per-library settings specified in the GUI" msgstr "" +"Określa ograniczenia użyte w tej inwokacji. Ta opcja nadpisuje wszystkie " +"ustawienia dla biblioteki określone w interfejsie graficznym" #: /home/kovid/work/calibre/src/calibre/library/server/main.py:62 msgid "" "Auto reload server when source code changes. May not work in all " "environments." msgstr "" +"Automatycznie przeładuj serwer gdy kod źródłowy ulegnie zmianie. Może nie " +"działać we wszystkich środowiskach." -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:126 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:125 msgid "%d book" -msgstr "" +msgstr "książka %d" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:150 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:148 msgid "%d items" msgstr "%d elementów" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:168 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:166 msgid "RATING: %s
      " msgstr "OCENA: %s
      " -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:171 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:169 msgid "TAGS: %s
      " msgstr "ETYKIETY: %s
      " -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:176 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:174 msgid "SERIES: %s [%s]
      " msgstr "CYKL: %s [%s]
      " -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:269 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:267 msgid "Books in your library" msgstr "Książki w twojej bibliotece" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:275 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:273 msgid "By " -msgstr "" +msgstr "autorstwa " -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:276 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:274 msgid "Books sorted by " msgstr "Książki sortowane według " @@ -14782,6 +16313,8 @@ msgid "" "Whenever you pass arguments to %prog that have spaces in them, enclose the " "arguments in quotation marks." msgstr "" +"Za każdym razem, gdy przekazujesz argumenty do %prog które mają spacje, " +"dołącz argumenty w cudzysłowach." #: /home/kovid/work/calibre/src/calibre/utils/config.py:697 msgid "Path to the database in which books are stored" @@ -14820,47 +16353,60 @@ msgid "Read metadata from files" msgstr "Wczytaj metadane z plików" #: /home/kovid/work/calibre/src/calibre/utils/config.py:717 -msgid "The priority of worker processes" -msgstr "Priorytet zadań" +msgid "" +"The priority of worker processes. A higher priority means they run faster " +"and consume more resources. Most tasks like conversion/news download/adding " +"books/etc. are affected by this setting." +msgstr "" +"Priorytet procesów roboczych. Wyższy priorytet oznacza, że szybciej się " +"wykonują i pobierają więcej zasobów. To ustawienie ma wpływ na większość " +"zadań takich jak konwersja/pobieranie newsów/dodawanie książek/itd." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:719 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:722 msgid "Swap author first and last names when reading metadata" msgstr "" "Zamień miejscami imię i nazwisko autora, podczas odczytywania metadanych" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:721 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:724 msgid "Add new formats to existing book records" msgstr "Dodaj nowy format do istniejącego wpisu książki" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:723 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:726 msgid "Tags to apply to books added to the library" msgstr "Tagi które mają być dodane do książek dodawanych do biblioteki" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:727 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:730 msgid "List of named saved searches" msgstr "Lista nazwanych zapisanych wyszukań" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:728 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:731 msgid "User-created tag browser categories" msgstr "Przeglądarka tagów użytkownika" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:730 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:733 msgid "How and when calibre updates metadata on the device." msgstr "Sposób i harmonogram uaktualniania metadanych na urządzeniu." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:732 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:735 msgid "" "When searching for text without using lookup prefixes, as for example, Red " "instead of title:Red, limit the columns searched to those named below." msgstr "" +"Podczas szukania tekstu bez przedrostków, jak na przykład, Czerwony zamiast " +"title:Czerwony, ogranicz przeszukiwanie kolumn tylko do tych wskazanych " +"poniżej." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:737 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:740 msgid "" "Choose columns to be searched when not using prefixes, as for example, when " "searching for Redd instead of title:Red. Enter a list of search/lookup names " "separated by commas. Only takes effect if you set the option to limit search " "columns above." msgstr "" +"Wybeirz kolumny do przeszukiwania gdy nie używasz przedrostków, na przykład, " +"podczas szukania Czerwony zamiast titel:Czerwony. Wprowadź listę nazw " +"wyszukiwania oddzielone przecinkami. Ma zastosowanie jeśli ustawisz opcję " +"ograniczenia przeszukiwanych kolumn powyżej." #: /home/kovid/work/calibre/src/calibre/utils/formatter.py:27 msgid "failed to scan program. Invalid input {0}" @@ -14868,7 +16414,7 @@ msgstr "Nieudane skanowanie programu. Nieprawidłowe dane na wejściu {0}" #: /home/kovid/work/calibre/src/calibre/utils/formatter.py:32 msgid " near " -msgstr "" +msgstr " blisko " #: /home/kovid/work/calibre/src/calibre/utils/formatter.py:38 msgid "end of program" @@ -14888,7 +16434,7 @@ msgstr "nieznana funkcja {0}" #: /home/kovid/work/calibre/src/calibre/utils/formatter.py:126 msgid "missing closing parenthesis" -msgstr "" +msgstr "brak zamkniętego nawiasu" #: /home/kovid/work/calibre/src/calibre/utils/formatter.py:145 msgid "expression is not function or constant" @@ -14896,11 +16442,11 @@ msgstr "wyrażenie nie jest funkcją czy stałą" #: /home/kovid/work/calibre/src/calibre/utils/formatter.py:179 msgid "format: type {0} requires an integer value, got {1}" -msgstr "" +msgstr "format: typ {0} wymaga wartości całkowitej, mam {1}" #: /home/kovid/work/calibre/src/calibre/utils/formatter.py:185 msgid "format: type {0} requires a decimal (float) value, got {1}" -msgstr "" +msgstr "format: typ {0} wymaga dziesiętnej wartości (float), mam {1}" #: /home/kovid/work/calibre/src/calibre/utils/formatter.py:296 msgid "%s: unknown function" @@ -14923,42 +16469,58 @@ msgid "" "strcmp(x, y, lt, eq, gt) -- does a case-insensitive comparison of x and y as " "strings. Returns lt if x < y. Returns eq if x == y. Otherwise returns gt." msgstr "" +"strcmp(x, y, lt, eq, gt) -- dokonuje porównania x i y jako ciągów (wielkość " +"liter ma znaczenie). Zwraca lt jeśli x < y. Zwraca eq jeśli x == y. W innym " +"wypadku zwraca gt." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:112 msgid "" "cmp(x, y, lt, eq, gt) -- compares x and y after converting both to numbers. " "Returns lt if x < y. Returns eq if x == y. Otherwise returns gt." msgstr "" +"cmp(x, y, lt, eq, gt) -- porównuje x i y po konwersji obu wartości do " +"numerów. Zwraca lt jeśli x < y. Zwraca eq jeśli x == y. W innym wypadku " +"zwraca gt." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:127 msgid "" "strcat(a, b, ...) -- can take any number of arguments. Returns a string " "formed by concatenating all the arguments" msgstr "" +"strcat(a, b, ...) -- może pobrać jakąkolwiek ilość argumentów. Zwraca ciąg " +"znaków połączonych z wszystkich argumentów" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:140 msgid "" "add(x, y) -- returns x + y. Throws an exception if either x or y are not " "numbers." msgstr "" +"add(x, y) -- zwraca x + y. Wyrzuca wyjątek jeśli albo x albo y nie są " +"numerami." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:150 msgid "" "subtract(x, y) -- returns x - y. Throws an exception if either x or y are " "not numbers." msgstr "" +"subtract(x, y) -- zwraca x - y. Wyrzuca wyjątek jeśli albo x albo y nie są " +"numerami." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:160 msgid "" "multiply(x, y) -- returns x * y. Throws an exception if either x or y are " "not numbers." msgstr "" +"multiply(x, y) -- zwraca x * y. Wyrzuca wyjątek jeśli albo x albo y nie są " +"numerami." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:170 msgid "" "divide(x, y) -- returns x / y. Throws an exception if either x or y are not " "numbers." msgstr "" +"divide(x, y) -- zwraca x / y. Wyrzuca wyjątek jeśli albo x albo y nie są " +"numerami." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:180 msgid "" @@ -14969,6 +16531,12 @@ msgid "" "automatically. For example, template('[[title_sort]]') will evaluate the " "template {title_sort} and return its value." msgstr "" +"template(x) -- określa x jako szablon. Określanie dokonuje się we własnym " +"kontekście, co oznacza, że zmienne nie są oduostępniane pomiędzy wywołującym " +"a określoeniem szablonu. Ponieważ znaki { and } są specjalne, musisz użyć [[ " +"dla { znaków i ]] dla } znaków; są konwertowane automatycznie. Na przykład, " +"template('[[title_sort]]') określi wzorzec {title_sort} i zwróci jego " +"wartość." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:195 msgid "" @@ -14976,12 +16544,17 @@ msgid "" "'assign'ed to) instead of the book metadata. This permits using the " "template processor to construct complex results from local variables." msgstr "" +"eval(template) -- określa szablon, przekazując lokalne zmienne (te " +"'przypisane' do) zamiast z książki metadanych. To pozwala wykorzystać " +"procesor szablonów do konstrukcji złożonych wyników z lokalnych zmiennych." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:208 msgid "" "assign(id, val) -- assigns val to id, then returns val. id must be an " "identifier, not an expression" msgstr "" +"assign(id, val) -- przypisuje val do id, a następnie zwraca val. id musi być " +"identyfikatorem, nie wyrażeniem" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:218 msgid "" @@ -14989,16 +16562,21 @@ msgid "" "start calibre from the command line (calibre-debug -g), the output will go " "to a black hole." msgstr "" +"print(a, b, ...) -- drukuje argumenty do standardowego profilu wynikowego. " +"Jeśli nie uruchomisz calibre z linii komend (calibre-debug -g), wynik " +"pójdzie do czarnej dziury." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:229 msgid "field(name) -- returns the metadata field named by name" -msgstr "" +msgstr "field(name) -- zwraca pole metadanych nazwane po nazwie" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:237 msgid "" "raw_field(name) -- returns the metadata field named by name without applying " "any formatting." msgstr "" +"raw_field(name) -- zwraca metadane pola nazwanego po nazwie bez zastosowania " +"jakiegokolwiek formatowania." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:246 msgid "" @@ -15009,6 +16587,11 @@ msgid "" "substr('12345', 1, 0) returns '2345', and substr('12345', 1, -1) returns " "'234'." msgstr "" +"substr(str, startowy, końcowy) -- zwraca startowy poprzez końcowy znak " +"ciągu. Pierwszy znak str to zerowy znak. Jeśli końcowy jest ujemny, wówczas " +"wskazuje tylko znaków licząc od prawej. Jeśli końcowy jest zerem, wówczas " +"wskazuje ostatni znak. Na przykład, substr('12345', 1, 0) zwraca '2345', a " +"substr('12345', 1, -1) zwraca '234'." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:259 msgid "" @@ -15019,16 +16602,25 @@ msgid "" "the value of some other composite field. This is extremely useful when " "constructing variable save paths" msgstr "" +"lookup(val, pattern, field, pattern, field, ..., else_field) -- tak jak " +"switch, z wyjątkiem że argumentami są nazwy pola (metadane), nie tekst. " +"Wartość odpowiedniego pola zostanie pobrana i użyta. Zwróć uwagę, złożone " +"kolumny to pola, możesz użyć tej funkcji w jednym złożonym polu, aby użyć " +"wartości z jakiegoś innego złożonego pola. Jest to nadzwyczaj użyteczne " +"podczas konstruowania zmiennych ścieżek zapisu" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:274 msgid "lookup requires either 2 or an odd number of arguments" -msgstr "" +msgstr "lookup wymaga albo 2 albo nieparzystej liczby argumentów" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:286 msgid "" "test(val, text if not empty, text if empty) -- return `text if not empty` if " "the field is not empty, otherwise return `text if empty`" msgstr "" +"test(val, tekst gdy niepusty, tekst gdy pusty) -- zwraca `tekst gdy " +"niepusty` gdy pole nie jest puste, w przeciwnym wypadku zwraca `tekst gdy " +"pusty`" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:298 msgid "" @@ -15036,6 +16628,10 @@ msgid "" "contains matches for the regular expression `pattern`. Returns `text if " "match` if matches are found, otherwise it returns `text if no match`" msgstr "" +"contains(val, pattern, tekst gdy pasuje, tekst gdy nie pasuje) -- sprawdza " +"czy pole zawiera dopasowania dla regularnego wyrażenia `pattern` (wzorzec). " +"Zwraca ` tekst gdy pasuje` jeśli znajdzie dopasowania, w przeciwnym wypadku " +"zwraca `tekst gdy nie pasuje`" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:313 msgid "" @@ -15045,10 +16641,15 @@ msgid "" "else_value is returned. You can have as many `pattern, value` pairs as you " "want" msgstr "" +"switch(val, pattern, value, pattern, value, ..., else_value) -- dla każdej " +"pary `pattern, value`, sprawdza czy pole pasuje do regularnego wyrażnenia " +"`pattern` (wzorzec) a jeśli tak, to zwraca ta `value` (wartość). Jeśli żaden " +"wzorzec nie pasuje, wówczas zwracana jest else_value. Możesz zadeklarować " +"tyle par `pattern, value` ile chcesz" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:321 msgid "switch requires an odd number of arguments" -msgstr "" +msgstr "switch wymaga nieparzystej ilości argumentów" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:333 msgid "" @@ -15056,12 +16657,17 @@ msgid "" "expression. All instances of `pattern` are replaced with `replacement`. As " "in all of calibre, these are python-compatible regular expressions" msgstr "" +"re(val, wzorzec, zamiana) -- zwraca pole po zastosowaniu regularnego " +"wyrażenia. Wszystkie wypadki `wzorca` są zastąpione `zamianą`. Tak jak w " +"całym calibre, są to kompatybilne z pythonem regularne wyrażenia" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:344 msgid "" "ifempty(val, text if empty) -- return val if val is not empty, otherwise " "return `text if empty`" msgstr "" +"ifempty(val, tekst jeśli pusty) -- zwraca val jeśli val nie jest pusty, w " +"przeciwnym wypadku zwraca `tekst jeśli pusty`" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:356 msgid "" @@ -15076,6 +16682,16 @@ msgid "" "chars + the length of `middle text`, then the field will be used intact. For " "example, the title `The Dome` would not be changed." msgstr "" +"shorten(val, left chars, middle text, right chars) -- zwraca skróconą wersję " +"pola, składająca się ze znaków `left chars` z początku pola, następnie " +"`middle text`, a następnie `right chars` z końca ciągu. `Left chars` i " +"`right chars` muszą być liczbami całkowitymi. Na przykład, załóżmy, że tytuł " +"książki to `Ancient English Laws in the Times of Ivanhoe`, a ty chcesz " +"zmieścić się w przestrzeni najwyżej 15 znaków. Jeśli użyjesz " +"{title:shorten(9,-,5)}, wynikiem będzie `Ancient E-nhoe`. Jeśli długośc pola " +"jest mniejsza niż left chars + right chars + długość `middle text`, wówczas " +"pole pozostanie nienaruszone. Na przykład tytuł `The Dome` nie ulegnie " +"zmianie." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:381 msgid "" @@ -15084,6 +16700,10 @@ msgid "" "comma as the separator, but authors uses an ampersand. Examples: " "{tags:count(,)}, {authors:count(&)}" msgstr "" +"count(val, separator) -- interpretuje wartość jako listę elementów " +"oddzielonych `separatorem`, zwraca liczbę elementów w liście. Większośc list " +"używa przecinka jako separatora, ale autorzy używa znak &. Przykłady: " +"{tags:count(,)}, {authors:count(&)}" #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:392 msgid "" @@ -15093,6 +16713,11 @@ msgid "" "If the item is not in the list, then the empty value is returned. The " "separator has the same meaning as in the count function." msgstr "" +"list_item(val, index, separator) -- interpretuje wartość jako listę " +"oddzielaną `separatorem`, zwraca `index` elementu. Pierwszy element to numer " +"zero. Ostatni element może zostać zwrócony przy użyciu `list_item(-" +"1,separator)`. Jeśli element nie jest w liście, wówczas zwrócona zostaje " +"pusta wartość. Separator ma takie samo znaczenie jak w funkcji count." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:412 msgid "" @@ -15100,20 +16725,66 @@ msgid "" "with the items being \"id:value\". Find the pair with theid equal to key, " "and return the corresponding value." msgstr "" +"select(val, key) -- interpretuje wartość jako oddzielaną przecinkami listę " +"elementów, z elementami będącymi \"id:value\". Znajduje parę z id równym " +"key, a potem zwraca odpowiadającą jej wartość." #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:429 msgid "" -"sublist(val, start_index, end_index, separator) -- interpret the value as a " -"list of items separated by `separator`, returning a new list made from the " +"sublist(val, start_index, end_index, separator) -- interpret the value as a " +"list of items separated by `separator`, returning a new list made from the " "`start_index`th to the `end_index`th item. The first item is number zero. If " "an index is negative, then it counts from the end of the list. As a special " "case, an end_index of zero is assumed to be the length of the list. Examples " -"using basic template mode and assuming a #genre value if A.B.C: " -"{#genre:sublist(-1,0,.)} returns C
      {#genre:sublist(0,1,.)} returns " -"A
      {#genre:sublist(0,-1,.)} returns A.B" +"using basic template mode and assuming that the tags column (which is comma-" +"separated) contains \"A, B, C\": {tags:sublist(0,1,\\,)} returns \"A\". " +"{tags:sublist(-1,0,\\,)} returns \"C\". {tags:sublist(0,-1,\\,)} returns " +"\"A, B\"." msgstr "" +"sublist(val, start_index, end_index, separator) -- interpretuje wartość jako " +"listę elementów oddzielonych `separatorem`, zwracając nową listę stworzoną " +"od elementu `start_index` do elementu `end_index`. Pierwszy element jest " +"numerem zero. Jeśli indeks jest ujemny, wówczas liczy od końca listy. W " +"szczególnym wypadku, end_index zera zakłada się, że jest długością listy. " +"Przykłady wykorzystujące prosty tryb szablonu przy założeniu, że kolumny " +"etykiet (które sa oddzielane przecinkiem) zawierają \"A, B, C\": " +"{tags:sublist(0,1,\\,)} zwraca \"A\". {tags:sublist(-1,0,\\,)} zwraca \"C\". " +"{tags:sublist(0,-1,\\,)} zwraca \"A, B\"." -#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:457 +#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:458 +msgid "" +"subitems(val, start_index, end_index) -- This function is used to break " +"apart lists of items such as genres. It interprets the value as a comma-" +"separated list of items, where each item is a period-separated list. Returns " +"a new list made by first finding all the period-separated items, then for " +"each such item extracting the start_index`th to the `end_index`th " +"components, then combining the results back together. The first component in " +"a period-separated list has an index of zero. If an index is negative, then " +"it counts from the end of the list. As a special case, an end_index of zero " +"is assumed to be the length of the list. Example using basic template mode " +"and assuming a #genre value of \"A.B.C\": {#genre:subitems(0,1)} returns " +"\"A\". {#genre:subitems(0,2)} returns \"A.B\". {#genre:subitems(1,0)} " +"returns \"B.C\". Assuming a #genre value of \"A.B.C, D.E.F\", " +"{#genre:subitems(0,1)} returns \"A, D\". {#genre:subitems(0,2)} returns " +"\"A.B, D.E\"" +msgstr "" +"subitems(val, start_index, end_index) -- Ta funkcja używana jest do " +"rozdzielania listy elementów takich jak gatunki. Interpretuje wartość jako " +"oddzielaną przecinkami listę elementów, gdzie każdy element jest listą " +"oddzielaną kropką. Zwraca nową listę stworzoną przez pierwsze znalezienie " +"wszystkich elementów oddzielanych kropką, wtedy dla każdego takiego elementu " +"wyciąga komponenty od `start_index` do `end_index`, potem łączy wyniki z " +"powrotem w całość. Pierwszy komponent w liście oddzielanej kropkami ma " +"indeks zero. Jeśli indeks jest ujemny, wówczas liczy od końca listy. W " +"szczególnym przypadku, end_index zera zakłada się, że jest długością " +"listy.Przykłady wykorzystujące prosty tryb szablonu przy założeniu, że " +"wartość #genre z \"A.B.C\": {#genre:subitems(0,1)} zwraca \"A\". " +"{#genre:subitems(0,2)} zwraca \"A.B\". {#genre:subitems(1,0)} zwraca " +"\"B.C\". Zakłądając, że wartość #genre z \"A.B.C, D.E.F\", " +"{#genre:subitems(0,1)} zwraca \"A, D\". {#genre:subitems(0,2)} zwraca \"A.B, " +"D.E\"" + +#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:495 msgid "" "format_date(val, format_string) -- format the value, which must be a date " "field, using the format_string, returning a string. The formatting codes " @@ -15127,22 +16798,34 @@ msgid "" "\"December\"). yy : the year as two digit number (00 to 99). yyyy : the " "year as four digit number." msgstr "" +"format_date(val, format_string) -- formatuje wartość, która musi być polem " +"daty, używając format_string, zwraca tekst. Kody formatowania: d : dzień " +"jako liczba bez zera poprzedzającego (1 do 31) dd : dzień jako liczba z " +"zerem poprzedzającym (01 do 31) ddd : skrócona lokalna nazwa dnia (np. " +"\"Pon\" do \"Nie\"). dddd : długa nazwa lokalna dnia (np. \"Poniedziałek\" " +"do \"Niedziela\"). M : miesiąc jako liczba bez zera poprzedzającego (1 do " +"12). MM : miesiąc jako liczba z zerem poprzedzającym (01 do 12) MMM : " +"skrócona lokalna nazwa miesiąca (np. \"Sty\" do \"Gru\"). MMMM : długa nazwa " +"lokalna miesiąca (np. \"Styczeń\" do \"Grudzień\"). yy : rok jako " +"dwucyfrowy numer (00 do 99). yyyy : rok jako czterocyfrowy numer." -#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:484 +#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:522 msgid "uppercase(val) -- return value of the field in upper case" -msgstr "" +msgstr "uppercase(val) -- zwraca wartość pola w dużych literach" -#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:492 +#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:530 msgid "lowercase(val) -- return value of the field in lower case" -msgstr "" +msgstr "lowercase(val) -- zwraca wartość pola w małych literach" -#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:500 +#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:538 msgid "titlecase(val) -- return value of the field in title case" msgstr "" +"titlecase(val) -- zwraca wartość pola w tytulikach (każdy wyraz z wielkiej " +"litery)" -#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:508 +#: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:546 msgid "capitalize(val) -- return value of the field capitalized" -msgstr "" +msgstr "capitalize(val) -- zwraca wartość pola napisaną dużymi literami" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." @@ -15166,7 +16849,7 @@ msgstr "brazylijsko-portugalski" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 msgid "English (UK)" -msgstr "Angielski (Wielka Brytania)" +msgstr "angielski (Wielka Brytania)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 msgid "Simplified Chinese" @@ -15186,15 +16869,15 @@ msgstr "angielski" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 msgid "English (Australia)" -msgstr "Angielski (Australia)" +msgstr "angielski (Australia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 msgid "English (New Zealand)" -msgstr "Angielski (Nowa Zelandia)" +msgstr "angielski (Nowa Zelandia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 msgid "English (Canada)" -msgstr "Angielski (Kanada)" +msgstr "angielski (Kanada)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 msgid "English (India)" @@ -15202,31 +16885,31 @@ msgstr "Angielski (Indie)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 msgid "English (Thailand)" -msgstr "Angielski (Tajlandia)" +msgstr "angielski (Tajlandia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 msgid "English (Cyprus)" -msgstr "Angielski (Cypr)" +msgstr "angielski (Cypr)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Czechoslovakia)" -msgstr "" +msgstr "angielski (Czechosłowacja)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "English (Pakistan)" -msgstr "Angielski (Pakistan)" +msgstr "angielski (Pakistan)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 msgid "English (Croatia)" -msgstr "" +msgstr "angielski (Chorwacja)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 msgid "English (Indonesia)" -msgstr "" +msgstr "angielski (Indonezja)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 msgid "English (Israel)" -msgstr "Angielski (Izrael)" +msgstr "angielski (Izrael)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:112 msgid "English (Singapore)" @@ -15234,15 +16917,15 @@ msgstr "Angielski (Singapur)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:113 msgid "English (Yemen)" -msgstr "Angielski (Jemen)" +msgstr "angielski (Jemen)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:114 msgid "English (Ireland)" -msgstr "Angielski (Irlandia)" +msgstr "angielski (Irlandia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:115 msgid "English (China)" -msgstr "Angielski (Chiny)" +msgstr "angielski (Chiny)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:116 msgid "Spanish (Paraguay)" @@ -15250,67 +16933,67 @@ msgstr "hiszpański (Paragwaj)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:117 msgid "Spanish (Uruguay)" -msgstr "" +msgstr "hiszpański (Urugwaj)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:118 msgid "Spanish (Argentina)" -msgstr "" +msgstr "hiszpański (Argentyna)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:119 msgid "Spanish (Mexico)" -msgstr "" +msgstr "hiszpański (Meksyk)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:120 msgid "Spanish (Cuba)" -msgstr "" +msgstr "hiszpański (Kuba)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:121 msgid "Spanish (Chile)" -msgstr "" +msgstr "hiszpański (Chile)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:122 msgid "Spanish (Ecuador)" -msgstr "" +msgstr "hiszpański (Ekwador)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:123 msgid "Spanish (Honduras)" -msgstr "" +msgstr "hiszpański (Honduras)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:124 msgid "Spanish (Venezuela)" -msgstr "" +msgstr "Hiszpański (Wenezuela)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:125 msgid "Spanish (Bolivia)" -msgstr "" +msgstr "hiszpański (Boliwia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:126 msgid "Spanish (Nicaragua)" -msgstr "" +msgstr "Hiszpański (Nikaragua)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:127 msgid "German (AT)" -msgstr "Niemiecki (Austria)" +msgstr "niemiecki (Austria)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:128 msgid "French (BE)" -msgstr "" +msgstr "francuski (Belgia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:129 msgid "Dutch (NL)" -msgstr "Niderlandzki (Holandia)" +msgstr "niderlandzki (Holandia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:130 msgid "Dutch (BE)" -msgstr "Niderlandzi (Belgia)" +msgstr "niderlandzki (Belgia)" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:56 msgid "Choose theme (needs restart)" -msgstr "" +msgstr "Wybierz temat (wymaga ponownego uruchomienia)" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:109 msgid "ERROR: Unhandled exception" -msgstr "BŁĄD: Nieobsłuzony wyjątek" +msgstr "BŁĄD: Nieobsłużony wyjątek" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:188 msgid "No interpreter" @@ -15318,21 +17001,23 @@ msgstr "Brak interpretera" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:189 msgid "No active interpreter found. Try restarting the console" -msgstr "" +msgstr "Brak aktywnego interpretera. Spróbuj zrestartować konsolę" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:203 msgid "Interpreter died" -msgstr "" +msgstr "Interpreter umarł" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:204 msgid "" "Interpreter dies while excuting a command. To see the command, click Show " "details" msgstr "" +"Interpreter umiera w momencie wykonywania komendy. Aby zobaczyć komendę, " +"kliknij w Pokaż szczegóły" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/main.py:20 msgid "Welcome to" -msgstr "" +msgstr "Witaj w" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/main.py:41 msgid " console " @@ -15340,15 +17025,15 @@ msgstr " konsola " #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/main.py:51 msgid "Code is running" -msgstr "" +msgstr "Trwa wykonywanie kodu" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/main.py:58 msgid "Restart console" -msgstr "Restartuj konsole" +msgstr "Uruchom ponownie konsolę" #: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 msgid "URL must have the scheme sftp" -msgstr "" +msgstr "URL musi mieć schemat sftp" #: /home/kovid/work/calibre/src/calibre/utils/sftp.py:57 msgid "host must be of the form user@hostname" @@ -15360,24 +17045,24 @@ msgstr "Nie udało się wynegocjować sesji SSH: " #: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71 msgid "Failed to authenticate with server: %s" -msgstr "Nie mozna było uwierzytelnić z serwerem: %s" +msgstr "Nie można było uwierzytelnić z serwerem: %s" #: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Kontroluj dostarczanie poczty email" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:119 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:120 msgid "Unknown section" msgstr "Nieznana sekcja" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:141 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:142 msgid "Unknown feed" msgstr "Nieznany strumień" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:159 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:186 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:160 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:187 msgid "Untitled article" -msgstr "Artukył bez tytułu" +msgstr "Artykuł bez tytułu" #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:22 msgid "Download periodical content from the internet" @@ -15435,15 +17120,15 @@ msgstr "\tNieprawidłowe linki:" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:842 msgid "Could not fetch article." -msgstr "" +msgstr "Nie udało się pobrać artykułu." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:844 msgid "The debug traceback is available earlier in this log" -msgstr "" +msgstr "Informacje dotyczące debugowania są dostępne wcześniej w tym lgou" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:846 msgid "Run with -vv to see the reason" -msgstr "" +msgstr "Uruchom z opcją -vv aby zobaczyć powód" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:869 msgid "Fetching feeds..." @@ -15459,7 +17144,7 @@ msgstr "Próbuję pobrać okładkę..." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:885 msgid "Generating masthead..." -msgstr "" +msgstr "Generuje nagłówek..." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:965 msgid "Starting download [%d thread(s)]..." @@ -15479,7 +17164,7 @@ msgstr "Pobieranie okładki z %s" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1045 msgid "Masthead image downloaded" -msgstr "" +msgstr "Obrazek nagłówka pobrany" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1213 msgid "Untitled Article" @@ -15502,27 +17187,29 @@ msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "" +"Nie udało się zalogować, sprawdź nazwę użytkownika i hasło do usługi " +"czasopisma calibre." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1474 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 "" -"Nie masz uprawnień do pobrania tego wydania. Albo Twoja subskrypcja wygasła, " +"Nie masz uprawnień do pobrania tego wydania. Albo twoja subskrypcja wygasła, " "albo przekroczyłeś maksymalną dzienną ilość pobrań." -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 msgid "You" msgstr "Ty" -#: /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:194 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:75 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:202 msgid "Scheduled" msgstr "Zaplanowano" -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:195 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:86 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:203 msgid "Custom" msgstr "Dostosuj" @@ -15540,7 +17227,7 @@ msgstr "Poprzednia sekcja" #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:214 msgid "Section Menu" -msgstr "" +msgstr "Menu Sekcji" #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:217 msgid "Main Menu" @@ -15581,6 +17268,8 @@ msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" +"Maksymalna ilość poziomów do rekursji np. najdalsza ilość linków do " +"śledzenia. Domyślnie %default" #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 msgid "" @@ -15624,6 +17313,11 @@ msgid "" "a link, it will be ignored.By default, no links are ignored. If both filter " "regexp and match regexp are specified, then filter regexp is applied first." msgstr "" +"Jakikolwiek link który pasuje do tego regularnego wyrażenia zostanie " +"zignorowany. Ta opcja może być określona wiele razy, w takim wypadku dopóki " +"jakiekolwiek regexp pasuje do linka, zostanie zignorowane. Domyślnie żadne " +"linki nie są ignorowane. Jeśli oba filtry regesp i match regexp są " +"okreslone, wówczas filtr regexp jest wpierw stosowany." #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 msgid "Do not download CSS stylesheets." @@ -16604,6 +18298,9 @@ msgstr "Nie pobieraj arkuszy styli CSS." #~ msgid "Copy to Clipboard" #~ msgstr "Kopiuj do schowka" +#~ msgid "Last downloaded" +#~ msgstr "Ostatnio pobrano" + #~ msgid "Download &cover" #~ msgstr "Pobierz o&kładkę" @@ -16660,9 +18357,39 @@ msgstr "Nie pobieraj arkuszy styli CSS." #~ msgid "Remove H&eader" #~ msgstr "Usuń &nagłówek" +#~ msgid "day" +#~ msgstr "dzień" + +#~ msgid "Monday" +#~ msgstr "poniedziałek" + +#~ msgid "Tuesday" +#~ msgstr "wtorek" + #~ msgid "Download all scheduled recipes at once" #~ msgstr "Pobierz wszystkie zaplanowane" +#~ msgid "Friday" +#~ msgstr "piątek" + +#~ msgid "Thursday" +#~ msgstr "czwartek" + +#~ msgid "Every " +#~ msgstr "Co " + +#~ msgid "at" +#~ msgstr "o" + +#~ msgid "Wednesday" +#~ msgstr "środę" + +#~ msgid "Saturday" +#~ msgstr "sobotę" + +#~ msgid "Sunday" +#~ msgstr "niedzielę" + #~ msgid "Device database corrupted" #~ msgstr "Baza danych urządzenia uszkodzona" @@ -16931,6 +18658,10 @@ msgstr "Nie pobieraj arkuszy styli CSS." #~ msgid "Configure calibre" #~ msgstr "Konfiguruj calibre" +#~ msgid "You must set the username and password for the mail server." +#~ msgstr "" +#~ "Musisz ustawić nazwe uzytkownika i hasło dla tego serweru pocztowego." + #~ msgid "" #~ "No metadata found, try adjusting the title and author or the ISBN key." #~ msgstr "" @@ -17139,6 +18870,27 @@ msgstr "Nie pobieraj arkuszy styli CSS." #~ msgid "Column &type" #~ msgstr "&Typ kolumny" +#~ msgid "mixed" +#~ msgstr "mieszany" + +#~ msgid "misc" +#~ msgstr "różny" + +#~ msgid "book" +#~ msgstr "książka" + +#~ msgid "replace" +#~ msgstr "zastąp" + +#~ msgid "ignore" +#~ msgstr "ignoruj" + +#~ msgid "ascii/LaTeX" +#~ msgstr "ascii/LaTeX" + +#~ msgid "strict" +#~ msgstr "ścisłe" + #~ msgid "Send specific format" #~ msgstr "Wyślij wybrany format" @@ -17272,6 +19024,9 @@ msgstr "Nie pobieraj arkuszy styli CSS." #~ msgid "Unknown publisher" #~ msgstr "Nieznany wydawca" +#~ msgid "The priority of worker processes" +#~ msgstr "Priorytet zadań" + #~ msgid "Extra covers in books" #~ msgstr "Dodatkowe okładki w książkach" @@ -17283,3 +19038,6 @@ msgstr "Nie pobieraj arkuszy styli CSS." #~ msgid "Downloads series information from ww2.kdl.org" #~ msgstr "Pobierz informacje o serii z ww2.kdl.org" + +#~ msgid "backslashreplace" +#~ msgstr "zastąpienie znaku \"\\\"" diff --git a/src/calibre/translations/pt.po b/src/calibre/translations/pt.po index e7a60c1ae6..ce35e9ad2f 100644 --- a/src/calibre/translations/pt.po +++ b/src/calibre/translations/pt.po @@ -7,47 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2011-03-04 20:51+0000\n" -"PO-Revision-Date: 2011-01-24 16:19+0000\n" -"Last-Translator: Alberto Ferreira \n" +"POT-Creation-Date: 2011-03-26 02:12+0000\n" +"PO-Revision-Date: 2011-03-21 20:14+0000\n" +"Last-Translator: Carlos Ricardo Santos \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-03-05 04:45+0000\n" -"X-Generator: Launchpad (build 12351)\n" +"X-Launchpad-Export-Date: 2011-03-27 04:45+0000\n" +"X-Generator: Launchpad (build 12559)\n" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 -msgid "day" -msgstr "dias" +#~ msgid "Monday" +#~ msgstr "Segundas-Feiras" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 -msgid "Monday" -msgstr "Segundas-Feiras" +#~ msgid "Tuesday" +#~ msgstr "Terças-Feiras" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 -msgid "Tuesday" -msgstr "Terças-Feiras" +#~ msgid "Wednesday" +#~ msgstr "Quartas-Feiras" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:223 -msgid "Wednesday" -msgstr "Quartas-Feiras" +#~ msgid "day" +#~ msgstr "dias" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:224 -msgid "Thursday" -msgstr "Quintas-Feiras" +#~ msgid "Friday" +#~ msgstr "Sextas-Feiras" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:225 -msgid "Friday" -msgstr "Sextas-Feiras" +#~ msgid "Saturday" +#~ msgstr "Sábados" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:226 -msgid "Saturday" -msgstr "Sábados" +#~ msgid "Sunday" +#~ msgstr "Domingos" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:227 -msgid "Sunday" -msgstr "Domingos" +#~ msgid "Thursday" +#~ msgstr "Quintas-Feiras" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" @@ -59,16 +51,16 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:486 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:488 #: /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:660 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:455 -#: /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/devices/usbms/driver.py:461 +#: /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:56 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:423 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:430 #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:127 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:102 @@ -81,9 +73,9 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:31 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:32 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:74 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:414 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:419 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:659 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:424 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:429 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:674 #: /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:54 @@ -93,8 +85,8 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:126 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1054 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1164 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1064 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1174 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 @@ -103,7 +95,8 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/rtf.py:91 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/rtf.py:101 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/snb.py:16 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txtz.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43 @@ -112,13 +105,13 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:125 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:159 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:667 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:882 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:884 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:883 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:885 #: /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:981 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:986 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1052 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1006 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1072 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:145 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:152 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:65 @@ -144,10 +137,10 @@ msgstr "Não faz absolutamente nada" #: /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:100 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:101 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:312 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:314 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:313 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:315 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:308 #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:315 #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:155 @@ -159,46 +152,46 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:153 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1106 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1109 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1108 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1111 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:68 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:145 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:732 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:734 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:421 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:440 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:991 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1184 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:449 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:999 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1192 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:70 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:185 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:112 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:199 #: /home/kovid/work/calibre/src/calibre/library/cli.py:216 #: /home/kovid/work/calibre/src/calibre/library/database.py:914 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:486 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:492 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:502 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1706 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1816 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2790 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2792 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2925 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:495 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:503 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:514 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1776 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1900 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2889 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2891 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3024 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:233 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:158 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:161 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:79 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:131 #: /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:55 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:54 msgid "Unknown" msgstr "Desconhecido(a)" @@ -211,8 +204,8 @@ msgid "Customize" msgstr "Personalizar" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:47 msgid "Cannot configure" msgstr "É impossível configurar" @@ -280,6 +273,9 @@ msgid "" "Textile references to images. The referenced images as well as the TXT file " "are added to the archive." msgstr "" +"Cria um arquivo TXTZ quando um ficheiro TXT importado contém referências " +"para imagens em Markdown ou Textile. Tanto as imagens referenciadas como o " +"próprio ficheiro TXT são adicionados ao arquivo." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:166 msgid "Extract cover from comic files" @@ -355,7 +351,7 @@ msgid "Change the way calibre behaves" msgstr "Altere o comportamento do Calibre" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:218 msgid "Add your own columns" msgstr "Adicione as suas próprias colunas" @@ -378,11 +374,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Customize searching" -msgstr "" +msgstr "Personalizar pesquisa" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Customize the way searching for books works in calibre" -msgstr "" +msgstr "Personalizar o modo como funciona a pesquisa de livros no calibre" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:879 msgid "Input Options" @@ -461,7 +457,7 @@ msgstr "Alterar os metadados antes de gravar/enviar" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:959 msgid "Template Functions" -msgstr "" +msgstr "Funções de Template" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:961 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:997 @@ -472,7 +468,7 @@ msgstr "Avançadas" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:965 msgid "Create your own template functions" -msgstr "" +msgstr "Criar as suas próprias funções de template" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:970 msgid "Sharing books by email" @@ -505,7 +501,7 @@ msgstr "" "sítio" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:995 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:267 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:268 msgid "Plugins" msgstr "Extras" @@ -681,11 +677,11 @@ msgstr "Este perfil destina-se ao Sony PRS-300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "Suitable for use with any e-ink device" -msgstr "" +msgstr "Apropriado para uso em qualquer disposito e-ink" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:509 msgid "Suitable for use with any large screen e-ink device" -msgstr "" +msgstr "Apropriado para uso em qualquer disposito e-ink de ecrã largo" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:518 msgid "This profile is intended for the 5-inch JetBook." @@ -790,7 +786,7 @@ msgstr "Debug log" msgid "Communicate with Android phones." msgstr "Estabelecer ligação a telefones Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:83 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:90 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -798,23 +794,47 @@ msgstr "" "Lista de directorias separada por vírgulas para enviar e-books para o " "dispositivo (a primeira existente será usada)" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:130 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:138 msgid "Communicate with S60 phones." msgstr "Estabelecer ligação a telefones S60." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:92 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:52 +msgid "Use Series as Category in iTunes/iBooks" +msgstr "Usar Série como Categoria no iTunes/iBooks" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:53 +msgid "Enable to use the series name as the iTunes Genre, iBooks Category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:55 +msgid "Cache covers from iTunes/iBooks" +msgstr "Capas em 'cache' do iTunes/iBooks" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:57 +msgid "Enable to cache and display covers from iTunes/iBooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:58 +msgid "Skip 'Connect to iTunes' recommendation" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:60 +msgid "Enable to skip the 'Connect to iTunes' recommendation dialog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:115 msgid "Apple device" msgstr "Dispositivo Apple" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:94 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:117 msgid "Communicate with iTunes/iBooks." msgstr "Estabelecer ligação com o sistema iTunes/iBooks." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:100 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:128 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "Dispositivo Apple detectado. Aguarde enquanto o iTunes é iniciado..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:130 msgid "" "Cannot copy books directly from iDevice. Drag from iTunes Library to " "desktop, then add to calibre's Library window." @@ -823,35 +843,27 @@ msgstr "" "livro da biblioteca iTunes para o ambiente de trabalho e, depois, para a " "janela Biblioteca do calibre." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:262 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:265 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:290 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:293 msgid "Updating device metadata listing..." msgstr "A actualizar a lista de metadados do dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:341 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:380 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:949 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:989 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2971 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3011 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:369 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:408 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:986 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1026 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3010 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3050 msgid "%d of %d" msgstr "%d de %d" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:387 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:994 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3017 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:415 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1031 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3056 msgid "finished" msgstr "terminado" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:562 -msgid "Use Series as Category in iTunes/iBooks" -msgstr "Usar Série como Categoria no iTunes/iBooks" - -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:564 -msgid "Cache covers from iTunes/iBooks" -msgstr "Capas em 'cache' do iTunes/iBooks" - -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:576 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:600 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" @@ -861,7 +873,7 @@ msgstr "" "Apague-os utilizando a aplicação iBooks.\n" "Carregue em 'Mostrar Detalhes' para obter a lista." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:913 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:950 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." @@ -869,7 +881,7 @@ msgstr "" "Algumas capas não puderam ser convertidas.\n" "Carregue em 'Mostrar Detalhes' para obter a lista." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2552 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2592 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:100 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:447 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:470 @@ -877,23 +889,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:915 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:945 #: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:264 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:288 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:301 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2654 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:445 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:294 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:307 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2753 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:159 msgid "News" msgstr "Notícias" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2553 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2593 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:634 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2616 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2634 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2715 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2733 msgid "Catalog" msgstr "Catálogo" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2875 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2914 msgid "Communicate with iTunes." msgstr "Estabelecer ligação com o sistema iTunes." @@ -944,7 +956,7 @@ msgstr "Bambook" #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:67 #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:70 #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:73 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:230 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:232 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:120 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:123 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:126 @@ -964,8 +976,8 @@ msgstr "A transferir o(s) livro(s) para o aparelho..." #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:285 #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:299 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:382 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:349 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:384 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:273 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:304 msgid "Adding books to device metadata listing..." @@ -975,8 +987,8 @@ msgstr "A adicionar os livros à listagem de metadados do aparelho..." #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:309 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:299 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:331 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:301 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:333 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:310 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:328 msgid "Removing books from device..." @@ -984,8 +996,8 @@ msgstr "A remover os livros do aparelho..." #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:324 #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:329 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:335 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:342 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:337 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:344 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:335 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:340 msgid "Removing books from device metadata listing..." @@ -1149,11 +1161,11 @@ msgstr "Comunicar com o leitor JetBook Mini." #: /home/kovid/work/calibre/src/calibre/devices/kindle/apnx.py:28 msgid "Not a valid MOBI file. Reports identity of %s" -msgstr "" +msgstr "Não é um ficheiro MOBI válido. Foi identificado como %s" #: /home/kovid/work/calibre/src/calibre/devices/kindle/apnx.py:44 msgid "Could not generate page mapping." -msgstr "" +msgstr "Não consegue gerar o mapeamento de páginas" #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:44 msgid "Communicate with the Kindle eBook reader." @@ -1165,7 +1177,7 @@ msgstr "Comunicar com o leitor Kindle 2/3." #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:180 msgid "Send page number information when sending books" -msgstr "" +msgstr "Enviar informação sobre número de página quando envia o livro" #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:182 msgid "" @@ -1174,10 +1186,14 @@ msgid "" "the Kindle when uploading MOBI files by USB. Note that the page numbers do " "not correspond to any paper book." msgstr "" +"O Kindle 3 e novas versões podem usar informação de paginação em ficheiros " +"MOBI. Com esta opção, o calibre irá calcular e enviar esta informação para o " +"Kindle ao enviar ficheiros MOBI por USB. Note-se que a paginação não " +"corresponde a nenhum livro imprimido." #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:187 msgid "Use slower but more accurate page number generation" -msgstr "" +msgstr "Usar uma geração de número de páginas mais lenta mas mais exacta" #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:189 msgid "" @@ -1186,6 +1202,9 @@ msgid "" "book. However, this method is slower and will slow down sending files to the " "Kindle." msgstr "" +"Existem duas maneiras de gerar os números de página. Usando um gerador mais " +"preciso irá produzir páginas que correspondem melhor a um livro imprimido. " +"Mas este método irá tornar mais lento o envio de ficheiros para o kindle." #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:257 msgid "Communicate with the Kindle DX eBook reader." @@ -1203,12 +1222,12 @@ msgstr "" "O dispositivo Kobo suporta apenas uma colecção actualmente: a lista " "\"Im_Reading\". Crie uma etiqueta com a denominação \"Im_Reading\". " -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:368 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:383 msgid "Not Implemented" msgstr "Não Implementado" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:467 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:469 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." @@ -1223,11 +1242,11 @@ msgstr "Comunicar com o leitor Palm Pre" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:39 msgid "Communicate with the Bq Avant" -msgstr "" +msgstr "Comunicar com Bq Avant" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:60 msgid "Communicate with the Sweex/Kogan/Q600/Wink" -msgstr "" +msgstr "Comunicar com Sweex/Kogan/Q600/Wink" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:81 #: /home/kovid/work/calibre/src/calibre/devices/misc.py:108 @@ -1342,6 +1361,11 @@ msgid "" "WARNING: This option should only be used with newer SONY readers: 350, 650, " "950 and newer." msgstr "" +"Normalmente, os dispositivos SONY usam a imagem da capa do próprio ebook. " +"Com esta opção, o calibre irá enviar uma capa separada para o dispositivo, " +"útil se estiver a enviar livros com DRM nos quais não se pode mudar a capa. " +"AVISO: Esta opção apenas deve ser usada nos novos dispositivos SONY: 50, " +"650, 950 e mais recentes." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:79 msgid "" @@ -1356,10 +1380,13 @@ msgid "" "your device. Unset this option if you have so many books on the reader that " "performance is unacceptable." msgstr "" +"Active esta opção para ter capas de livros separadas, enviadas cada vez que " +"liga o dispositivo. Desactive esta opção caso tenha uma grande quantidade de " +"livros no dispositivo que torne a performance inaceitável." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:85 msgid "Preserve cover aspect ratio when building thumbnails" -msgstr "" +msgstr "Manter a relação altura/largura quando são geradas as miniaturas" #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:87 msgid "" @@ -1367,9 +1394,12 @@ msgid "" "ratio (width to height) as the cover. Unset it if you want the thumbnail to " "be the maximum size, ignoring aspect ratio." msgstr "" +"Active esta opção se deseja que as miniaturas mantenham a mesma relação " +"altura/largura que a capa. Desactive se deseja que a miniatura fique no " +"tamanho máximo, ignorando a relação altura/largura." #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:190 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:69 msgid "Unnamed" msgstr "Sem nome" @@ -1387,7 +1417,7 @@ msgstr "Comunicar com o leitor Newsmy." #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:47 msgid "Communicate with the Archos reader." -msgstr "" +msgstr "Comunicar com o Archos reader." #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:57 msgid "Communicate with the Pico reader." @@ -1407,11 +1437,11 @@ msgstr "Estabelecer ligação com o dispositivo EB700 reader." #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:99 msgid "Communicate with the Stash W950 reader." -msgstr "" +msgstr "Comunicar com o Stash W950 reader." #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:111 msgid "Communicate with the Wexler reader." -msgstr "" +msgstr "Comunicar com o Wexler reader." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:282 msgid "Unable to detect the %s disk drive. Try rebooting." @@ -1508,15 +1538,15 @@ msgstr "Comunica com um leitor de livros." msgid "Get device information..." msgstr "A ir buscar informação sobre o aparelho..." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:190 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:197 msgid "Rendered %s" msgstr "%s representado" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:193 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 msgid "Failed %s" msgstr "Falha em %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:247 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:254 msgid "" "Failed to process comic: \n" "\n" @@ -1526,7 +1556,7 @@ msgstr "" "\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:266 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:273 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 " @@ -1537,23 +1567,23 @@ msgstr "" "esbatido no seu aparelho, se estiver a criar a banda desenhada no formato " "EPUB." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:270 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:277 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Desactivar a normalização (melhoria do contraste) do campo de cores das " "imagens. A predefinição é: False" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:273 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:280 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" "Manter a relação de aspecto da imagem. A predefinição é preencher o écran." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:275 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 msgid "Disable sharpening." msgstr "Desactivar a nitidez." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:277 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:284 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -1561,12 +1591,12 @@ msgstr "" "Desactivar o aparar das páginas de banda desenhada. Em certas bandas " "desenhadas aparar pode remover conteúdos além das margens." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:280 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Don't split landscape images into two portrait images" msgstr "" "Não dividir as imagens em modo de paisagem em duas imagens em modo de retrato" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -1574,7 +1604,7 @@ msgstr "" "Manter a relação de aspecto e escala da imagem usando a altura do écran como " "largura da imagem para visualização em modo paisagem." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." @@ -1583,7 +1613,7 @@ msgstr "" "páginas em modo de paisagem a serem divididas em páginas em modo de retrato " "da direita para a esquerda." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:296 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." @@ -1591,7 +1621,7 @@ msgstr "" "Activar Limpar Irregularidades. Reduz as irregularidades. Pode aumentar " "muito o tempo de processamento." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:299 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -1600,7 +1630,7 @@ msgstr "" "nome. Em vez disso, usar a ordem pela qual foram adicionados à banda " "desenhada." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:296 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:303 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 " @@ -1610,28 +1640,31 @@ msgstr "" "experimentar para ver qual o formato que fica com melhor tamanho e aparência " "no seu aparelho." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:307 msgid "Apply no processing to the image" msgstr "Não aplicar processamento à imagem" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:302 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:309 msgid "Do not convert the image to grayscale (black and white)" msgstr "Não converter a imagem para tons de cinzento (preto e branco)" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:311 msgid "" "Specify the image size as widthxheight pixels. Normally, an image size is " "automatically calculated from the output profile, this option overrides it." msgstr "" +"Especificar o tamanho da imagem com larguraxaltura pixels. Normalmente, o " +"tamanho de uma imagem é automaticamente calculado a partir do perfil de " +"saída, esta opção sobrepõe-se" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:315 msgid "" "When converting a CBC do not add links to each page to the TOC. Note this " "only applies if the TOC has more than one section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:447 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:459 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:454 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:466 msgid "Page" msgstr "Página" @@ -1684,27 +1717,27 @@ msgstr "" "\n" "Para a documentação completa do sistema de conversão veja\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:106 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:108 msgid "INPUT OPTIONS" msgstr "OPÇÕES DE ORIGEM" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:109 msgid "Options to control the processing of the input %s file" msgstr "Opções para controlar o processamento do ficheiro de origem %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:113 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:115 msgid "OUTPUT OPTIONS" msgstr "OPÇÕES DE DESTINO" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:114 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:116 msgid "Options to control the processing of the output %s" msgstr "Opções para controlar o processamento do ficheiro de destino %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:130 msgid "Options to control the look and feel of the output" msgstr "Opções para controlar o aspecto do ficheiro de destino" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:143 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:145 msgid "" "Modify the document text and structure using common patterns. Disabled by " "default. Use %s to enable. Individual actions can be disabled with the %s " @@ -1714,18 +1747,18 @@ msgstr "" "Desactivado por predefinição. Utilize o parâmetro \"%s\" para activar a " "opção. É possível desactivar acções individuais com as opções \"%s\"." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:16 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:18 msgid "Modify the document text and structure using user defined patterns." msgstr "" "Modificar o texto e estrutura do documento de acordo com padrões definidos " "pelo utilizador." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:160 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:162 msgid "Control auto-detection of document structure." msgstr "Controlar a detecção automática da estrutura do documento." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:169 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:172 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 " @@ -1734,19 +1767,19 @@ msgstr "" "Controlar a geração automática do Índice. Por predefinição, se o ficheiro de " "origem tem um Índice, este é utilizado em vez do gerado automaticamente." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:179 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:182 msgid "Options to set metadata in the output" msgstr "Opções para definir os metadados no ficheiro de saída" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:182 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:185 msgid "Options to help with debugging the conversion" msgstr "Opções para ajudar com a depuração da conversão" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:208 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:211 msgid "List builtin recipes" msgstr "Listar as receitas integradas" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:284 msgid "Output saved to" msgstr "Ficheiro de destino guardado em" @@ -1985,33 +2018,41 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:309 msgid "" +"Some documents specify page margins by specifying a left and right margin on " +"each individual paragraph. calibre will try to detect and remove these " +"margins. Sometimes, this can cause the removal of margins that should not " +"have been removed. In this case you can disable the removal." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:320 +msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Definir a margem superior em pts. A predefinição é %default. Nota: 72 pts é " "igual a 1 polegada" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:314 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:325 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Definir a margem inferior em pts. A predefinição é %default. Nota: 72 pts é " "igual a 1 polegada" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:319 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:330 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Definir a margem esquerda em pts. A predefinição é %default. Nota: 72 pts é " "igual a 1 polegada" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:324 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:335 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Definir a margem direita em pts. A predefinição é %default. Nota: 72 pts é " "igual a 1 polegada" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:330 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:341 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 " @@ -2026,7 +2067,7 @@ msgstr "" "altera a justificação no arquivo original. Tenha em conta que apenas alguns " "formatos de saída suportam a justificação de texto." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:340 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:351 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 " @@ -2036,7 +2077,7 @@ msgstr "" "parágrafos de 1.5em. A remoção do espaçamento não funciona se o ficheiro de " "origem não usar parágrafos (etiquetas

      ou

      )." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:347 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:358 msgid "" "When calibre removes inter paragraph spacing, it automatically sets a " "paragraph indent, to ensure that paragraphs can be easily distinguished. " @@ -2047,14 +2088,14 @@ msgstr "" "facilmente distinguíveis. Esta opção controla a largura dessa indentação " "(ex.o avanço da primeira linha do parágrafo)." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:365 msgid "" "Use the cover detected from the source file in preference to the specified " "cover." msgstr "" "Usar a capa detectada no ficheiro de origem em vez da capa especificada." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:360 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:371 msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (

      or

      tags)." @@ -2062,7 +2103,7 @@ msgstr "" "Inserir uma linha em branco entre os parágrafos. Não funciona se o ficheiro " "de origem não usar parágrafos (etiquetas

      ou

      )." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:378 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." @@ -2070,7 +2111,7 @@ msgstr "" "Remover a primeira imagem do livro de origem. Útil se a primeira imagem do " "ficheiro de origem é a capa e se está a especificar uma capa externa." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:375 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:386 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." @@ -2078,7 +2119,7 @@ msgstr "" "Inserir os metadados do livro no seu início. Isto é útil se o seu leitor não " "suporta apresentar/procurar os metadados directamente." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:383 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 msgid "" "Convert plain quotes, dashes and ellipsis to their typographically correct " "equivalents. For details, see http://daringfireball.net/projects/smartypants" @@ -2087,7 +2128,7 @@ msgstr "" "tipográficos. Para detalhes, ver " "http://daringfireball.net/projects/smartypants" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:392 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:403 msgid "" "Read metadata from the specified OPF file. Metadata read from this file will " "override any metadata in the source file." @@ -2095,7 +2136,7 @@ msgstr "" "Ler os metadados do ficheiro OPF especificado. Os metadados lidos deste " "ficheiro vão sobrepor-se aos metadados no ficheiro de origem." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:399 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:410 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -2105,7 +2146,7 @@ msgid "" "current calibre interface language will be used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:414 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:425 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 " @@ -2115,107 +2156,111 @@ msgid "" "instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 msgid "Set the title." msgstr "Definir o título." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:441 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "Definir os autores. Múltiplos autores devem ser separados por &." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:435 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 msgid "The version of the title to be used for sorting. " msgstr "A versão do título a ser usada para a ordenação. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:439 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 msgid "String to be used when sorting by author. " msgstr "Expressão a ser usada quando ordenar por autor. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:443 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 msgid "Set the cover to the specified file or URL" msgstr "Definir a capa com o ficheiro de imagem especificado ou com um URL" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:447 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54 msgid "Set the ebook description." msgstr "Definir a descrição do livro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:451 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56 msgid "Set the ebook publisher." msgstr "Definir a editora do livro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:455 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:466 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60 msgid "Set the series this ebook belongs to." msgstr "Definir a série a que este livro pertence." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:459 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:470 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." msgstr "Definir o índice do livro nesta série." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:463 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:474 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 msgid "Set the rating. Should be a number between 1 and 5." msgstr "Definir a avaliação. Deve ser um algarismo entre 1 e 5." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:467 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:478 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66 msgid "Set the ISBN of the book." msgstr "Definir o ISBN do livro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:471 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482 #: /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 "" "Definir as etiquetas do livro. Deve ser uma lista separada por vírgulas." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:475 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70 msgid "Set the book producer." msgstr "Definir o produtor do livro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:479 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:490 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72 msgid "Set the language." msgstr "Definir a linguagem." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:483 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:494 msgid "Set the publication date." msgstr "Definir a data de publicação" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:487 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:498 msgid "Set the book timestamp (used by the date column in calibre)." msgstr "" "Definir a selo data/hora do livro (usado na coluna 'data' no calibre)" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:491 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:502 msgid "" "Enable heuristic processing. This option must be set for any heuristic " "processing to take place." msgstr "" +"Activar o processamento heurístico. Esta opção deve ser activada para o " +"processamento heurístico correr." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:496 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:507 msgid "" "Detect unformatted chapter headings and sub headings. Change them to h2 and " "h3 tags. This setting will not create a TOC, but can be used in conjunction " "with structure detection to create one." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:503 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:514 msgid "" "Look for common words and patterns that denote italics and italicize them." msgstr "" +"Pesquisar por palavras comuns e padrões que denotam itálicos e tornar esse " +"texto itálico" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:508 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:519 msgid "" "Turn indentation created from multiple non-breaking space entities into CSS " "indents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:513 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:524 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.4, just below " @@ -2223,87 +2268,94 @@ msgid "" "unwrapping this value should be reduced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:521 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:532 msgid "Unwrap lines using punctuation and other formatting clues." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:525 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:536 msgid "" "Remove empty paragraphs from the document when they exist between every " "other paragraph" msgstr "" +"Remover parágrafos vazios do documento quando eles existem entre outros " +"parágrafos" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:530 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:541 msgid "" "Left aligned scene break markers are center aligned. Replace soft scene " "breaks that use multiple blank lines withhorizontal rules." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:536 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:547 msgid "" "Replace scene breaks with the specified text. By default, the text from the " "input document is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:541 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:552 msgid "" "Analyze hyphenated words throughout the document. The document itself is " "used as a dictionary to determine whether hyphens should be retained or " "removed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:547 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:558 msgid "" "Looks for occurrences of sequential

      or

      tags. The tags are " "renumbered to prevent splitting in the middle of chapter headings." msgstr "" +"Pesquisar por ocorrências de tags

      ou

      . As tags são re-enumeradas " +"para prevenir divisões no meio de cabeçalhos de parágrafos." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:553 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:564 msgid "Search pattern (regular expression) to be replaced with sr1-replace." msgstr "" +"Padrão de pesquisa (expressão regular) para ser substituido com um sr1-" +"replace" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:558 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:569 msgid "Replacement to replace the text found with sr1-search." -msgstr "" +msgstr "Substituição para substituir o texto encontrado com a sr1-search" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:573 msgid "Search pattern (regular expression) to be replaced with sr2-replace." -msgstr "" +msgstr "Substituição para substituir o texto encontrado com a sr2-replace" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:567 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:578 msgid "Replacement to replace the text found with sr2-search." -msgstr "" +msgstr "Substituição para substituir o texto encontrado com a sr2-search" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:571 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:582 msgid "Search pattern (regular expression) to be replaced with sr3-replace." msgstr "" +"Padrão de pesquisa (expressão regular) para ser substituido pela sr3-replace" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:576 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:587 msgid "Replacement to replace the text found with sr3-search." -msgstr "" +msgstr "Substituição para substituir o texto encontrado com a sr3-replace" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:678 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:689 msgid "Could not find an ebook inside the archive" msgstr "Foi impossível localizar um livro dentro do arquivo" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:736 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:747 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" "Os valores do índice da série e da avaliação devem ser algarismos. A ignorar" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:743 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:754 msgid "Failed to parse date/time" msgstr "Falha ao parsear a data/hora" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:909 msgid "Converting input to HTML..." msgstr "A converter o ficheiro de origem para HTML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:925 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:936 msgid "Running transforms on ebook..." msgstr "A executar as transformações no livro..." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:1015 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:1030 msgid "Creating" msgstr "A criar" @@ -2875,97 +2927,97 @@ msgstr "" msgid "TEMPLATE ERROR" msgstr "ERRO DO TEMPLATE" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:576 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:554 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:561 msgid "No" msgstr "Não" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:576 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:554 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:561 msgid "Yes" msgstr "Sim" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:658 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:673 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 #: /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:60 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:418 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:996 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:321 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:427 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1004 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:331 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:574 msgid "Title" msgstr "Título" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:659 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:674 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:423 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1005 msgid "Author(s)" msgstr "Autor(es)" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:660 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:675 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "Editora" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:661 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:676 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "Produtor" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:662 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:244 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:247 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:380 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1203 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1211 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:211 msgid "Comments" msgstr "Comentários" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:664 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:679 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:368 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1207 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:65 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:755 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:761 msgid "Tags" msgstr "Etiquetas" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:666 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:681 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:30 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:385 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1208 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1216 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:65 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:114 msgid "Series" msgstr "Série" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:667 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:682 msgid "Language" msgstr "Linguagem" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:669 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1191 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:684 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1199 msgid "Timestamp" msgstr "Data e Hora" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:671 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:686 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 @@ -2973,7 +3025,7 @@ msgstr "Data e Hora" msgid "Published" msgstr "Editado" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:673 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:688 msgid "Rights" msgstr "Direitos" @@ -3097,23 +3149,23 @@ msgstr "Não foi encontrada nenhuma capa" msgid "Cover download" msgstr "Descarregar capa" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:79 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:81 msgid "Download covers from openlibrary.org" msgstr "Descarregar capas de openlibrary.org" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:111 msgid "ISBN: %s not found" msgstr "ISBN: %s não encontrado" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:117 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:121 msgid "Download covers from amazon.com" -msgstr "" +msgstr "Download de capas de amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:211 msgid "Download covers from Douban.com" msgstr "Descarregar capas de Douban.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:214 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:220 msgid "Douban.com API timed out. Try again later." msgstr "A ligação à API do Douban.com expirou. Tente novamente mais tarde." @@ -3146,7 +3198,7 @@ msgid "Convert comments downloaded from %s to plain text" msgstr "Converter comentários descarregados de %s para texto simples" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:145 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:157 msgid "Downloads metadata from Google Books" msgstr "Descarregar os metadados do Google Books." @@ -3171,6 +3223,9 @@ msgid "" "Downloads series information from ww2.kdl.org. This website cannot handle " "large numbers of queries, so the plugin is disabled by default." msgstr "" +"Fazer download de informação da série a partir de ww2.kdl.org. Este website " +"não pode gerir uma grande quantidade de pesquisas, então este plugin será " +"desactivado por defeito." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fictionwise.py:25 msgid "Downloads metadata from Fictionwise" @@ -3299,7 +3354,7 @@ msgstr "O título do livro que você está procura." msgid "The publisher of the book to search for." msgstr "A editora do livro que você está procura." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:64 msgid "" "\n" "%prog [options] ISBN\n" @@ -3384,17 +3439,41 @@ msgstr "Foi encontrada uma capa para este livro" msgid "Cover saved to file " msgstr "Capa guardada para o ficheiro " -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1346 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1471 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1356 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1491 msgid "Cover" msgstr "Capa" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:16 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:280 msgid "Downloads metadata from Amazon" +msgstr "Download de metadata da Amazon" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:287 +msgid "US" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:288 +msgid "France" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:289 +msgid "Germany" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:290 +msgid "UK" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/amazon.py:375 +msgid "Amazon timed out. Try again later." +msgstr "O pedido à Amazon está a demorar demasiado. Tente mais tarde." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/base.py:93 msgid "Metadata source" +msgstr "Fonte de meta-dados" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/openlibrary.py:15 +msgid "Downloads metadata from The Open Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 @@ -3445,70 +3524,70 @@ msgstr "Todos os artigos" msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Isto é um livro Amazon Topaz. Não pode ser processado." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1472 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1492 msgid "Title Page" msgstr "Página de Título" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1473 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1493 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:199 msgid "Table of Contents" msgstr "Índice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1474 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1494 msgid "Index" msgstr "Índice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1475 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1495 msgid "Glossary" msgstr "Glossário" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1476 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1496 msgid "Acknowledgements" msgstr "Agradecimentos" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1477 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1497 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1478 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498 msgid "Colophon" msgstr "Marca Tipográfica" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1479 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1499 msgid "Copyright" msgstr "Direitos de Autor" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1480 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1500 msgid "Dedication" msgstr "Dedicatória" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1481 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1501 msgid "Epigraph" msgstr "Epígrafe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1482 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1502 msgid "Foreword" msgstr "Prefácio" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1483 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1503 msgid "List of Illustrations" msgstr "Lista de Ilustrações" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1484 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1504 msgid "List of Tables" msgstr "Lista de Tabelas" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1485 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1505 msgid "Notes" msgstr "Notas" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1486 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1506 msgid "Preface" msgstr "Prefácio" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1487 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1507 msgid "Main Text" msgstr "Texto Principal" @@ -3530,7 +3609,7 @@ msgstr "Opções de geração do Índice em HTML." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:169 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:66 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:753 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Rating" msgstr "Avaliação" @@ -3856,6 +3935,8 @@ msgid "" "Preserve the aspect ratio of the cover, instead of stretching it to fill the " "full first page of the generated pdf." msgstr "" +"Preservar a relação altura/largura da capa ao invés de esticá-la para caber " +"na primeira página inteira do pdf gerado." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 msgid "Could not find pdftohtml, check it is in your PATH" @@ -3883,7 +3964,7 @@ msgstr "" msgid "Table of Contents:" msgstr "Índice:" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:271 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:272 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -4001,6 +4082,8 @@ msgid "" "Normally extra space at the beginning of lines is retained. With this option " "they will be removed." msgstr "" +"Normalmente o espaço extra no início das linhas é mantido. Com esta opção " +"será removido." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:59 msgid "Do not insert a Table of Contents into the output text." @@ -4138,6 +4221,8 @@ msgid "" "Start searching as you type. If this is disabled then search will only take " "place when the Enter or Return key is pressed." msgstr "" +"Começar a pesquisar à medida que escreve. Se isto estiver desactivado então " +"a pesquisa apenas ocorrerá quando a tecla Enter ou Return for pressionada." #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:113 msgid "" @@ -4185,7 +4270,7 @@ msgstr "Desactivar animações da interface" msgid "tag browser categories not to display" msgstr "Marque as categorias do navegador que não serão mostradas" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:419 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:420 msgid "Choose Files" msgstr "Escolher ficheiros" @@ -4289,7 +4374,7 @@ msgstr "Adicionar a partir do ISBN" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:68 msgid "Add files to selected book records" -msgstr "" +msgstr "Adicionar ficheiros aos registos de livros seleccionados" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:69 msgid "Shift+A" @@ -4297,7 +4382,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:89 msgid "Are you sure" -msgstr "" +msgstr "Tem a certeza" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:90 msgid "" @@ -4307,70 +4392,70 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:96 msgid "Select book files" -msgstr "" +msgstr "Seleccionar ficheiros de livros" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "Adding" -msgstr "" +msgstr "Adicionando" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "Creating book records from ISBNs" -msgstr "" +msgstr "Criar regsistos de livros a partir de ISBNs" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:248 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:312 msgid "Uploading books to device." msgstr "A carregar os livros para o aparelho." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:268 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:283 msgid "Supported books" msgstr "Livros compatíveis" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:286 msgid "Select books" -msgstr "" +msgstr "Seleccionar livros" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:308 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:323 msgid "Merged some books" msgstr "Alguns livros foram combinados" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:324 msgid "" "The following duplicate books were found and incoming book formats were " "processed and merged into your Calibre database according to your automerge " "settings:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:329 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:344 msgid "Failed to read metadata" msgstr "Falha ao ler os metadados" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:345 msgid "Failed to read metadata from the following" msgstr "Falha ao ler os metadados do(s) seguinte(s)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:351 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:390 msgid "Add to library" msgstr "Adicionar à biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:371 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:138 msgid "No book selected" msgstr "Nenhum livro seleccionado" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:384 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "Os seguintes livros são virtuais e não podem ser adicionados à biblioteca do " "calibre:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:390 msgid "No book files found" msgstr "Não foram encontrados livros" @@ -4441,11 +4526,11 @@ msgstr "Localização %d • %s
      " #: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:20 #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:34 msgid "Create a catalog of the books in your calibre library" -msgstr "" +msgstr "Criar um catálogo de livros na biblioteca do calibre" #: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:31 msgid "No books selected for catalog generation" -msgstr "" +msgstr "Não foram seleccionados livros para gerar um catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:54 msgid "Generating %s catalog..." @@ -4465,8 +4550,8 @@ msgstr "Seleccione o destino para %s.%s" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:81 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:54 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:167 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:126 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:170 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:125 msgid "%d books" msgstr "%d livros" @@ -4515,7 +4600,7 @@ msgstr "Verificar biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:141 msgid "Restore database" -msgstr "" +msgstr "Repor base de dados" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:216 msgid "Rename" @@ -4530,7 +4615,7 @@ msgid "Note that the actual library folder will be renamed." msgstr "Repare que o nome da pasta da biblioteca actual será renomeada." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:225 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:199 msgid "Already exists" msgstr "Já existe" @@ -4553,11 +4638,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:368 #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:424 #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:430 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:223 msgid "Are you sure?" msgstr "Tem a certeza?" @@ -4577,25 +4663,27 @@ msgstr "Estatísticas da cópia de segurança" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:267 msgid "Book metadata files remaining to be written: %s" -msgstr "" +msgstr "Ficheiros de meta-dados de livros que faltam para serem criados: %s" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:273 msgid "Backup metadata" -msgstr "" +msgstr "Fazer backup de meta-dados" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:274 msgid "" "Metadata will be backed up while calibre is running, at the rate of " "approximately 1 book every three seconds." msgstr "" +"Os meta-dados serão guardados enquanto o calibre está a executar, ao ritmo " +"de aproximadamente 1 livro a cada três segundos." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:284 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:286 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:340 msgid "Success" -msgstr "" +msgstr "Sucesso" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:307 msgid "" @@ -4606,21 +4694,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:150 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:689 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:911 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:972 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:101 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/bulk_download.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:276 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:316 msgid "Failed" -msgstr "" +msgstr "Sem sucesso" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:313 msgid "Database integrity check failed, click Show details for details." msgstr "" +"Verificação de integridade da base de dados falhou, clique para Mostrar " +"Detalhes para mais detalhes" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:318 msgid "No problems found" -msgstr "" +msgstr "Não foi encontrado qualquer problema" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:319 msgid "The files in your library match the information in the database." @@ -4628,19 +4718,21 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:328 msgid "No library found" -msgstr "" +msgstr "Não foi encontrada uma biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:329 msgid "" "No existing calibre library was found at %s. It will be removed from the " "list of known libraries." msgstr "" +"Não foi encontrada a biblioteca do calibre em %s. Irá ser removida da lista " +"de bibliotecas conhecidas." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:400 #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:782 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:789 msgid "Not allowed" msgstr "Não permitido" @@ -4652,7 +4744,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:401 msgid "You cannot change libraries while jobs are running." -msgstr "" +msgstr "Não pode modificar bibliotecas enquanto existem processos a correr." #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:22 msgid "C" @@ -4660,7 +4752,7 @@ msgstr "C" #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:22 msgid "Convert books" -msgstr "" +msgstr "Converter livros" #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:28 msgid "Convert individually" @@ -4671,7 +4763,7 @@ msgid "Bulk convert" msgstr "Converter a granel" #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:514 msgid "Cannot convert" msgstr "É impossível converter" @@ -4682,66 +4774,70 @@ msgstr "Iniciar a conversão de %d livro(s)" #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 msgid "Empty output file, probably the conversion process crashed" msgstr "" +"Ficheiro de output vazio, provavelmente o processo de conversão falhou" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" -msgstr "" +msgstr "Copiar para a biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:84 msgid "Copy selected books to the specified library" -msgstr "" +msgstr "Copiar livros seleccionados para a biblioteca escolhida" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:117 msgid "(delete after copy)" -msgstr "" +msgstr "(apagar após cópia)" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:126 msgid "Cannot copy" -msgstr "" +msgstr "Não é possível copiar" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:131 msgid "No library" -msgstr "" +msgstr "Não existe biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:132 msgid "No library found at %s" -msgstr "" +msgstr "Não foi encontrada a biblioteca em %s" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:135 #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:139 msgid "Copying" -msgstr "" +msgstr "A copiar" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:150 msgid "Could not copy books: " -msgstr "" +msgstr "Não é possível copiar livros " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:153 msgid "Copied %d books to %s" -msgstr "" +msgstr "Compiados %d livros de %s" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:168 msgid "" "You cannot use other libraries while using the environment variable " "CALIBRE_OVERRIDE_DATABASE_PATH." msgstr "" +"Não pode usar outraz bibliotecas enquanto usa a variável de ambiente " +"CALIBRE_OVERRIDE_DATABASE_PATH." #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:32 msgid "Deleting..." -msgstr "" +msgstr "A apagar..." #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:54 msgid "Deleted" -msgstr "" +msgstr "Eliminado" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:66 msgid "Failed to delete" -msgstr "" +msgstr "Erro ao apagar" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:67 msgid "" "Failed to delete some books, click the Show Details button for details." msgstr "" +"Erro ao apagar alguns livros, clique em Mostrar Detalhes para mais detalhes" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:73 msgid "Del" @@ -4753,47 +4849,47 @@ msgstr "Remover livros" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:79 msgid "Remove selected books" -msgstr "" +msgstr "Remover o livro seleccionado" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:81 msgid "Remove files of a specific format from selected books.." -msgstr "" +msgstr "Remover ficheiros de um formato específico dos livros seleccionados." #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:84 msgid "Remove all formats from selected books, except..." -msgstr "" +msgstr "Remover todos os formatos dos livros seleccionados, excepto..." #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:87 msgid "Remove covers from selected books" -msgstr "" +msgstr "Remover capas dos livros seleccionados" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:90 msgid "Remove matching books from device" -msgstr "" +msgstr "Remover livros do dispositivo que coincidam" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:113 msgid "Cannot delete" -msgstr "" +msgstr "Não é possível apagar" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:126 msgid "Choose formats to be deleted" -msgstr "" +msgstr "Escolha os formatos a serem apagados" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:144 msgid "Choose formats not to be deleted" -msgstr "" +msgstr "Escolha os formatos que não devem ser apagados" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:164 msgid "Cannot delete books" -msgstr "" +msgstr "Não é possível apagar os livros" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:165 msgid "No device is connected" -msgstr "" +msgstr "Não existem dispositivos ligados" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:175 msgid "Main memory" -msgstr "" +msgstr "Memória principal" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:176 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 @@ -4809,11 +4905,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:182 msgid "No books to delete" -msgstr "" +msgstr "Não existem livros para apagar" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:183 msgid "None of the selected books are on the device" -msgstr "" +msgstr "Nenhum dos livros seleccionados está no dispositvo" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:200 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:291 @@ -4825,39 +4921,45 @@ msgid "" "Some of the selected books are on the attached device. Where do you " "want the selected files deleted from?" msgstr "" +"Alguns dos livros seleccionados estão no dispositivo ligado. Onde " +"deseja que os ficheiros sejam apagados?" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:258 msgid "" "The selected books will be permanently deleted and the files removed " "from your calibre library. Are you sure?" msgstr "" +"Os livros seleccionados serão apagados permanentemente e os ficheiros " +"removidos da biblioteca do calibre. Tem a certeza?" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:283 msgid "" "The selected books will be permanently deleted from your device. Are " "you sure?" msgstr "" +"Os livros seleccionados serão apagados permanentemente do " +"dispositivo. Tem a certeza?" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:31 msgid "Connect to folder" -msgstr "" +msgstr "Ligar à pasta" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:36 msgid "Connect to iTunes" -msgstr "" +msgstr "Ligar ao iTunes" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:42 msgid "Connect to Bambook" -msgstr "" +msgstr "Ligar a Bambook" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:64 msgid "Start Content Server" -msgstr "" +msgstr "Ligar Servidor de Conteúdo" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:66 msgid "Stop Content Server" -msgstr "" +msgstr "Parar Servidor de Conteúdo" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:95 @@ -4866,15 +4968,15 @@ msgstr "Email para" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:81 msgid "Email to and delete from library" -msgstr "" +msgstr "Enviar por email para e apagar da biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:89 msgid "(delete from library)" -msgstr "" +msgstr "(apagar da biblioteca)" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:104 msgid "Setup email based sharing of books" -msgstr "" +msgstr "Configurar email para partilhar livros" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:122 msgid "D" @@ -4886,25 +4988,26 @@ msgstr "Enviar para o aparelho" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:141 msgid "Connect/share" -msgstr "" +msgstr "Ligar/Partilhar" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:174 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:84 msgid "Stopping" -msgstr "" +msgstr "A parar" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:175 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:85 msgid "Stopping server, this could take upto a minute, please wait..." msgstr "" +"A parar servidor, isto pode demorar até um minuto, espere por favor..." #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_collections.py:13 msgid "Manage collections" -msgstr "" +msgstr "Gerir colecções" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_collections.py:14 msgid "Manage the collections on this device" -msgstr "" +msgstr "Gerir colecções neste dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:24 msgid "E" @@ -4912,11 +5015,11 @@ msgstr "E" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:24 msgid "Edit metadata" -msgstr "" +msgstr "Editar meta-dados" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:28 msgid "Merge book records" -msgstr "" +msgstr "Convergir registos de livros" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:29 msgid "M" @@ -4944,7 +5047,7 @@ msgstr "Descarregar só as capas" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:45 msgid "Download only social metadata" -msgstr "" +msgstr "Fazer download apenas de meta-dados sociais" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:51 msgid "Merge into first selected book - delete others" @@ -4952,11 +5055,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:54 msgid "Merge into first selected book - keep others" -msgstr "" +msgstr "Convergir para o primeiro livro seleccionado - manter os outros" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:58 msgid "Merge only formats into first selected book - delete others" msgstr "" +"Convergir apenas formatos para o primeiro livro seleccionado - apagar os " +"outros" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:79 msgid "Cannot download metadata" @@ -4977,7 +5082,7 @@ msgstr "metadados" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:102 msgid "Downloading {0} for {1} book(s)" -msgstr "" +msgstr "A fazer download de {0} para {1} livro(s)" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:187 @@ -4998,6 +5103,8 @@ msgid "" "You are about to merge more than 5 books. Are you sure you want to " "proceed?" msgstr "" +"Está prestes a convergir mais de 5 livros. Tem a certeza que quer " +"continuar?" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:239 msgid "" @@ -5048,7 +5155,7 @@ msgstr " recolhida." #: /home/kovid/work/calibre/src/calibre/gui2/actions/help.py:16 msgid "Browse the calibre User Manual" -msgstr "" +msgstr "Pesquisar no Manual de Utilizador do calibre" #: /home/kovid/work/calibre/src/calibre/gui2/actions/help.py:16 msgid "F1" @@ -5061,21 +5168,21 @@ msgstr "Ajuda" #: /home/kovid/work/calibre/src/calibre/gui2/actions/next_match.py:12 msgid "Move to next match" -msgstr "" +msgstr "Passar para o próximo resultado" #: /home/kovid/work/calibre/src/calibre/gui2/actions/next_match.py:13 msgid "Move to next highlighted match" -msgstr "" +msgstr "Mover para o próximo resultado seleccionado" #: /home/kovid/work/calibre/src/calibre/gui2/actions/next_match.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:354 msgid "N" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/next_match.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:204 msgid "F3" -msgstr "" +msgstr "F3" #: /home/kovid/work/calibre/src/calibre/gui2/actions/next_match.py:25 msgid "Move to previous item" @@ -5113,15 +5220,15 @@ msgstr "Executar o assistente de boas vindas" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:28 msgid "Restart in debug mode" -msgstr "" +msgstr "Reiniciar em modo de debug" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:43 msgid "Cannot configure while there are running jobs." msgstr "É impossível configurar enquanto estiverem processos a executar." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:48 msgid "Cannot configure before calibre is restarted." -msgstr "" +msgstr "Não é possível configurar antes de o calibre ser reiniciado." #: /home/kovid/work/calibre/src/calibre/gui2/actions/restart.py:14 msgid "&Restart" @@ -5157,7 +5264,7 @@ msgstr "Guardar só o formato %s no disco" #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:72 msgid "Save only %s format to disk in a single directory" -msgstr "" +msgstr "Guardar apenas %s formatos para o disco numa única directoria" #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:91 msgid "Cannot save to disk" @@ -5192,7 +5299,7 @@ msgid "Click the show details button to see which ones." msgstr "Clique no botão ver detalhes para ver quais." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:760 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:766 msgid "Show book details" msgstr "Mostrar os detalhes do livro" @@ -5251,7 +5358,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:16 msgid "Make small changes to ePub format books" -msgstr "" +msgstr "Fazer pequenas alterações ao formato de ebooks ePub" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:17 msgid "T" @@ -5264,7 +5371,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:40 msgid "No ePub available. First convert the book to ePub." -msgstr "" +msgstr "Formato ePub não disponível. Converter primeiro o livro para ePub" #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:24 msgid "V" @@ -5279,36 +5386,40 @@ msgstr "Ver" msgid "View specific format" msgstr "Ver o formato específico" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:38 +msgid "Read a random book" +msgstr "Ler um livro aleatório" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:181 msgid "Cannot view" msgstr "É impossível ver" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 msgid "Format unavailable" -msgstr "" +msgstr "Formato não disponível" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:106 msgid "Selected books have no formats" -msgstr "" +msgstr "Os livros seleccionados não têm formato" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:108 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:127 msgid "Choose the format to view" msgstr "Escolher o formato para ver" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:120 msgid "" "Not all the selected books were available in the %s format. You should " "convert them first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:127 msgid "Multiple Books Selected" msgstr "Múltiplos livros seleccionados" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:128 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 " @@ -5319,11 +5430,11 @@ msgstr "" "e ter um efeito negativo na reacção do seu computador. Uma vez começado o " "processo não pode ser parado até estar completo. Deseja continuar?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:137 msgid "Cannot open folder" msgstr "É impossível abrir a pasta" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:182 msgid "%s has no available formats." msgstr "%s não tem formatos disponíveis." @@ -5397,34 +5508,34 @@ msgstr "A guardar..." msgid "Saved" msgstr "Guardado" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:56 msgid "Searching for sub-folders" msgstr "À procura de sub-pastas" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:61 msgid "Searching for books" msgstr "À procura de livros" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:73 msgid "Looking for duplicates based on file hash" -msgstr "" +msgstr "Pesquisar por duplicados baseado na hash do ficheiro" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:108 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:70 msgid "Choose root folder" -msgstr "" +msgstr "Escolher pasta da raíz" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:135 msgid "Invalid root folder" -msgstr "" +msgstr "Raíz de pasta inválida" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:136 msgid "is not a valid root folder" -msgstr "" +msgstr "não é uma raíz de pasta válida" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:146 msgid "Add books to calibre" -msgstr "" +msgstr "Adicionar livros ao calibre" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:62 @@ -5437,19 +5548,19 @@ msgstr "Página do Assistente" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:27 msgid "Scanning root folder for books" -msgstr "" +msgstr "Pesquisar a pasta raíz por livros" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:28 msgid "This may take a few minutes" -msgstr "" +msgstr "Isto pode demorar alguns minutos" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:63 msgid "Choose the location to add books from" -msgstr "" +msgstr "Escolha a localização a partir de onde quer adicionar livros" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:64 msgid "Select a folder on your hard disk" -msgstr "" +msgstr "Escolha uma pasta no seu disco" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:65 msgid "" @@ -5486,12 +5597,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:162 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:57 #: /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:86 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:565 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:412 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:414 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:417 @@ -5499,8 +5610,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:458 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:460 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:462 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:103 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:175 @@ -5512,9 +5624,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:82 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:272 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:274 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:280 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:89 @@ -5540,13 +5652,15 @@ msgstr "..." #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:72 msgid "Handle multiple files per book" -msgstr "" +msgstr "Gerir múltiplis ficheiros por livro" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:73 msgid "" "&One book per folder, assumes every ebook file in a folder is the same book " "in a different format" msgstr "" +"&Um livro por pasta, assume que cada ficheiro de ebook numa pasta " +"corresponde ao mesmo livro num formato diferente" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:74 msgid "" @@ -5554,69 +5668,69 @@ msgid "" msgstr "" "&Vários livros por pasta, assumir que cada ficheiro é um livro diferente" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:484 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:145 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:147 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:160 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1197 msgid "Path" msgstr "Caminho" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:150 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:153 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:383 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:124 msgid "Formats" msgstr "Formatos" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1000 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1192 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1008 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1200 msgid "Collections" msgstr "Colecções" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:65 msgid "Click to open" msgstr "Clicar para abrir" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:367 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:373 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:379 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1198 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1206 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1210 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:344 msgid "None" msgstr "Nenhum" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:239 -msgid "Paste Cover" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:240 -msgid "Copy Cover" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 +msgid "Paste Cover" +msgstr "Colar Capa" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:238 +msgid "Copy Cover" +msgstr "Copiar Capa" + +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:483 msgid "Double-click to open Book Details window" msgstr "Clicar duas vezes para abrir a janela \"Detalhes do Livro\"" @@ -5662,7 +5776,7 @@ msgstr "Opções específicas a" msgid "output" msgstr "Ficheiro de destino" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:295 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 @@ -5685,11 +5799,11 @@ msgstr "Ficheiro de destino" #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:33 #: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:147 #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:40 @@ -5716,68 +5830,36 @@ msgstr "Ficheiro de destino" msgid "Form" msgstr "Formulário" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:78 msgid "Bib file encoding:" msgstr "Codificação de ficheiro Bib:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:43 msgid "Fields to include in output:" msgstr "Campos a incluir na saída:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 -msgid "ascii/LaTeX" -msgstr "ascii/LaTeX" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:80 msgid "Encoding configuration (change if you have errors) :" msgstr "Configuração da codificação (alterar se ocorrerem erros):" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 -msgid "strict" -msgstr "restrito" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 -msgid "replace" -msgstr "substituir" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 -msgid "ignore" -msgstr "ignorar" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:97 -msgid "backslashreplace" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81 msgid "BibTeX entry type:" msgstr "Tipo de entrada BibTeX:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:99 -msgid "mixed" -msgstr "misturado" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:100 -msgid "misc" -msgstr "vários" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:101 -msgid "book" -msgstr "livro" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 msgid "Create a citation tag?" msgstr "Criar uma etiqueta de citação?" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 msgid "Add files path with formats?" -msgstr "" +msgstr "Adicionar localização de ficheiros com formatos?" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 msgid "Expression to form the BibTeX citation tag:" msgstr "Expressão para criar a etiqueta de citação BibTeX:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 msgid "" "Some explanation about this template:\n" " -The fields availables are 'author_sort', 'authors', 'id',\n" @@ -5806,35 +5888,35 @@ msgstr "Opções de E-book" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:296 msgid "Sections to include in catalog." -msgstr "" +msgstr "Secções para incluir no catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:297 msgid "Included sections" -msgstr "" +msgstr "Secções incluídas" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:298 msgid "Books by &Genre" -msgstr "" +msgstr "Livros por &Género" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:299 msgid "Recently &Added" -msgstr "" +msgstr "Adicionados &Recentemente" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:300 msgid "&Descriptions" -msgstr "" +msgstr "&Descrições" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:301 msgid "Books by &Series" -msgstr "" +msgstr "Livros por &Séries" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:302 msgid "Books by &Title" -msgstr "" +msgstr "Livros por &Título" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:303 msgid "Books by Author" -msgstr "" +msgstr "Livros por Autor" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:304 msgid "" @@ -5846,12 +5928,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:308 msgid "Excluded genres" -msgstr "" +msgstr "Géneros excluídos" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:309 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:312 msgid "Tags to &exclude" -msgstr "" +msgstr "Tags a &excluir" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:310 msgid "" @@ -5860,7 +5942,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:311 msgid "Excluded books" -msgstr "" +msgstr "Livros Excluídos" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:313 msgid "" @@ -5871,27 +5953,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:315 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:320 msgid "&Column/value" -msgstr "" +msgstr "&Coluna/valor" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:316 msgid "Column containing additional exclusion criteria" -msgstr "" +msgstr "Coluna que contém critérios adicionais de exclusão" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:317 msgid "Exclusion pattern" -msgstr "" +msgstr "Padrçao de exclusão" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:318 msgid "Matching books will be displayed with a check mark" -msgstr "" +msgstr "Livros que coincidam serão mostrados com um símbolo de seleccionado" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:319 msgid "Read books" -msgstr "" +msgstr "Ler livros" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:321 msgid "Column containing 'read' status" -msgstr "" +msgstr "Coluna que contém o estado da 'leitura'" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:322 msgid "'read book' pattern" @@ -5899,7 +5981,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:323 msgid "Other options" -msgstr "" +msgstr "Outras opções" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:324 msgid "&Wishlist tag" @@ -5907,11 +5989,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:325 msgid "Books tagged as Wishlist items will be displayed with an X" -msgstr "" +msgstr "Livros com tag" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:326 msgid "&Thumbnail width" -msgstr "" +msgstr "&Largura da Miniatura" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:327 msgid "Size hint for Description cover thumbnails" @@ -5919,11 +6001,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:328 msgid " inch" -msgstr "" +msgstr " polegada" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:329 msgid "&Description note" -msgstr "" +msgstr "&Nota de descrição" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:330 msgid "Custom column source for note to include in Description header area" @@ -5931,35 +6013,36 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:331 msgid "&Merge with Comments" -msgstr "" +msgstr "&Convergir com Comentários" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:332 msgid "Additional content merged with Comments during catalog generation" msgstr "" +"Conteúdo adicional convergido com Comentários durante a geração do catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:333 msgid "Merge additional content before Comments" -msgstr "" +msgstr "Convergir conteúdo adicional antes dos Comentários" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:334 msgid "&Before" -msgstr "" +msgstr "&Antes" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:335 msgid "Merge additional content after Comments" -msgstr "" +msgstr "Convergir conteúdo adicional depois dos Comentários" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:336 msgid "&After" -msgstr "" +msgstr "&Depois" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:337 msgid "Separate Comments and additional content with horizontal rule" -msgstr "" +msgstr "Separar Comentários e conteúdo adicional com uma linha horizontal" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:338 msgid "&Separator" -msgstr "" +msgstr "&Separador" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" @@ -5967,15 +6050,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:69 msgid "Bold" -msgstr "" +msgstr "Negrito" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:70 msgid "Italic" -msgstr "" +msgstr "Itálico" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:73 msgid "Underline" -msgstr "" +msgstr "Sublinhado" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:75 msgid "Strikethrough" @@ -5983,47 +6066,47 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:77 msgid "Superscript" -msgstr "" +msgstr "Elevado" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:79 msgid "Subscript" -msgstr "" +msgstr "Rebaixado" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:81 msgid "Ordered list" -msgstr "" +msgstr "Lista ordenada" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:83 msgid "Unordered list" -msgstr "" +msgstr "Lista desordenada" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:86 msgid "Align left" -msgstr "" +msgstr "Alinhar à esquerda" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:88 msgid "Align center" -msgstr "" +msgstr "Alinhar ao centro" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:90 msgid "Align right" -msgstr "" +msgstr "Alinhar à direita" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:92 msgid "Align justified" -msgstr "" +msgstr "Alinhar justificado" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:93 msgid "Undo" -msgstr "" +msgstr "Anular" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:94 msgid "Redo" -msgstr "" +msgstr "Refazer" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:95 msgid "Remove formatting" -msgstr "" +msgstr "Remover a formatação" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:96 msgid "Copy" @@ -6031,41 +6114,42 @@ msgstr "Copiar" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:97 msgid "Paste" -msgstr "" +msgstr "Colar" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:98 msgid "Cut" -msgstr "" +msgstr "Cortar" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:100 msgid "Increase Indentation" -msgstr "" +msgstr "Aumentar Identação" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:102 msgid "Decrease Indentation" -msgstr "" +msgstr "Diminuir Identação" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:104 msgid "Select all" -msgstr "" +msgstr "Seleccionar tudo" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:109 msgid "Foreground color" -msgstr "" +msgstr "Cor de 1º plano" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:114 msgid "Background color" -msgstr "" +msgstr "Cor de fundo" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:118 msgid "Style text block" -msgstr "" +msgstr "Aplicar estilo ao bloco de texto" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:120 msgid "Style the selected text block" -msgstr "" +msgstr "Aplicar estilo ao bloco de texto seleccionado" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:34 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:36 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:139 msgid "Normal" @@ -6078,41 +6162,41 @@ msgstr "Normal" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:130 #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:131 msgid "Heading" -msgstr "" +msgstr "Título" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:132 msgid "Pre-formatted" -msgstr "" +msgstr "Pré-formatado" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:133 msgid "Blockquote" -msgstr "" +msgstr "Citação" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:134 msgid "Address" -msgstr "" +msgstr "Endereço" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:141 msgid "Insert link" -msgstr "" +msgstr "Inserir link" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:84 msgid "Clear" -msgstr "" +msgstr "Limpar" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:161 msgid "Choose foreground color" -msgstr "" +msgstr "Escolha a cor do 1º plano" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:167 msgid "Choose background color" -msgstr "" +msgstr "Escolha a cor de fundo" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:172 msgid "Create link" -msgstr "" +msgstr "Criar ligação" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:173 msgid "Enter URL" @@ -6214,11 +6298,11 @@ msgstr "Formato de &destino:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:116 msgid "Disable conversion of images to &black and white" -msgstr "" +msgstr "Desactivar conversão de imagens para &preto e branco" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:117 msgid "Override image &size:" -msgstr "" +msgstr "Sobrepor &tamanho da imagem:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:118 msgid "Don't add links to &pages to the Table of Contents for CBC files" @@ -6282,11 +6366,11 @@ msgstr "Nenhuma &capa predefinida" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:59 msgid "No &SVG cover" -msgstr "" +msgstr "Não existe capa &SVG" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:60 msgid "Preserve cover &aspect ratio" -msgstr "" +msgstr "Preservar relação largura/altura da capa" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:61 msgid "Split files &larger than:" @@ -6390,10 +6474,12 @@ msgid "" "Heuristic\n" "Processing" msgstr "" +"Processamento\n" +"Heurístico" #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics.py:16 msgid "Modify the document text and structure using common patterns." -msgstr "" +msgstr "Modificar o texto e estrutura do documento usando padrões comuns." #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics_ui.py:113 msgid "" @@ -6409,11 +6495,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics_ui.py:114 msgid "Enable &heuristic processing" -msgstr "" +msgstr "Activar &processamento heurístico" #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics_ui.py:115 msgid "Heuristic Processing" -msgstr "" +msgstr "Processamento heurístico" #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics_ui.py:116 msgid "Unwrap lines" @@ -6429,15 +6515,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics_ui.py:119 msgid "Renumber sequences of

      or

      tags to prevent splitting" -msgstr "" +msgstr "Re-enumerar sequências de tags

      e

      para prevenir divisão" #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics_ui.py:120 msgid "Delete blank lines between paragraphs" -msgstr "" +msgstr "Apagar linhas em brancon entre parágrafos" #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics_ui.py:121 msgid "Ensure scene breaks are consistently formatted" -msgstr "" +msgstr "Assegurar que as quebras de cena são formatadas de forma consistente" #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics_ui.py:122 msgid "Replace soft scene &breaks:" @@ -6445,7 +6531,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics_ui.py:123 msgid "Remove unnecessary hyphens" -msgstr "" +msgstr "Remover hífens desnecessários" #: /home/kovid/work/calibre/src/calibre/gui2/convert/heuristics_ui.py:124 msgid "Italicize common words and patterns" @@ -6465,15 +6551,15 @@ msgstr "Controlar o aspecto do ficheiro de destino" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:31 msgid "Original" -msgstr "" +msgstr "Original" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:32 msgid "Left align" -msgstr "" +msgstr "Alinhar à esquerda" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:33 msgid "Justify text" -msgstr "" +msgstr "Justificar texto" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 msgid "&Disable font size rescaling" @@ -6545,7 +6631,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:158 msgid "Minimum &line height:" -msgstr "" +msgstr "Altura de linha mínima" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:159 msgid " %" @@ -6605,7 +6691,7 @@ msgid "&Monospaced font family:" msgstr "Família de tipos de letra &Monospace:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:200 msgid "Metadata" msgstr "Metadados" @@ -6685,7 +6771,7 @@ msgid "Change the title of this book" msgstr "Alterar o título deste livro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:525 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:420 msgid "&Author(s): " msgstr "&Autor(es): " @@ -6703,7 +6789,7 @@ msgstr "" "vírgula" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:535 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:428 msgid "&Publisher: " msgstr "&Editora: " @@ -6714,7 +6800,7 @@ msgid "Ta&gs: " msgstr "Eti&quetas: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:537 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:430 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -6724,7 +6810,7 @@ msgstr "" "

      Podem ser quaisquer palavras ou frases, separadas por vírgulas." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:544 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:433 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:293 @@ -6733,8 +6819,8 @@ msgstr "&Série:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:519 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:546 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:434 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:435 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:292 @@ -6776,7 +6862,7 @@ msgstr "Não inserir um Índice no livro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:80 msgid "Kindle options" -msgstr "" +msgstr "Opções do Kindle" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:81 msgid "Periodical masthead font:" @@ -6788,7 +6874,7 @@ msgstr "Etiqueta de Doc. Pessoal:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:83 msgid "Ignore &margins" -msgstr "" +msgstr "Ignorar &margens" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" @@ -6880,7 +6966,7 @@ msgstr "&Orientação:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:50 msgid "Preserve &aspect ratio of cover" -msgstr "" +msgstr "Preservar relação largura/altura da capa" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pml_output.py:14 msgid "PMLZ Output" @@ -6888,7 +6974,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pmlz_output_ui.py:48 msgid "Do not reduce image size and depth" -msgstr "" +msgstr "Não reduzir o tamanho e profundidade das imagens" #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 msgid "RB Output" @@ -6923,11 +7009,11 @@ msgstr "Teste" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:93 msgid "Occurrences:" -msgstr "" +msgstr "Ocorrências:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:94 msgid "0" -msgstr "" +msgstr "0" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:95 msgid "Goto:" @@ -6949,32 +7035,32 @@ msgstr "&Seguinte" msgid "Preview" msgstr "Pré-visualizar" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:17 msgid "" "Search\n" "&\n" "Replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:36 msgid "&Search Regular Expression" -msgstr "" +msgstr "&Pesquisar Expressão regular" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:101 msgid "Invalid regular expression" msgstr "Expressão regular inválida" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:102 msgid "Invalid regular expression: %s" msgstr "Expressão regular inválida: %s" #: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:148 msgid "First expression" -msgstr "" +msgstr "Primeira expressão" #: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:151 @@ -6984,11 +7070,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:150 msgid "Second Expression" -msgstr "" +msgstr "Segunda Expressão" #: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:152 msgid "Third expression" -msgstr "" +msgstr "Terceira Expressão" #: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:154 msgid "" @@ -7029,15 +7115,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:43 msgid "Hide chapter name" -msgstr "" +msgstr "Esconder nome do capítulo" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:44 msgid "Don't indent the first line for each paragraph" -msgstr "" +msgstr "Não identar a primeira linha de cada parágrafo" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:45 msgid "Insert empty line between paragraphs" -msgstr "" +msgstr "Inserir linha em branco entre parágrafos" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:46 msgid "Optimize for full-sceen view " @@ -7077,19 +7163,19 @@ msgstr "XPath inválido" msgid "The XPath expression %s is invalid." msgstr "A expressão XPath %s é inválida." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 msgid "Chapter &mark:" msgstr "&Marca do capítulo:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 msgid "Remove first &image" msgstr "Remover a &primeira imagem" -#: /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:62 msgid "Insert &metadata as page at start of book" msgstr "&Inserir os metadados como uma página no início do livro" -#: /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:63 msgid "" "The header and footer removal options have been replaced by the Search & " "Replace options. Click the Search & Replace category in the bar to the left " @@ -7097,6 +7183,10 @@ msgid "" "header/footer removal regexps into the search field." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 +msgid "Remove &fake margins" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 msgid "" "Table of\n" @@ -7145,7 +7235,7 @@ msgstr "Ficheiro de origem TXT" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:92 msgid "Structure" -msgstr "" +msgstr "Estrutura" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:93 msgid "Paragraph style:" @@ -7153,19 +7243,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:94 msgid "Formatting style:" -msgstr "" +msgstr "Estilo de formatação" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:95 msgid "Common" -msgstr "" +msgstr "Comum" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:96 msgid "Preserve &spaces" -msgstr "" +msgstr "Preservar &espaços" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:97 msgid "Remove indents at the beginning of lines" -msgstr "" +msgstr "Remover identações no início das linhas" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:98 msgid "Markdown" @@ -7183,7 +7273,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:100 msgid "Do not insert Table of Contents into output text when using markdown" -msgstr "" +msgstr "Não inserir Índice no texto gerado usando Markdown" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:13 msgid "TXT Output" @@ -7203,11 +7293,11 @@ msgstr "Estilo de fim de &linha:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:88 msgid "&Formatting:" -msgstr "" +msgstr "&Formatação:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:89 msgid "Plain" -msgstr "" +msgstr "Simples" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:90 msgid "&Maximum line length:" @@ -7215,7 +7305,7 @@ msgstr "Comprimento &máximo da linha:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:91 msgid "Force maximum line length" -msgstr "" +msgstr "Forçar tamanho máximo de linha" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:93 msgid "Markdown, Textile" @@ -7227,13 +7317,13 @@ msgstr "Não remover links ( etiquetas) antes de começar o processamento" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:95 msgid "Do not remove image references before processing" -msgstr "" +msgstr "Não remover referências a imagens antes do processamento" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txtz_output.py:12 msgid "TXTZ Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:55 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 @@ -7244,7 +7334,7 @@ msgstr "" msgid "TextLabel" msgstr "Rótulo do Texto" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 msgid "Use a wizard to help construct the Regular expression" msgstr "" @@ -7322,98 +7412,98 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:128 msgid "Browse by covers" msgstr "Navegar pelas capas" -#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:158 msgid "Cover browser could not be loaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:113 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:150 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:294 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:558 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:599 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:622 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:673 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:629 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:680 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:306 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:503 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:114 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:249 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:253 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:252 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:994 msgid "Undefined" -msgstr "" +msgstr "Não definido" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:637 msgid "star(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:638 msgid "Unrated" -msgstr "" +msgstr "Sem avaliação" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:667 msgid "Set '%s' to today" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:669 msgid "Clear '%s'" -msgstr "" +msgstr "Limpar '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:290 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:297 msgid " index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:366 msgid "" "The enumeration \"{0}\" contains an invalid value that will be set to the " "default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:520 msgid "Apply changes" -msgstr "" +msgstr "Aplicar alterações" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:713 msgid "Remove series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:716 msgid "Automatically number books" -msgstr "" +msgstr "Numerar livros automaticamente" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:719 msgid "Force numbers to start with " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:783 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:790 msgid "" "The enumeration \"{0}\" contains invalid values that will not appear in the " "list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:834 msgid "Remove all tags" msgstr "Remover todas as etiquetas" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:846 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:854 msgid "tags to add" msgstr "Etiquetas a adicionar" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:852 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:861 msgid "tags to remove" msgstr "etiquetas a serem removidas" @@ -7436,7 +7526,7 @@ msgstr "Listar os livros presentes no aparelho" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Get annotations from device" -msgstr "" +msgstr "Obter anotações do dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:346 msgid "Send metadata to device" @@ -7444,7 +7534,7 @@ msgstr "Enviar os metadados para o aparelho" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:351 msgid "Send collections to device" -msgstr "" +msgstr "Enviar colecções para o dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:386 msgid "Upload %d books to device" @@ -7481,23 +7571,23 @@ msgstr "Enviar para o cartão de memória B" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 msgid "Main Memory" -msgstr "" +msgstr "Memória principal" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:505 msgid "Send specific format to" -msgstr "" +msgstr "Enviar em formato específico para" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:506 msgid "Send and delete from library" -msgstr "" +msgstr "Enviar e apagar da biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:549 msgid "Eject device" -msgstr "" +msgstr "Ejectar dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:611 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:304 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" msgstr "Erro" @@ -7507,14 +7597,14 @@ msgid "Error communicating with device" msgstr "Erro ao comunicar com o aparelho" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:628 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1158 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:299 msgid "No suitable formats" msgstr "Nenhuns formatos suportados" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:644 msgid "Select folder to open as device" -msgstr "" +msgstr "Seleccionar pasta para abrir como dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:695 msgid "Error talking to device" @@ -7542,11 +7632,11 @@ msgstr "seleccionado para enviar" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:858 msgid "%i of %i Books" -msgstr "" +msgstr "%i de %i Livros" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:861 msgid "0 of %i Books" -msgstr "" +msgstr "0 de %i Livros" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:862 msgid "Choose format to send to device" @@ -7572,7 +7662,7 @@ msgstr "É impossível enviar: O aparelho não tem cartão de memória" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:935 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1018 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1150 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1152 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Converter automaticamente os seguintes livros antes de os carregar para o " @@ -7582,15 +7672,15 @@ msgstr "" msgid "Sending catalogs to device." msgstr "A enviar catálogos para o dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1063 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1065 msgid "Sending news to device." msgstr "Enviar notícias para o aparelho." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1117 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1119 msgid "Sending books to device." msgstr "A enviar livros para o aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1157 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1159 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." @@ -7599,11 +7689,11 @@ msgstr "" "encontrados formatos adequados. Converta o(s) livro(s) para um formato " "suportado pelo seu aparelho primeiro." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1221 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1231 msgid "No space on device" msgstr "Sem espaço no aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1222 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1232 msgid "" "

      Cannot upload books to device there is no more free space available " msgstr "" @@ -7612,7 +7702,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:124 msgid "Unknown formats" -msgstr "" +msgstr "Formatos desconhecidos" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:125 msgid "" @@ -7622,14 +7712,14 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:402 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:255 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:61 msgid "Invalid template" msgstr "Modelo inválido" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:138 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:403 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:256 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:62 msgid "The template %s is invalid:" @@ -7645,6 +7735,9 @@ msgid "" "If checked, books are placed into sub directories based on their metadata on " "the device. If unchecked, books are all put into the top level directory." msgstr "" +"Caso seleccionado, os livros serão colocados em sub-directorias no " +"dispositivo baseados nos seus metadados. Caso não esteja seleccionados, os " +"livros serão todos colocados na directoria principal." #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:83 msgid "Use sub directories" @@ -7676,11 +7769,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:63 msgid "Add books by ISBN" -msgstr "" +msgstr "Adicionar livros por ISBN" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:64 msgid "&Paste from clipboard" -msgstr "" +msgstr "&Colar a partir da área de transferência" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:65 msgid "" @@ -7699,24 +7792,24 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" -msgstr "" +msgstr "Ajustar a &capa com a vista" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:33 msgid "My Books" -msgstr "" +msgstr "Os Meus Livros" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:314 msgid "Generate catalog" -msgstr "" +msgstr "Gerar catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:93 msgid "Generate catalog for {0} books" -msgstr "" +msgstr "Gerar catálogo para {0} livros" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:94 msgid "Catalog &format:" -msgstr "" +msgstr "Formato de &catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:95 msgid "" @@ -7725,7 +7818,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:96 msgid "&Send catalog to device automatically" -msgstr "" +msgstr "&Enviar catálogo para o dispositivo automaticamente" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:97 msgid "Catalog options" @@ -7738,15 +7831,15 @@ msgstr "A verificar a integridade da base de dados" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:55 msgid "Dumping database to SQL" -msgstr "" +msgstr "Fazer dump da base de dados para SQL" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:81 msgid "Loading database from SQL" -msgstr "" +msgstr "Carregando base de dados a partir de SQL" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:148 msgid "Check Library -- Problems Found" -msgstr "" +msgstr "Verifique a biblioteca - Problemas Encontrados" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:158 msgid "" @@ -7806,68 +7899,80 @@ msgid "" " have no entries in the database. Check the box next to the item you " "want\n" " to delete. Use with caution.

      \n" -"

      Fix marked is applicable only to covers (the two lines " -"marked\n" -" 'fixable'). In the case of missing cover files, checking the " -"fixable\n" -" box and pushing this button will remove the cover mark from the\n" -" database for all the files in that category. In the case of extra\n" -" cover files, checking the fixable box and pushing this button will\n" -" add the cover mark to the database for all the files in that\n" -" category.

      \n" +"\n" +"

      Fix marked is applicable only to covers and missing " +"formats\n" +" (the three lines marked 'fixable'). In the case of missing cover " +"files,\n" +" checking the fixable box and pushing this button will tell calibre " +"that\n" +" there is no cover for all of the books listed. Use this option if " +"you\n" +" are not going to restore the covers from a backup. In the case of " +"extra\n" +" cover files, checking the fixable box and pushing this button will " +"tell\n" +" calibre that the cover files it found are correct for all the books\n" +" listed. Use this when you are not going to delete the file(s). In " +"the\n" +" case of missing formats, checking the fixable box and pushing this\n" +" button will tell calibre that the formats are really gone. Use this " +"if\n" +" you are not going to restore the formats from a backup.

      \n" +"\n" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:226 msgid "&Run the check again" -msgstr "" +msgstr "&Correr a verificação outra vez" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:229 msgid "Copy &to clipboard" -msgstr "" +msgstr "Copiar ¶ a área de transferência" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:230 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:236 msgid "Delete marked files (checked subitems)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:242 msgid "Fix marked sections (checked fixable items)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:252 msgid "Names to ignore:" -msgstr "" +msgstr "Nomes a ignorar:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:257 msgid "" "Enter comma-separated standard file name wildcards, such as synctoy*.dat" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:260 msgid "Extensions to ignore" -msgstr "" +msgstr "Extensões a ignorar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:265 msgid "" "Enter comma-separated extensions without a leading dot. Used only in book " "folders" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:308 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:314 msgid "(fixable)" msgstr "(reparável)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:331 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:337 msgid "Path from library" msgstr "Caminho da biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:331 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:337 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:253 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:256 msgid "Name" msgstr "Nome" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:366 msgid "" "The marked files and folders will be permanently deleted. Are you " "sure?" @@ -7882,13 +7987,13 @@ msgstr "Escolher o formato" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_device_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1188 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1196 msgid "Format" msgstr "Formato" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_device_ui.py:50 msgid "Existing" -msgstr "" +msgstr "Existente(s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_device_ui.py:51 msgid "Convertible" @@ -7945,23 +8050,23 @@ msgstr "Escolha a sua bili" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:78 msgid "Your calibre library is currently located at {0}" -msgstr "" +msgstr "A sua bilbioteca do calibre localiza-se actualmente em {0}" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:79 msgid "New &Location:" -msgstr "" +msgstr "Nova &Localização:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:80 msgid "Use &existing library at the new location" -msgstr "" +msgstr "Usar bilbioteca &existente numa nova localização" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:81 msgid "&Create an empty library at the new location" -msgstr "" +msgstr "&Criar uma biblioteca vazia na nova localização" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:82 msgid "&Copy structure from the current library" -msgstr "" +msgstr "&Copiar estrutura a partir da bilbioteca actual" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:83 msgid "" @@ -7971,7 +8076,24 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:85 msgid "&Move current library to new location" +msgstr "&Mover a biblioteca actual para uma nova localização" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_plugin_toolbars.py:23 +msgid "Add \"%s\" to toolbars or menus" +msgstr "Adicionar'%s' às barras de ferramentas ou menus" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_plugin_toolbars.py:29 +msgid "Select the toolbars and/or menus to add %s to:" msgstr "" +"Seleccione as barras de ferramentas e/ou menus para adicionar %s a:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_plugin_toolbars.py:45 +msgid "" +"You can also customise the plugin locations using Preferences -> " +"Customise the toolbar" +msgstr "" +"Pode também personalizar a localização de plugins usando Preferências-> " +"Personalizar a barra de ferramentas" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33 msgid "Set defaults for conversion of comics (CBR/CBZ files)" @@ -8001,27 +8123,27 @@ msgstr "&Perfil:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog.py:24 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_dialog.py:30 msgid "&OK" -msgstr "" +msgstr "&OK" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_dialog.py:31 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:226 msgid "&Cancel" -msgstr "" +msgstr "&Cancelar" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:43 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_dialog_ui.py:70 msgid "Edit Comments" -msgstr "" +msgstr "Editar Comentários" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_location_ui.py:62 msgid "Where do you want to delete from?" -msgstr "" +msgstr "De onde quer apagar?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_location_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:63 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:230 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:228 msgid "Library" msgstr "Biblioteca" @@ -8032,7 +8154,7 @@ msgstr "Dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_location_ui.py:65 msgid "Library and Device" -msgstr "" +msgstr "Biblioteca e Dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:55 msgid "&Show this warning again" @@ -8050,26 +8172,26 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 msgid "Location" -msgstr "" +msgstr "Localização" #: /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:998 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1006 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:241 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:575 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:321 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:573 msgid "Date" msgstr "Data" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:55 msgid "Delete from device" -msgstr "" +msgstr "Remover do dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/drm_error_ui.py:54 msgid "This book is DRMed" -msgstr "" +msgstr "Este livro tem DRM" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/drm_error_ui.py:55 msgid "" @@ -8086,18 +8208,18 @@ msgid "Author sort" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1371 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1421 msgid "Invalid author name" -msgstr "" +msgstr "Nome de autor inválido" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:129 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1372 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1422 msgid "Author names cannot contain & characters." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:74 msgid "Manage authors" -msgstr "" +msgstr "Gerir autores" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:75 msgid "Sort by author" @@ -8139,11 +8261,11 @@ msgstr "ISBN" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:66 msgid "Has Cover" -msgstr "" +msgstr "Tem capa" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:67 msgid "Has Summary" -msgstr "" +msgstr "Tem sumário" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:192 msgid "Finding metadata..." @@ -8236,11 +8358,11 @@ msgstr "Mostrar os &detalhes do processo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:52 msgid "Stop &all non device jobs" -msgstr "" +msgstr "Parar &todas as tarefas não dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:43 msgid "&Copy to clipboard" -msgstr "" +msgstr "&Copiar para a área de transferência" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:48 msgid "Show &details" @@ -8310,15 +8432,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:270 msgid "Replace field" -msgstr "" +msgstr "Substituir campo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:271 msgid "Prepend to field" -msgstr "" +msgstr "Adicionar campo ao início" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:272 msgid "Append to field" -msgstr "" +msgstr "Adicionar campo ao fim" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 msgid "Editing meta information for %d books" @@ -8330,11 +8452,15 @@ msgid "" "cannot be canceled or undone" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:382 msgid "Book %d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:400 +msgid "Enter an identifier type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:405 msgid "" "You can destroy your library using this feature. Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " @@ -8348,7 +8474,7 @@ msgstr "" "dados em capos de texto usando correspondências de caracteres ou expressões " "regulares. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:413 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -8358,7 +8484,7 @@ msgid "" "text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:415 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:424 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -8373,80 +8499,84 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:489 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:502 msgid "S/R TEMPLATE ERROR" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:616 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:646 msgid "You must specify a destination when source is a composite field" +msgstr "Tem de especificar um destino quando a fonte é um campo composto" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:652 +msgid "You must specify a destination identifier type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:715 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:723 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:844 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:759 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:778 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:905 msgid "Search/replace invalid" msgstr "Procurar/Substituir Inválido !" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:760 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:724 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:779 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:845 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:906 msgid "Search pattern is invalid: %s" msgstr "O padrão da procura é inválido: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:897 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:958 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:988 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:587 msgid "Delete saved search/replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:989 msgid "The selected saved search/replace will be deleted. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:945 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:953 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1006 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1014 msgid "Save search/replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:946 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1007 msgid "Search/replace name:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:954 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1015 msgid "" "That saved search/replace already exists and will be overwritten. Are you " "sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:524 msgid "Edit Meta information" msgstr "Editar os metadados" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:526 msgid "A&utomatically set author sort" msgstr "Definir a&utomaticamente a ordenação do(s) autor(es)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:527 msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:528 msgid "Author s&ort: " msgstr "&Ordenação de autor: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:529 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -8454,66 +8584,66 @@ msgstr "" "Especificar como é que o(s) autor(es) deste livro deve(m) ser ordenado(s). " "Por exemplo: Charles Dickens deve ser ordenado como Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:530 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:786 msgid "&Rating:" msgstr "A&valiação:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:505 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:532 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:426 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:787 msgid "Rating of this book. 0-5 stars" msgstr "Avaliação deste livro. 0-5 estrelas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:533 msgid "No change" -msgstr "" +msgstr "Sem alterações" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:534 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:427 msgid " stars" msgstr " estrelas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:536 msgid "Add ta&gs: " msgstr "Adicionar eti&quetas: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:512 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:539 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:431 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:432 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:143 msgid "Open Tag Editor" msgstr "Abrir o Editor de Etiquetas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:540 msgid "&Remove tags:" msgstr "&Remover etiquetas:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:541 msgid "Comma separated list of tags to remove from the books. " msgstr "Lista de etiquetas separadas por vírgulas a remover dos livros. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:542 msgid "Check this box to remove all tags from the books." msgstr "Marque esta caixa para remover todos os livros." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:543 msgid "Remove &all" -msgstr "" +msgstr "Remover &Todos" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:547 msgid "If checked, the series will be cleared" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:548 msgid "&Clear series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:549 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -8521,169 +8651,179 @@ 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:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:553 msgid "&Automatically number books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:554 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:557 msgid "&Force numbers to start with:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:558 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:440 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:978 msgid "&Date:" msgstr "&Data:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:559 msgid "d MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:566 msgid "&Apply date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:562 msgid "&Published:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:564 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:444 msgid "Clear published date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:567 msgid "Remove &format:" msgstr "Remover &formatos:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:568 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" "title and author are swapped before the title case is set" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:570 msgid "Change title to title &case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:571 msgid "" "Update title sort based on the current title. This will be applied only " "after other changes to title." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:572 msgid "Update &title sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:573 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:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:576 msgid "Remove &stored conversion settings for the selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:577 msgid "Change &cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:578 msgid "&Generate default cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:579 msgid "&Remove cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:580 msgid "Set from &ebook file(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:465 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:392 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:526 msgid "&Basic metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:582 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:404 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:583 msgid "Load searc&h/replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:584 msgid "Select saved search/replace to load." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:585 msgid "Save current search/replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:586 msgid "Sa&ve" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:588 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:64 msgid "Delete" msgstr "Apagar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:589 msgid "Search &field:" msgstr "Procurar &campo:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:590 msgid "The name of the field that you want to search" msgstr "O Nome do campo que quer procurar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:591 msgid "Search &mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:592 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:615 +msgid "Identifier type:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:616 +msgid "Choose which identifier type to operate upon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:595 msgid "Te&mplate:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:596 msgid "Enter a template to be used as the source for the search/replace" msgstr "" "Indique um modelo para ser usado como origem para a procura/substituição." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:597 msgid "&Search for:" msgstr "&Procurar por:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:598 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:599 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" @@ -8692,15 +8832,15 @@ msgstr "" "maiúsculas/minúsculas. Desmarque para a procura ignorar a capitalização das " "palavras." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:600 msgid "Cas&e sensitive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:601 msgid "&Replace with:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:602 msgid "" "The replacement text. The matched search text will be replaced with this " "string" @@ -8708,11 +8848,11 @@ msgstr "" "O texto de substituição. As procuras correspondentes irão ser trocadas por " "esta expressão." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:603 msgid "&Apply function after replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:604 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -8720,25 +8860,25 @@ msgid "" "processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:578 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:606 msgid "&Destination field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:579 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:607 msgid "" "The field that the text will be put into after all replacements.\n" "If blank, the source field is used if the field is modifiable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:609 msgid "M&ode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:582 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:610 msgid "Specify how the text should be copied into the destination." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:611 msgid "" "Specifies whether result items should be split into multiple values or\n" "left as single values. This option has the most effect when the source field " @@ -8746,41 +8886,41 @@ msgid "" "not multiple and the destination field is multiple" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:614 msgid "Split &result" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:617 msgid "For multiple-valued fields, sho&w" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:618 msgid "values starting a&t" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:619 msgid "with values separated b&y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:620 msgid "" "Used when displaying test results to separate values in multiple-valued " "fields" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:621 msgid "Test text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:622 msgid "Test result" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:593 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:623 msgid "Your test:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:624 msgid "&Search and replace" msgstr "&Procurar e substituir" @@ -8791,18 +8931,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:122 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:252 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:262 msgid "Could not read cover" msgstr "É impossível ler a capa" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:253 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:256 msgid "Could not read cover from %s format" msgstr "É impossível ler a capa do formato %s." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:263 msgid "The cover in the %s format is invalid" msgstr "A capa do formato %s é inválida" @@ -8927,84 +9067,84 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:472 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:49 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:50 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:221 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:384 msgid "Previous" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:483 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:358 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:366 msgid "Save changes and edit the metadata of %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:46 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:103 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:211 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:401 msgid "Next" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:688 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:693 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:695 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:913 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:696 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:698 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:920 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:781 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:783 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:862 msgid "Tags changed" msgstr "Etiquetas modificadas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:782 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:784 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:863 msgid "" "You have changed the tags. In order to use the tags editor, you must either " "discard or apply these changes. Apply changes?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:819 msgid "Timed out" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:818 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:820 msgid "" "The download of social metadata timed out, the servers are probably busy. " "Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:825 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:827 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:828 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:860 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:862 msgid "Cannot fetch metadata" msgstr "É impossível recolher os metadados" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:861 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:863 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "Deve especificar pelo menos um de ISBN, Título, Autores ou Editora" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:959 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:961 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:310 msgid "Permission denied" msgstr "Permissão negada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:960 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:308 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:962 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:311 msgid "Could not open %s. Is it being used by another program?" msgstr "É impossível abrir %s. Está a ser usado por outro programa?" @@ -9017,7 +9157,7 @@ msgid "Meta information" msgstr "Metadados" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:92 msgid "" "Automatically create the title sort entry based on the current title entry.\n" "Using this button to create title sort will change title sort from red to " @@ -9025,12 +9165,12 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:413 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:114 msgid "Swap the author and title" msgstr "Trocar o autor e o título" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:415 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:103 msgid "" "Automatically create the author sort entry based on the current author " "entry.\n" @@ -9063,7 +9203,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:436 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:121 msgid "Remove unused series (Series that have no books)" msgstr "Remover as séries não usadas (Séries que não têm livros)" @@ -9082,7 +9222,7 @@ msgid "Publishe&d:" msgstr "Edita&do:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:445 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:159 msgid "&Fetch metadata from server" msgstr "&Recolher os metadados do servidor" @@ -9146,7 +9286,7 @@ msgstr "" "Actualizar os metadados a partir dos metadados do formato seleccionado" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:464 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:585 msgid "&Comments" msgstr "&Comentários" @@ -9155,23 +9295,23 @@ msgid "Password needed" msgstr "É necessário a sua palavra-passe" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "&Utilizador:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:234 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "Pala&vra-passe:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:173 msgid "&Show password" msgstr "&Mostrar a palavra-passe" @@ -9214,170 +9354,245 @@ msgstr "" msgid "Restoring database was successful" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:75 +msgid "Saved search already exists" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:76 +msgid "The saved search %s already exists, perhaps with different case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:62 msgid "" "The current saved search will be permanently deleted. Are you sure?" msgstr "" "A procura actualmente guardada será permanente apagada. Tem a certeza " "?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:94 msgid "Saved Search Editor" msgstr "Editor de Procuras Guardadas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:95 msgid "Saved Search: " msgstr "Procura Guardada: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:96 msgid "Select a saved search to edit" msgstr "Seleccione uma procura guardada para editar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:97 msgid "Delete this selected saved search" msgstr "Apagar a procura guardada seleccionada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:99 msgid "Enter a new saved search name." msgstr "Digite um novo nome para esta procura guardada." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:100 msgid "Add the new saved search" msgstr "Adicionar a nova procura guardada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:102 +msgid "Rename the current search to what is in the box" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:104 msgid "Change the contents of the saved search" msgstr "Alterar o conteúdo da procura guardada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:42 +msgid "" +" Download this periodical every week on the specified days " +"after\n" +" the specified time. For example, if you choose: Monday " +"after\n" +" 9:00 AM, then the periodical will be download every Monday " +"as\n" +" soon after 9:00 AM as possible.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:61 +msgid "&Download after:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:91 +msgid "" +" Download this periodical every month, on the specified " +"days.\n" +" The download will happen as soon after the specified time " +"as\n" +" possible on the specified days of each month. For example,\n" +" if you choose the 1st and the 15th after 9:00 AM, the\n" +" periodical will be downloaded on the 1st and 15th of every\n" +" month, as soon after 9:00 AM as possible.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:103 +msgid "&Days of the month:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:105 +msgid "Comma separated list of days of the month. For example: 1, 15" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:109 +msgid "Download &after:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:142 +msgid "" +" Download this periodical every x days. For example, if you\n" +" choose 30 days, the periodical will be downloaded every 30\n" +" days. Note that you can set periods of less than a day, " +"like\n" +" 0.1 days to download a periodical more than once a day.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:151 +msgid "&Download every:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:154 +msgid "every hour" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:157 +msgid "days" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:161 +msgid "" +"Note: You can set intervals of less than a day, by typing the value manually." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:196 msgid "%s news sources" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:311 msgid "Need username and password" msgstr "É necessário utilizador e palavra-passe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:312 msgid "You must provide a username and/or password to use this news source." msgstr "" "Deve fornecer um utilizador e/ou uma palavra-passe para usar esta fonte de " "notícias." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:346 msgid "Account" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:347 msgid "(optional)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:348 msgid "(required)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:365 msgid "Created by: " msgstr "Criado por: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:372 msgid "Last downloaded: never" msgstr "Último descarregamento: nunca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:373 +msgid "never" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:379 msgid "%d days, %d hours and %d minutes ago" msgstr "à %d dias, %d horas e %d minutos" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:211 -msgid "Last downloaded" -msgstr "Último descarregamento" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:393 +msgid "Last downloaded:" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:242 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:421 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 msgid "Schedule news download" msgstr "Programar o descarregamento de notícias" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:424 msgid "Add a custom news source" msgstr "Adicionar uma fonte de notícias personalizada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:429 msgid "Download all scheduled new sources" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:534 msgid "No internet connection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:535 msgid "Cannot download news as no internet connection is active" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 msgid "&Search:" msgstr "&Procurar:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 msgid "blurb" msgstr "excerto" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 msgid "&Schedule for download:" msgstr "&Programar o descarregamento" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:229 -msgid "Every " -msgstr "Todos/as " - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:228 -msgid "at" -msgstr "às" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:230 -msgid "" -"Interval at which to download this recipe. A value of zero means that the " -"recipe will be downloaded every hour." +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +msgid "Days of week" msgstr "" -"Intervalo no qual descarregar esta receita. Um valor 0 quer dizer que a " -"receita vai ser descarregada de hora a hora." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:231 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:253 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:268 -msgid " days" -msgstr " dias" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +msgid "Days of month" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +msgid "Every x days" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 msgid "&Account" msgstr "&Conta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 msgid "For the scheduling to work, you must leave calibre running." msgstr "Para a programação funcionar tem de deixar o calibre a executar." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 msgid "&Schedule" msgstr "&Programar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:238 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 msgid "Add &title as tag" msgstr "Adicionar o &título como etiqueta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:239 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 msgid "&Extra tags:" msgstr "&Etiquetas extra:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:240 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "" "Maximum number of copies (issues) of this recipe to keep. Set to 0 to keep " "all (disable)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 msgid "&Keep at most:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 msgid "" "

      When set, this option will cause calibre to keep, at most, the specified " "number of issues of this periodical. Every time a new issue is downloaded, " @@ -9388,27 +9603,27 @@ msgid "" "below, takes priority over this setting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 msgid "all issues" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 msgid " issues" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 msgid "&Advanced" msgstr "&Avançado" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 msgid "&Download now" msgstr "&Descarregar agora" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 msgid "&Delete downloaded news older than:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 msgid "" "

      Delete downloaded news older than the specified number of days. Set to " "zero to disable.\n" @@ -9417,15 +9632,20 @@ msgid "" "above." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:252 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:224 msgid "never delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273 +msgid " days" +msgstr " dias" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:226 msgid "Download all scheduled news sources at once" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:227 msgid "Download &all scheduled" msgstr "Descarregar &todas as progamadas" @@ -9560,34 +9780,38 @@ msgstr "Autor(es)" msgid "Publishers" msgstr "Editoras" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:143 msgid " (not on any book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:146 +msgid "Category lookup name: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:222 msgid "Invalid name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:223 msgid "" "That name contains leading or trailing periods, multiple periods in a row or " "spaces before or after periods." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:230 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/template_functions.py:151 msgid "Name already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:231 msgid "That name is already used, perhaps with different case." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:229 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:244 msgid "" "The current tag category will be permanently deleted. Are you sure?" msgstr "" @@ -9709,12 +9933,12 @@ msgid "%s (was %s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1319 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1367 msgid "Item is blank" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1368 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" @@ -9818,120 +10042,124 @@ msgid "" "updating your calibre library.

      " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:141 msgid "No recipe selected" msgstr "Nenhuma receita seleccionada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:146 msgid "The attached file: %s is a recipe to download %s." msgstr "O ficheiro anexo: %s é a receita para descarregar %s." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:147 msgid "Recipe for " msgstr "Receita para " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 msgid "Switch to Advanced mode" msgstr "Mudar para o Modo Avançado" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:162 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:178 msgid "Switch to Basic mode" msgstr "Mudar para o Modo Básico" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:188 msgid "Feed must have a title" msgstr "A fonte deve ter um título" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:189 msgid "The feed must have a title" msgstr "A fonte deve ter um título" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:193 msgid "Feed must have a URL" msgstr "A fonte deve ter um URL" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:194 msgid "The feed %s must have a URL" msgstr "A fonte %s deve ter um URL" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:200 msgid "This feed has already been added to the recipe" msgstr "Esta fonte já foi adicionada à receita" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:233 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:242 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:329 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:337 msgid "Invalid input" msgstr "Ficheiro de origem inválido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:234 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:243 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:338 msgid "

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

      É impossível criar a receita. Erro:
      %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:247 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:341 msgid "Replace recipe?" msgstr "Substituir a receita?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:248 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:307 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:256 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:315 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:342 msgid "A custom recipe named %s already exists. Do you want to replace it?" msgstr "A receita personalizada %s já existe. Quer substituí-la?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:282 msgid "Choose builtin recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:328 msgid "Choose a recipe file" msgstr "Escolher um ficheiro de receita" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:329 msgid "Recipes" msgstr "Receitas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:369 msgid "" "You will lose any unsaved changes. To save your changes, click the " "Add/Update recipe button. Continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:257 msgid "Add custom news source" msgstr "Adicionar uma fonte de notícias personalizada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:258 msgid "Available user recipes" msgstr "Receitas de utilizadores" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:259 msgid "Add/Update &recipe" msgstr "&Adicionar/Actualizar a receita" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 msgid "&Remove recipe" msgstr "&Remover a receita" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:257 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 msgid "&Share recipe" msgstr "&Partilhar a receita" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:258 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:262 +msgid "S&how recipe files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 msgid "Customize &builtin recipe" msgstr "Personalizar a receita &integrada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:264 msgid "&Load recipe from file" msgstr "&Carregar a receita do ficheiro" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266 msgid "" "