diff --git a/calibre-plugin/fff_plugin.py b/calibre-plugin/fff_plugin.py index ea07f9b1..c8112d63 100644 --- a/calibre-plugin/fff_plugin.py +++ b/calibre-plugin/fff_plugin.py @@ -1695,14 +1695,14 @@ class FanFicFarePlugin(InterfaceAction): if 'status' in book: status = book['status'] else: - status = 'Good' + status = _('Good') htmllog = htmllog + '' + ''.join([escapehtml(status),escapehtml(book['title']),escapehtml(", ".join(book['author'])),escapehtml(book['comment']),book['url']]) + '' for book in bad_list: if 'status' in book: status = book['status'] else: - status = 'Bad' + status = _('Bad') htmllog = htmllog + '' + ''.join([escapehtml(status),escapehtml(book['title']),escapehtml(", ".join(book['author'])),escapehtml(book['comment']),book['url']]) + '' htmllog = htmllog + '' @@ -2231,7 +2231,7 @@ class FanFicFarePlugin(InterfaceAction): book = self.convert_url_to_book(url) if book['url'] in uniqueurls: book['good'] = False - book['comment'] = "Same story already included." + book['comment'] = _("Same story already included.") uniqueurls.add(book['url']) book['listorder']=i # BG d/l jobs don't come back in order. # Didn't matter until anthologies & 'marked' successes diff --git a/calibre-plugin/jobs.py b/calibre-plugin/jobs.py index cf69b5ae..5caf008b 100644 --- a/calibre-plugin/jobs.py +++ b/calibre-plugin/jobs.py @@ -23,6 +23,12 @@ from calibre.library.comments import sanitize_comments_html from calibre_plugins.fanficfare_plugin.wordcount import get_word_count from calibre_plugins.fanficfare_plugin.prefs import (SAVE_YES, SAVE_YES_UNLESS_SITE) +# pulls in translation files for _() strings +try: + load_translations() +except NameError: + pass # load_translations() added in calibre 1.9 + # ------------------------------------------------------------------------------ # # Functions to perform downloads using worker jobs @@ -82,7 +88,7 @@ def do_download_worker(book_list, book_list.append(job.result) book_id = job._book['calibre_id'] count = count + 1 - notification(float(count)/total, '%d of %d stories finished downloading'%(count,total)) + notification(float(count)/total, _('%d of %d stories finished downloading')%(count,total)) # Add this job's output to the current log logger.info('Logfile for book ID %s (%s)'%(book_id, job._book['title'])) logger.info(job.details) @@ -189,7 +195,7 @@ def do_download_for_worker(book,options,merge,notification=lambda x,y:x): ## No need to download at all. Shouldn't ever get down here. if options['collision'] in (CALIBREONLY, CALIBREONLYSAVECOL): logger.info("Skipping CALIBREONLY 'update' down inside worker--this shouldn't be happening...") - book['comment'] = 'Metadata collected.' + book['comment'] = _('Metadata collected.') book['all_metadata'] = story.getAllMetadata(removeallentities=True) if options['savemetacol'] != '': book['savemetacol'] = story.dump_html_metadata() @@ -221,7 +227,7 @@ def do_download_for_worker(book,options,merge,notification=lambda x,y:x): inject_cal_cols(book,story,configuration) writer.writeStory(outfilename=outfile, forceOverwrite=True) - book['comment'] = 'Download %s completed, %s chapters.'%(options['fileform'],story.getMetadata("numChapters")) + book['comment'] = _('Download %s completed, %s chapters.')%(options['fileform'],story.getMetadata("numChapters")) book['all_metadata'] = story.getAllMetadata(removeallentities=True) if options['savemetacol'] != '': book['savemetacol'] = story.dump_html_metadata() @@ -311,7 +317,7 @@ def do_download_for_worker(book,options,merge,notification=lambda x,y:x): book['good']=False book['comment']=unicode(e) book['icon']='dialog_error.png' - book['status'] = 'Error' + book['status'] = _('Error') logger.info("Exception: %s:%s"%(book,unicode(e))) traceback.print_exc() diff --git a/calibre-plugin/translations/messages.pot b/calibre-plugin/translations/messages.pot index 4a3353e9..321c8fdf 100644 --- a/calibre-plugin/translations/messages.pot +++ b/calibre-plugin/translations/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2016-03-11 11:48+Central Standard Time\n" +"POT-Creation-Date: 2016-03-21 20:15+Central Daylight Time\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1721,23 +1721,23 @@ msgstr "" msgid "Different URL" msgstr "" -#: fff_plugin.py:1305 +#: fff_plugin.py:1305 jobs.py:198 msgid "Metadata collected." msgstr "" -#: fff_plugin.py:1321 jobs.py:256 +#: fff_plugin.py:1321 jobs.py:262 msgid "Already contains %d chapters." msgstr "" -#: fff_plugin.py:1323 jobs.py:258 +#: fff_plugin.py:1323 jobs.py:264 msgid "Existing epub contains %d chapters, web site only has %d. Use Overwrite to force update." msgstr "" -#: fff_plugin.py:1325 jobs.py:260 +#: fff_plugin.py:1325 jobs.py:266 msgid "FanFicFare doesn't recognize chapters in existing epub, epub is probably from a different source. Use Overwrite to force update." msgstr "" -#: fff_plugin.py:1342 jobs.py:217 +#: fff_plugin.py:1342 jobs.py:223 msgid "Not Overwriting, web site is not newer." msgstr "" @@ -1753,7 +1753,7 @@ msgstr "" msgid "Proceed with updating your library(Error Column, if configured)?" msgstr "" -#: fff_plugin.py:1469 fff_plugin.py:1671 +#: fff_plugin.py:1469 fff_plugin.py:1671 fff_plugin.py:1705 msgid "Bad" msgstr "" @@ -1821,7 +1821,7 @@ msgstr "" msgid "Proceed with updating this anthology and your library?" msgstr "" -#: fff_plugin.py:1669 +#: fff_plugin.py:1669 fff_plugin.py:1698 msgid "Good" msgstr "" @@ -1865,7 +1865,7 @@ msgstr "" msgid "Adding format to book failed for some reason..." msgstr "" -#: fff_plugin.py:1823 +#: fff_plugin.py:1823 jobs.py:320 msgid "Error" msgstr "" @@ -1885,6 +1885,10 @@ msgstr "" msgid "You configured FanFicFare to automatically update \"Send to Device\" Reading Lists, but you don't have any lists set?" msgstr "" +#: fff_plugin.py:2234 +msgid "Same story already included." +msgstr "" + #: fff_plugin.py:2294 msgid "No story URL found." msgstr "" @@ -1917,31 +1921,39 @@ msgstr "" msgid "(was set, removed for security)" msgstr "" -#: jobs.py:69 +#: jobs.py:75 msgid "Downloading FanFiction Stories" msgstr "" -#: jobs.py:97 +#: jobs.py:91 +msgid "%d of %d stories finished downloading" +msgstr "" + +#: jobs.py:103 msgid "Download Results:" msgstr "" -#: jobs.py:99 +#: jobs.py:105 msgid "Successful:" msgstr "" -#: jobs.py:100 +#: jobs.py:106 msgid "Unsuccessful:" msgstr "" -#: jobs.py:125 +#: jobs.py:131 msgid "Download started..." msgstr "" -#: jobs.py:249 +#: jobs.py:230 +msgid "Download %s completed, %s chapters." +msgstr "" + +#: jobs.py:255 msgid "Already contains %d chapters. Reuse as is." msgstr "" -#: jobs.py:272 +#: jobs.py:278 msgid "Update %s completed, added %s chapters for %s total." msgstr "" diff --git a/calibre-plugin/translations/zz.po b/calibre-plugin/translations/zz.po index b3bea2f4..7d5b466a 100644 --- a/calibre-plugin/translations/zz.po +++ b/calibre-plugin/translations/zz.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: FanFictionDownLoader 1.8\n" -"POT-Creation-Date: 2015-04-27 11:35+Central Daylight Time\n" -"PO-Revision-Date: 2015-04-27 11:55-0600\n" +"POT-Creation-Date: 2016-03-21 20:15+Central Daylight Time\n" +"PO-Revision-Date: 2016-03-21 20:23-0600\n" "Last-Translator: Jim Miller \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -82,39 +82,39 @@ msgstr "zzPlease restart calibre now." msgid "Restart calibre now" msgstr "zzRestart calibre now" -#: config.py:187 +#: config.py:192 msgid "List of Supported Sites" msgstr "zzList of Supported Sites" -#: config.py:189 +#: config.py:194 msgid "FAQs" msgstr "zzFAQs" -#: config.py:204 +#: config.py:209 msgid "Basic" msgstr "zzBasic" -#: config.py:215 +#: config.py:220 msgid "Calibre Cover" msgstr "zzCalibre Cover" -#: config.py:223 +#: config.py:228 msgid "Standard Columns" msgstr "zzStandard Columns" -#: config.py:226 +#: config.py:231 msgid "Custom Columns" msgstr "zzCustom Columns" -#: config.py:229 +#: config.py:234 msgid "Email Settings" msgstr "zzEmail Settings" -#: config.py:232 +#: config.py:237 msgid "Other" msgstr "zzOther" -#: config.py:366 +#: config.py:384 msgid "" "These settings control the basic features of the plugin--downloading " "FanFiction." @@ -122,11 +122,11 @@ msgstr "" "zzThese settings control the basic features of the plugin--downloading " "FanFiction." -#: config.py:370 +#: config.py:388 msgid "Defaults Options on Download" msgstr "zzDefaults Options on Download" -#: config.py:374 +#: config.py:392 #, fuzzy msgid "" "On each download, FanFicFare offers an option to select the output format. " @@ -135,11 +135,11 @@ msgstr "" "zzOn each download, FFDL offers an option to select the output format.
This sets what that option will default to." -#: config.py:376 +#: config.py:394 msgid "Default Output &Format:" msgstr "zzDefault Output &Format:" -#: config.py:391 +#: config.py:409 #, fuzzy msgid "" "On each download, FanFicFare offers an option of what happens if that story " @@ -148,15 +148,15 @@ msgstr "" "zzOn each download, FFDL offers an option of what happens if that story " "already exists.
This sets what that option will default to." -#: config.py:393 +#: config.py:411 msgid "Default If Story Already Exists?" msgstr "zzDefault If Story Already Exists?" -#: config.py:408 +#: config.py:426 msgid "Default Update Calibre &Metadata?" msgstr "zzDefault Update Calibre &Metadata?" -#: config.py:409 +#: config.py:427 #, fuzzy msgid "" "On each download, FanFicFare offers an option to update Calibre's metadata " @@ -169,11 +169,11 @@ msgstr "" ">This sets whether that will default to on or off.
Columns set to 'New " "Only' in the column tabs will only be set for new books." -#: config.py:413 +#: config.py:431 msgid "Default Update EPUB Cover when Updating EPUB?" msgstr "zzDefault Update EPUB Cover when Updating EPUB?" -#: config.py:414 +#: config.py:432 #, fuzzy msgid "" "On each download, FanFicFare offers an option to update the book cover image " @@ -184,15 +184,36 @@ msgstr "" "inside the EPUB from the web site when the EPUB is updated.
This " "sets whether that will default to on or off." -#: config.py:419 +#: config.py:436 +#, fuzzy +msgid "Default Background Metadata?" +msgstr "zzDefault Update Calibre &Metadata?" + +#: config.py:437 +msgid "" +"On each download, FanFicFare offers an option to Collect Metadata from sites " +"in a Background process.
This returns control to you quicker while " +"updating, but you won't be asked for username/passwords or if you are an " +"adult--stories that need those will just fail.
Only available for " +"Update/Overwrite of existing books in case URL given isn't canonical or " +"matches to existing book by Title/Author." +msgstr "" +"zzOn each download, FanFicFare offers an option to Collect Metadata from " +"sites in a Background process.
This returns control to you quicker " +"while updating, but you won't be asked for username/passwords or if you are " +"an adult--stories that need those will just fail.
Only available for " +"Update/Overwrite of existing books in case URL given isn't canonical or " +"matches to existing book by Title/Author." + +#: config.py:443 msgid "Updating Calibre Options" msgstr "zzUpdating Calibre Options" -#: config.py:423 +#: config.py:447 msgid "Delete other existing formats?" msgstr "zzDelete other existing formats?" -#: config.py:424 +#: config.py:448 msgid "" "Check this to automatically delete all other ebook formats when updating an " "existing book.\n" @@ -202,11 +223,11 @@ msgstr "" "an existing book.\n" "Handy if you have both a Nook(epub) and Kindle(mobi), for example." -#: config.py:428 +#: config.py:452 msgid "Keep Existing Tags when Updating Metadata?" msgstr "zzKeep Existing Tags when Updating Metadata?" -#: config.py:429 +#: config.py:453 msgid "" "Existing tags will be kept and any new tags added.\n" "%(cmplt)s and %(inprog)s tags will be still be updated, if known.\n" @@ -220,11 +241,11 @@ msgstr "" "(If Tags is set to 'New Only' in the Standard Columns tab, this has no " "effect.)" -#: config.py:433 +#: config.py:457 msgid "Force Author into Author Sort?" msgstr "zzForce Author into Author Sort?" -#: config.py:434 +#: config.py:458 msgid "" "If checked, the author(s) as given will be used for the Author Sort, too.\n" "If not checked, calibre will apply it's built in algorithm which makes 'Bob " @@ -234,11 +255,11 @@ msgstr "" "If not checked, calibre will apply it's built in algorithm which makes 'Bob " "Smith' sort as 'Smith, Bob', etc." -#: config.py:438 +#: config.py:462 msgid "Force Title into Title Sort?" msgstr "zzForce Title into Title Sort?" -#: config.py:439 +#: config.py:463 msgid "" "If checked, the title as given will be used for the Title Sort, too.\n" "If not checked, calibre will apply it's built in algorithm which makes 'The " @@ -248,25 +269,27 @@ msgstr "" "If not checked, calibre will apply it's built in algorithm which makes 'The " "Title' sort as 'Title, The', etc." -#: config.py:443 +#: config.py:467 msgid "Check for existing Series Anthology books?" msgstr "zzCheck for existing Series Anthology books?" -#: config.py:444 +#: config.py:468 +#, fuzzy msgid "" "Check for existings Series Anthology books using each new story's series URL " "before downloading.\n" -"Offer to skip downloading if a Series Anthology is found." +"Offer to skip downloading if a Series Anthology is found.\n" +"Doesn't work when Collect Metadata in Background is selected." msgstr "" "zzCheck for existings Series Anthology books using each new story's series " "URL before downloading.\n" "Offer to skip downloading if a Series Anthology is found." -#: config.py:448 +#: config.py:472 msgid "Check for changed Story URL?" msgstr "zzCheck for changed Story URL?" -#: config.py:449 +#: config.py:473 msgid "" "Warn you if an update will change the URL of an existing book.\n" "fanfiction.net URLs will change from http to https silently." @@ -274,11 +297,11 @@ msgstr "" "zzWarn you if an update will change the URL of an existing book.\n" "fanfiction.net URLs will change from http to https silently." -#: config.py:453 +#: config.py:477 msgid "Search EPUB text for Story URL?" msgstr "zzSearch EPUB text for Story URL?" -#: config.py:454 +#: config.py:478 msgid "" "Look for first valid story URL inside EPUB text if not found in metadata.\n" "Somewhat risky, could find wrong URL depending on EPUB content.\n" @@ -288,11 +311,15 @@ msgstr "" "Somewhat risky, could find wrong URL depending on EPUB content.\n" "Also finds and corrects bad ffnet URLs from ficsaver.com files." -#: config.py:458 +#: config.py:482 +msgid "Post Processing Options" +msgstr "zzPost Processing Options" + +#: config.py:486 msgid "Mark added/updated books when finished?" msgstr "zzMark added/updated books when finished?" -#: config.py:459 +#: config.py:487 #, fuzzy msgid "" "Mark added/updated books when finished. Use with option below.\n" @@ -303,11 +330,11 @@ msgstr "" "You can also manually search for 'marked:ffdl_success'.\n" "'marked:ffdl_failed' is also available, or search 'marked:ffdl' for both." -#: config.py:463 +#: config.py:491 msgid "Show Marked books when finished?" msgstr "zzShow Marked books when finished?" -#: config.py:464 +#: config.py:492 #, fuzzy msgid "" "Show Marked added/updated books only when finished.\n" @@ -318,11 +345,11 @@ msgstr "" "You can also manually search for 'marked:ffdl_success'.\n" "'marked:ffdl_failed' is also available, or search 'marked:ffdl' for both." -#: config.py:468 +#: config.py:496 msgid "Smarten Punctuation (EPUB only)" msgstr "zzSmarten Punctuation (EPUB only)" -#: config.py:469 +#: config.py:497 msgid "" "Run Smarten Punctuation from Calibre's Polish Book feature on each EPUB " "download and update." @@ -330,11 +357,27 @@ msgstr "" "zzRun Smarten Punctuation from Calibre's Polish Book feature on each EPUB " "download and update." -#: config.py:473 +#: config.py:502 +msgid "" +"Calculate Word Counts using Calibre internal methods.\n" +"Many sites include Word Count, but many do not.\n" +"This will count the words in each book and include it as if it came from the " +"site." +msgstr "" +"zzCalculate Word Counts using Calibre internal methods.\n" +"Many sites include Word Count, but many do not.\n" +"This will count the words in each book and include it as if it came from the " +"site." + +#: config.py:506 +msgid "Calculate Word Count:" +msgstr "zzCalculate Word Count:" + +#: config.py:519 msgid "Automatically Convert new/update books?" msgstr "zzAutomatically Convert new/update books?" -#: config.py:474 +#: config.py:520 msgid "" "Automatically call calibre's Convert for new/update books.\n" "Converts to the current output format as chosen in calibre's\n" @@ -344,23 +387,23 @@ msgstr "" "Converts to the current output format as chosen in calibre's\n" "Preferences->Behavior settings." -#: config.py:478 +#: config.py:524 msgid "GUI Options" msgstr "zzGUI Options" -#: config.py:482 +#: config.py:528 msgid "Take URLs from Clipboard?" msgstr "zzTake URLs from Clipboard?" -#: config.py:483 +#: config.py:529 msgid "Prefill URLs from valid URLs in Clipboard when Adding New." msgstr "zzPrefill URLs from valid URLs in Clipboard when Adding New." -#: config.py:487 +#: config.py:533 msgid "Default to Update when books selected?" msgstr "zzDefault to Update when books selected?" -#: config.py:488 +#: config.py:534 #, fuzzy msgid "" "The top FanFicFare plugin button will start Update if\n" @@ -369,11 +412,11 @@ msgstr "" "zzThe top FanFictionDownLoader plugin button will start Update if\n" "books are selected. If unchecked, it will always bring up 'Add New'." -#: config.py:492 +#: config.py:538 msgid "Keep 'Add New from URL(s)' dialog on top?" msgstr "zzKeep 'Add New from URL(s)' dialog on top?" -#: config.py:493 +#: config.py:539 msgid "" "Instructs the OS and Window Manager to keep the 'Add New from URL(s)'\n" "dialog on top of all other windows. Useful for dragging URLs onto it." @@ -381,24 +424,24 @@ msgstr "" "zzInstructs the OS and Window Manager to keep the 'Add New from URL(s)'\n" "dialog on top of all other windows. Useful for dragging URLs onto it." -#: config.py:497 +#: config.py:543 msgid "Show estimated time left?" msgstr "zzShow estimated time left?" -#: config.py:498 +#: config.py:544 msgid "When a Progress Bar is shown, show a rough estimate of the time left." msgstr "" "zzWhen a Progress Bar is shown, show a rough estimate of the time left." -#: config.py:502 +#: config.py:548 msgid "Misc Options" msgstr "zzMisc Options" -#: config.py:506 +#: config.py:552 msgid "Inject calibre Series when none found?" msgstr "zzInject calibre Series when none found?" -#: config.py:507 +#: config.py:553 #, fuzzy msgid "" "If no series is found, inject the calibre series (if there is one) so \n" @@ -407,64 +450,76 @@ msgstr "" "zzIf no series is found, inject the calibre series (if there is one) so it " "appears on the FFDL title page(not cover)." -#: config.py:511 +#: config.py:557 +#, fuzzy +msgid "Search by Title/Author(s) for If Story Already Exists?" +msgstr "zzDefault If Story Already Exists?" + +#: config.py:558 +msgid "" +"When checking If Story Already Exists FanFicFare will first match by " +"URL Identifier. But if not found, it can also search existing books by " +"Title and Author(s)." +msgstr "" + +#: config.py:562 msgid "Reject List" msgstr "zzReject List" -#: config.py:515 +#: config.py:566 msgid "Edit Reject URL List" msgstr "zzEdit Reject URL List" -#: config.py:516 +#: config.py:567 #, fuzzy msgid "Edit list of URLs FanFicFare will automatically Reject." msgstr "zzEdit list of URLs FFDL will automatically Reject." -#: config.py:520 config.py:591 +#: config.py:571 config.py:645 msgid "Add Reject URLs" msgstr "zzAdd Reject URLs" -#: config.py:521 +#: config.py:572 msgid "Add additional URLs to Reject as text." msgstr "zzAdd additional URLs to Reject as text." -#: config.py:525 +#: config.py:576 msgid "Edit Reject Reasons List" msgstr "zzEdit Reject Reasons List" -#: config.py:526 config.py:581 +#: config.py:577 config.py:635 msgid "Customize the Reasons presented when Rejecting URLs" msgstr "zzCustomize the Reasons presented when Rejecting URLs" -#: config.py:530 +#: config.py:581 msgid "Reject Without Confirmation?" msgstr "zzReject Without Confirmation?" -#: config.py:531 +#: config.py:582 msgid "Always reject URLs on the Reject List without stopping and asking." msgstr "zzAlways reject URLs on the Reject List without stopping and asking." -#: config.py:565 +#: config.py:619 msgid "Edit Reject URLs List" msgstr "zzEdit Reject URLs List" -#: config.py:579 +#: config.py:633 msgid "Reject Reasons" msgstr "zzReject Reasons" -#: config.py:580 +#: config.py:634 msgid "Customize Reject List Reasons" msgstr "zzCustomize Reject List Reasons" -#: config.py:589 +#: config.py:643 msgid "Reason why I rejected it" msgstr "zzReason why I rejected it" -#: config.py:589 +#: config.py:643 msgid "Title by Author" msgstr "zzTitle by Author" -#: config.py:592 +#: config.py:646 msgid "" "Add Reject URLs. Use: http://...,note or http://...,title by " "author - note
Invalid story URLs will be ignored." @@ -472,7 +527,7 @@ msgstr "" "zzAdd Reject URLs. Use: http://...,note or http://...,title by " "author - note
Invalid story URLs will be ignored." -#: config.py:593 +#: config.py:647 msgid "" "One URL per line:\n" "http://...,note\n" @@ -482,11 +537,11 @@ msgstr "" "http://...,note\n" "http://...,title by author - note" -#: config.py:595 dialogs.py:1072 +#: config.py:649 dialogs.py:1100 msgid "Add this reason to all URLs added:" msgstr "zzAdd this reason to all URLs added:" -#: config.py:611 +#: config.py:665 msgid "" "These settings provide more detailed control over what metadata will be " "displayed inside the ebook as well as let you set %(isa)s and %(u)s/%(p)s " @@ -496,7 +551,16 @@ msgstr "" "displayed inside the ebook as well as let you set %(isa)s and %(u)s/%(p)s " "for different sites." -#: config.py:616 +#: config.py:672 +#, fuzzy +msgid "personal.ini" +msgstr "zzEdit personal.ini" + +#: config.py:679 config.py:783 config.py:784 +msgid "Edit personal.ini" +msgstr "zzEdit personal.ini" + +#: config.py:684 msgid "" "FanFicFare now includes find, color coding, and error checking for personal." "ini editing. Red generally indicates errors." @@ -504,15 +568,23 @@ msgstr "" "zzFanFicFare now includes find, color coding, and error checking for " "personal.ini editing. Red generally indicates errors." -#: config.py:635 config.py:666 config.py:667 -msgid "Edit personal.ini" +#: config.py:692 +#, fuzzy +msgid "View \"Safe\" personal.ini" msgstr "zzEdit personal.ini" -#: config.py:640 -msgid "View Defaults" -msgstr "zzView Defaults" +#: config.py:697 config.py:774 +msgid "" +"View your personal.ini with usernames and passwords removed. For safely " +"sharing your personal.ini settings with others." +msgstr "" -#: config.py:641 +#: config.py:703 +#, fuzzy +msgid "defaults.ini" +msgstr "zzDefault" + +#: config.py:708 msgid "" "View all of the plugin's configurable settings\n" "and their default settings." @@ -520,22 +592,65 @@ msgstr "" "zzView all of the plugin's configurable settings\n" "and their default settings." -#: config.py:645 +#: config.py:709 +msgid "View Defaults" +msgstr "zzView Defaults" + +#: config.py:720 +#, fuzzy +msgid "Calibre Columns" +msgstr "zzCalibre Cover" + +#: config.py:727 +msgid "" +"If checked, when updating/overwriting an existing book, FanFicFare will have " +"the Calibre Columns available to use in replace_metadata, title_page, etc." +"
Click the button below to see the Calibre Column namess." +msgstr "" + +#: config.py:728 +msgid "Pass Calibre Columns into FanFicFare on Update/Overwrite" +msgstr "" + +#: config.py:741 +msgid "" +"FanFicFare can pass the Calibre Columns into the download/update process." +"
This will show you the columns available by name." +msgstr "" + +#: config.py:742 +msgid "Show Calibre Column Names" +msgstr "" + +#: config.py:751 msgid "" "Changes will only be saved if you click 'OK' to leave Customize FanFicFare." msgstr "" "zzChanges will only be saved if you click 'OK' to leave Customize FanFicFare." -#: config.py:656 +#: config.py:761 msgid "Plugin Defaults" msgstr "zzPlugin Defaults" -#: config.py:657 +#: config.py:762 msgid "Plugin Defaults (%s) (Read-Only)" msgstr "zzPlugin Defaults (%s) (Read-Only)" +#: config.py:773 +#, fuzzy +msgid "View 'Safe' personal.ini" +msgstr "zzEdit personal.ini" + +#: config.py:807 +msgid "Calibre Column Entry Names" +msgstr "" + +#: config.py:808 +msgid "Label (entry_name)" +msgstr "" + # %(rl)s = Reading List. Keep as is. -#: config.py:690 +#: config.py:828 msgid "" "These settings provide integration with the %(rl)s Plugin. %(rl)s can " "automatically send to devices and change custom columns. You have to create " @@ -545,34 +660,34 @@ msgstr "" "automatically send to devices and change custom columns. You have to create " "and configure the lists in %(rl)s to be useful." -#: config.py:695 +#: config.py:833 msgid "Add new/updated stories to \"Send to Device\" Reading List(s)." msgstr "zzAdd new/updated stories to \"Send to Device\" Reading List(s)." # %(rl)s = Reading List. Keep as is. -#: config.py:696 +#: config.py:834 msgid "" "Automatically add new/updated stories to these lists in the %(rl)s plugin." msgstr "" "zzAutomatically add new/updated stories to these lists in the %(rl)s plugin." -#: config.py:701 +#: config.py:839 msgid "\"Send to Device\" Reading Lists" msgstr "zz\"Send to Device\" Reading Lists" -#: config.py:702 config.py:705 config.py:719 config.py:722 +#: config.py:840 config.py:843 config.py:857 config.py:860 msgid "" "When enabled, new/updated stories will be automatically added to these lists." msgstr "" "zzWhen enabled, new/updated stories will be automatically added to these " "lists." -#: config.py:712 +#: config.py:850 msgid "Add new/updated stories to \"To Read\" Reading List(s)." msgstr "zzAdd new/updated stories to \"To Read\" Reading List(s)." # %(rl)s = Reading List. Keep as is. -#: config.py:713 +#: config.py:851 msgid "" "Automatically add new/updated stories to these lists in the %(rl)s plugin.\n" "Also offers menu option to remove stories from the \"To Read\" lists." @@ -581,18 +696,18 @@ msgstr "" "plugin.\n" "Also offers menu option to remove stories from the \"To Read\" lists." -#: config.py:718 +#: config.py:856 msgid "\"To Read\" Reading Lists" msgstr "zz\"To Read\" Reading Lists" -#: config.py:729 +#: config.py:867 msgid "" "Add stories back to \"Send to Device\" Reading List(s) when marked \"Read\"." msgstr "" "zzAdd stories back to \"Send to Device\" Reading List(s) when marked \"Read" "\"." -#: config.py:730 +#: config.py:868 msgid "" "Menu option to remove from \"To Read\" lists will also add stories back to " "\"Send to Device\" Reading List(s)" @@ -600,7 +715,21 @@ msgstr "" "zzMenu option to remove from \"To Read\" lists will also add stories back to " "\"Send to Device\" Reading List(s)" -#: config.py:758 +#: config.py:872 +msgid "" +"Automatically run Remove \"New\" Chapter Marks when marking books \"Read\"." +msgstr "" + +#: config.py:873 +#, fuzzy +msgid "" +"Menu option to remove from \"To Read\" lists will also remove \"(new)\" " +"chapter marks created by personal.ini mark_new_chapters setting." +msgstr "" +"zzMenu option to remove from \"To Read\" lists will also add stories back to " +"\"Send to Device\" Reading List(s)" + +#: config.py:901 msgid "" "The Calibre cover image for a downloaded book can come from the story site" "(if EPUB and images are enabled), or from either Calibre's built-in random " @@ -610,7 +739,7 @@ msgstr "" "(if EPUB and images are enabled), or from either Calibre's built-in random " "cover generator or the %(gc)s plugin." -#: config.py:766 +#: config.py:909 #, fuzzy msgid "" "Update Calibre book cover image from EPUB when Calibre metadata is updated.\n" @@ -623,11 +752,11 @@ msgstr "" "only.)\n" "Doesn't go looking for new images on 'Update Calibre Metadata Only'." -#: config.py:771 +#: config.py:914 msgid "Update Calibre Cover (from EPUB):" msgstr "zzUpdate Calibre Cover (from EPUB):" -#: config.py:789 +#: config.py:932 msgid "" "Generate a Calibre book cover image when Calibre metadata is updated.
Defaults to 'Yes, Always' for backward compatibility and because %(gc)s" @@ -637,23 +766,23 @@ msgstr "" ">Defaults to 'Yes, Always' for backward compatibility and because %(gc)s" "(Plugin) will only run if configured for Default or site." -#: config.py:793 +#: config.py:936 msgid "Generate Calibre Cover:" msgstr "zzGenerate Calibre Cover:" -#: config.py:820 +#: config.py:963 msgid "Plugin %(gc)s" msgstr "zzPlugin %(gc)s" -#: config.py:821 +#: config.py:964 msgid "Use plugin to create covers. Additional settings are below." msgstr "zzUse plugin to create covers. Additional settings are below." -#: config.py:828 +#: config.py:971 msgid "Calibre Generate Cover" msgstr "zzCalibre Generate Cover" -#: config.py:829 +#: config.py:972 msgid "" "Call Calibre's Edit Metadata Generate cover feature to create a random cover " "each time a story is downloaded or updated.
Right click or long click " @@ -664,22 +793,22 @@ msgstr "" "click the 'Generate cover' button in Calibre's Edit Metadata to customize." # %(gc)s = Generate Cover. Keep as is. -#: config.py:843 +#: config.py:986 msgid "Generate Covers Only for New Books" msgstr "zzGenerate Covers Only for New Books" -#: config.py:844 +#: config.py:987 #, fuzzy msgid "" "Default is to generate a cover any time the calibre metadata is updated.
Used for both Calibre and Plugin generated covers." msgstr "zzDefault is to run GC any time the calibre metadata is updated." -#: config.py:850 +#: config.py:993 msgid "Inject/update the cover inside EPUB" msgstr "zzInject/update the cover inside EPUB" -#: config.py:851 +#: config.py:994 #, fuzzy msgid "" "Calibre's Polish feature will be used to inject or update the generated " @@ -689,12 +818,12 @@ msgstr "" "zzCalibre's Polish feature will be used to inject or update the generated " "cover into the ebook, EPUB only." -#: config.py:857 +#: config.py:1000 msgid "%(gc)s(Plugin) Settings" msgstr "zz%(gc)s(Plugin) Settings" # %(gc)s = Generate Cover. Keep as is. -#: config.py:865 +#: config.py:1008 #, fuzzy msgid "" "The %(gc)s plugin can create cover images for books using various metadata " @@ -706,12 +835,12 @@ msgstr "" "and configurations. If you have GC installed, FFDL can run GC on new " "downloads and metadata updates. Pick a GC setting by site or Default." -#: config.py:883 config.py:887 config.py:900 +#: config.py:1026 config.py:1030 config.py:1043 msgid "Default" msgstr "zzDefault" # %(gc)s = Generate Cover. Keep as is. -#: config.py:888 +#: config.py:1031 #, fuzzy msgid "" "On Metadata update, run %(gc)s with this setting, if there isn't a more " @@ -721,16 +850,16 @@ msgstr "" "specific site." # %(gc)s = Generate Cover. Keep as is. -#: config.py:891 +#: config.py:1034 msgid "On Metadata update, run %(gc)s with this setting for %(site)s stories." msgstr "" "zzOn Metadata update, run %(gc)s with this setting for %(site)s stories." -#: config.py:914 +#: config.py:1057 msgid "Allow %(gcset)s from %(pini)s to override" msgstr "zzAllow %(gcset)s from %(pini)s to override" -#: config.py:915 +#: config.py:1058 #, fuzzy msgid "" "The %(pini)s parameter %(gcset)s allows you to choose a %(gc)s setting based " @@ -741,7 +870,7 @@ msgstr "" "on metadata rather than site, but it's much more complex.
%(gcset)s is " "ignored when this is off." -#: config.py:953 +#: config.py:1096 msgid "" "These settings provide integration with the %(cp)s Plugin. %(cp)s can " "automatically update custom columns with page, word and reading level " @@ -751,7 +880,7 @@ msgstr "" "automatically update custom columns with page, word and reading level " "statistics. You have to create and configure the columns in %(cp)s first." -#: config.py:958 +#: config.py:1101 msgid "" "If any of the settings below are checked, when stories are added or updated, " "the %(cp)s Plugin will be called to update the checked statistics." @@ -759,11 +888,11 @@ msgstr "" "zzIf any of the settings below are checked, when stories are added or " "updated, the %(cp)s Plugin will be called to update the checked statistics." -#: config.py:964 +#: config.py:1107 msgid "Which column and algorithm to use are configured in %(cp)s." msgstr "zzWhich column and algorithm to use are configured in %(cp)s." -#: config.py:974 +#: config.py:1117 #, fuzzy msgid "" "Will overwrite word count from FanFicFare metadata if set to update the same " @@ -772,7 +901,7 @@ msgstr "" "zzWill overwrite word count from FFDL metadata if set to update the same " "custom column." -#: config.py:979 +#: config.py:1122 msgid "" "Only run Count Page's Word Count if checked and FanFicFare metadata " "doesn't already have a word count. If this is used with one of the other " @@ -782,7 +911,7 @@ msgstr "" "doesn't already have a word count. If this is used with one of the other " "Page Counts, the Page Count plugin will be called twice." -#: config.py:1015 +#: config.py:1158 #, fuzzy msgid "" "These controls aren't plugin settings as such, but convenience buttons for " @@ -793,159 +922,159 @@ msgstr "" "setting Keyboard shortcuts and getting all the FanFictionDownLoader " "confirmation dialogs back again." -#: config.py:1020 +#: config.py:1163 msgid "Keyboard shortcuts..." msgstr "zzKeyboard shortcuts..." -#: config.py:1021 +#: config.py:1164 msgid "Edit the keyboard shortcuts associated with this plugin" msgstr "zzEdit the keyboard shortcuts associated with this plugin" -#: config.py:1025 +#: config.py:1168 msgid "Reset disabled &confirmation dialogs" msgstr "zzReset disabled &confirmation dialogs" -#: config.py:1026 +#: config.py:1169 #, fuzzy msgid "Reset all show me again dialogs for the FanFicFare plugin" msgstr "zzReset all show me again dialogs for the FanFictionDownLoader plugin" -#: config.py:1030 +#: config.py:1173 msgid "&View library preferences..." msgstr "zz&View library preferences..." -#: config.py:1031 +#: config.py:1174 msgid "View data stored in the library database for this plugin" msgstr "zzView data stored in the library database for this plugin" -#: config.py:1042 +#: config.py:1185 msgid "Done" msgstr "zzDone" -#: config.py:1043 +#: config.py:1186 msgid "Confirmation dialogs have all been reset" msgstr "zzConfirmation dialogs have all been reset" -#: config.py:1091 +#: config.py:1234 msgid "Category" msgstr "zzCategory" -#: config.py:1092 +#: config.py:1235 msgid "Genre" msgstr "zzGenre" -#: config.py:1093 +#: config.py:1236 msgid "Language" msgstr "zzLanguage" -#: config.py:1094 fff_plugin.py:1204 fff_plugin.py:1402 fff_plugin.py:1432 +#: config.py:1237 fff_plugin.py:1464 fff_plugin.py:1663 fff_plugin.py:1693 msgid "Status" msgstr "zzStatus" -#: config.py:1095 +#: config.py:1238 msgid "Status:%(cmplt)s" msgstr "zzStatus:%(cmplt)s" -#: config.py:1096 +#: config.py:1239 msgid "Status:%(inprog)s" msgstr "zzStatus:%(inprog)s" -#: config.py:1097 config.py:1231 +#: config.py:1240 config.py:1388 msgid "Series" msgstr "zzSeries" -#: config.py:1098 +#: config.py:1241 msgid "Characters" msgstr "zzCharacters" -#: config.py:1099 +#: config.py:1242 msgid "Relationships" msgstr "zzRelationships" -#: config.py:1100 +#: config.py:1243 msgid "Published" msgstr "zzPublished" -#: config.py:1101 fff_plugin.py:1515 fff_plugin.py:1534 +#: config.py:1244 fff_plugin.py:1776 fff_plugin.py:1795 msgid "Updated" msgstr "zzUpdated" -#: config.py:1102 +#: config.py:1245 msgid "Created" msgstr "zzCreated" -#: config.py:1103 +#: config.py:1246 msgid "Rating" msgstr "zzRating" -#: config.py:1104 +#: config.py:1247 msgid "Warnings" msgstr "zzWarnings" -#: config.py:1105 +#: config.py:1248 msgid "Chapters" msgstr "zzChapters" -#: config.py:1106 +#: config.py:1249 msgid "Words" msgstr "zzWords" -#: config.py:1107 +#: config.py:1250 msgid "Site" msgstr "zzSite" -#: config.py:1108 +#: config.py:1251 msgid "Story ID" msgstr "zzStory ID" -#: config.py:1109 +#: config.py:1252 msgid "Author ID" msgstr "zzAuthor ID" -#: config.py:1110 +#: config.py:1253 msgid "Extra Tags" msgstr "zzExtra Tags" -#: config.py:1111 config.py:1223 dialogs.py:863 dialogs.py:959 -#: fff_plugin.py:1204 fff_plugin.py:1402 fff_plugin.py:1432 +#: config.py:1254 config.py:1380 dialogs.py:891 dialogs.py:987 +#: fff_plugin.py:1464 fff_plugin.py:1663 fff_plugin.py:1693 msgid "Title" msgstr "zzTitle" -#: config.py:1112 +#: config.py:1255 msgid "Story URL" msgstr "zzStory URL" -#: config.py:1113 +#: config.py:1256 msgid "Description" msgstr "zzDescription" -#: config.py:1114 dialogs.py:863 dialogs.py:959 fff_plugin.py:1204 -#: fff_plugin.py:1402 fff_plugin.py:1432 +#: config.py:1257 dialogs.py:891 dialogs.py:987 fff_plugin.py:1464 +#: fff_plugin.py:1663 fff_plugin.py:1693 msgid "Author" msgstr "zzAuthor" -#: config.py:1115 +#: config.py:1258 msgid "Author URL" msgstr "zzAuthor URL" -#: config.py:1116 +#: config.py:1259 msgid "File Format" msgstr "zzFile Format" -#: config.py:1117 +#: config.py:1260 msgid "File Extension" msgstr "zzFile Extension" -#: config.py:1118 +#: config.py:1261 msgid "Site Abbrev" msgstr "zzSite Abbrev" -#: config.py:1119 +#: config.py:1262 #, fuzzy msgid "FanFicFare Version" msgstr "zzFFDL Version" -#: config.py:1134 +#: config.py:1277 msgid "" "If you have custom columns defined, they will be listed below. Choose a " "metadata value type to fill your columns automatically." @@ -953,24 +1082,24 @@ msgstr "" "zzIf you have custom columns defined, they will be listed below. Choose a " "metadata value type to fill your columns automatically." -#: config.py:1159 +#: config.py:1302 msgid "Update this %s column(%s) with..." msgstr "zzUpdate this %s column(%s) with..." -#: config.py:1169 +#: config.py:1312 msgid "Values that aren't valid for this enumeration column will be ignored." msgstr "" "zzValues that aren't valid for this enumeration column will be ignored." -#: config.py:1169 config.py:1171 +#: config.py:1312 config.py:1314 msgid "Metadata values valid for this type of column." msgstr "zzMetadata values valid for this type of column." -#: config.py:1174 config.py:1250 +#: config.py:1317 config.py:1407 msgid "New Only" msgstr "zzNew Only" -#: config.py:1175 +#: config.py:1318 msgid "" "Write to %s(%s) only for new\n" "books, not updates to existing books." @@ -978,11 +1107,11 @@ msgstr "" "zzWrite to %s(%s) only for new\n" "books, not updates to existing books." -#: config.py:1186 +#: config.py:1329 msgid "Allow %(ccset)s from %(pini)s to override" msgstr "zzAllow %(ccset)s from %(pini)s to override" -#: config.py:1187 +#: config.py:1330 msgid "" "The %(pini)s parameter %(ccset)s allows you to set custom columns to site " "specific values that aren't common to all sites.
%(ccset)s is ignored " @@ -992,15 +1121,15 @@ msgstr "" "specific values that aren't common to all sites.
%(ccset)s is ignored " "when this is off." -#: config.py:1192 +#: config.py:1334 msgid "Special column:" msgstr "zzSpecial column:" -#: config.py:1197 +#: config.py:1339 msgid "Update/Overwrite Error Column:" msgstr "zzUpdate/Overwrite Error Column:" -#: config.py:1198 +#: config.py:1340 msgid "" "When an update or overwrite of an existing story fails, record the reason in " "this column.\n" @@ -1010,39 +1139,52 @@ msgstr "" "in this column.\n" "(Text and Long Text columns only.)" -#: config.py:1224 +#: config.py:1354 +#, fuzzy +msgid "Saved Metadata Column:" +msgstr "zzStandard Columns" + +#: config.py:1355 +msgid "" +"If set, FanFicFare will save a copy of all its metadata in this column when " +"the book is downloaded or updated.
The metadata from this column can " +"later be used to update custom columns without having to request the " +"metadata from the server again.
(Long Text columns only.)" +msgstr "" + +#: config.py:1381 msgid "Author(s)" msgstr "zzAuthor(s)" -#: config.py:1225 +#: config.py:1382 msgid "Publisher" msgstr "zzPublisher" -#: config.py:1226 +#: config.py:1383 msgid "Tags" msgstr "zzTags" -#: config.py:1227 +#: config.py:1384 msgid "Languages" msgstr "zzLanguages" -#: config.py:1228 +#: config.py:1385 msgid "Published Date" msgstr "zzPublished Date" -#: config.py:1229 +#: config.py:1386 msgid "Date" msgstr "zzDate" -#: config.py:1230 +#: config.py:1387 msgid "Comments" msgstr "zzComments" -#: config.py:1232 +#: config.py:1389 msgid "Ids(url id only)" msgstr "zzIds(url id only)" -#: config.py:1237 +#: config.py:1394 #, fuzzy msgid "" "The standard calibre metadata columns are listed below. You may choose " @@ -1053,7 +1195,7 @@ msgstr "" "whether FFDL will fill each column automatically on updates or only for new " "books." -#: config.py:1251 +#: config.py:1408 msgid "" "Write to %s only for new\n" "books, not updates to existing books." @@ -1061,7 +1203,21 @@ msgstr "" "zzWrite to %s only for new\n" "books, not updates to existing books." -#: config.py:1272 +#: config.py:1417 +#, fuzzy +msgid "Other Standard Column Options" +msgstr "zzStandard Columns" + +#: config.py:1422 +#, fuzzy +msgid "Set Calibre Author URL" +msgstr "zzAuthor URL" + +#: config.py:1423 +msgid "Set Calibre Author URL to Author's URL on story site." +msgstr "" + +#: config.py:1440 msgid "" "These settings will allow FanFicFare to fetch story URLs from your email " "account. It will only look for story URLs in unread emails in the folder " @@ -1071,19 +1227,19 @@ msgstr "" "account. It will only look for story URLs in unread emails in the folder " "specified below." -#: config.py:1277 +#: config.py:1445 msgid "IMAP Server Name" msgstr "zzIMAP Server Name" -#: config.py:1278 +#: config.py:1446 msgid "Name of IMAP server--must allow IMAP4 with SSL. Eg: imap.gmail.com" msgstr "zzName of IMAP server--must allow IMAP4 with SSL. Eg: imap.gmail.com" -#: config.py:1287 +#: config.py:1455 msgid "IMAP User Name" msgstr "zzIMAP User Name" -#: config.py:1288 +#: config.py:1456 msgid "" "Name of IMAP user. Eg: yourname@gmail.com\n" "Note that Gmail accounts need to have IMAP enabled in Gmail Settings first." @@ -1091,12 +1247,12 @@ msgstr "" "zzName of IMAP user. Eg: yourname@gmail.com\n" "Note that Gmail accounts need to have IMAP enabled in Gmail Settings first." -#: config.py:1297 +#: config.py:1465 #, fuzzy msgid "IMAP User Password" msgstr "zzUser/Password" -#: config.py:1298 +#: config.py:1466 msgid "" "IMAP password. If left empty, FanFicFare will ask you for your password " "when you use the feature." @@ -1104,11 +1260,11 @@ msgstr "" "zzIMAP password. If left empty, FanFicFare will ask you for your password " "when you use the feature." -#: config.py:1308 +#: config.py:1476 msgid "Remember Password for Session (when not saved above)" msgstr "zzRemember Password for Session (when not saved above)" -#: config.py:1309 +#: config.py:1477 msgid "" "If checked, and no password is entered above, FanFicFare will remember your " "password until you close calibre or change Libraries." @@ -1116,11 +1272,11 @@ msgstr "" "zzIf checked, and no password is entered above, FanFicFare will remember " "your password until you close calibre or change Libraries." -#: config.py:1314 +#: config.py:1482 msgid "IMAP Folder Name" msgstr "zzIMAP Folder Name" -#: config.py:1315 +#: config.py:1483 msgid "" "Name of IMAP folder to search for new emails. The folder (or label) has to " "already exist. Use INBOX for your default inbox." @@ -1128,11 +1284,11 @@ msgstr "" "zzName of IMAP folder to search for new emails. The folder (or label) has " "to already exist. Use INBOX for your default inbox." -#: config.py:1324 +#: config.py:1492 msgid "Mark Emails Read" msgstr "zzMark Emails Read" -#: config.py:1325 +#: config.py:1493 msgid "" "If checked, emails will be marked as having been read if they contain any " "story URLs." @@ -1140,7 +1296,30 @@ msgstr "" "zzIf checked, emails will be marked as having been read if they contain any " "story URLs." -#: config.py:1330 +#: config.py:1498 +#, fuzzy +msgid "Discard URLs on Reject List" +msgstr "zzGet URLs for Reject List" + +#: config.py:1499 +msgid "" +"If checked, FanFicFare will silently discard story URLs from emails that are " +"on your Reject URL List.
Otherwise they will appear and you will see the " +"normal Reject URL dialog.
The Emails will still be marked Read if " +"configured to." +msgstr "" + +#: config.py:1504 +msgid "Download from Email Immediately" +msgstr "" + +#: config.py:1505 +msgid "" +"If checked, FanFicFare will start downloading story URLs from emails " +"immediately.
Otherwise the usual Download from URLs dialog will appear." +msgstr "" + +#: config.py:1510 msgid "" "It's safest if you create a separate email account that you use only for " "your story update notices. FanFicFare and calibre cannot guarantee that " @@ -1152,53 +1331,25 @@ msgstr "" "malicious code cannot get your email password once you've entered it. " "
Use this feature at your own risk.
" -#: dialogs.py:76 -msgid "Skip" -msgstr "zzSkip" - -#: dialogs.py:77 -msgid "Add New Book" -msgstr "zzAdd New Book" - -#: dialogs.py:78 -msgid "Update EPUB if New Chapters" -msgstr "zzUpdate EPUB if New Chapters" - -#: dialogs.py:79 -msgid "Update EPUB Always" -msgstr "zzUpdate EPUB Always" - -#: dialogs.py:80 -msgid "Overwrite if Newer" -msgstr "zzOverwrite if Newer" - -#: dialogs.py:81 -msgid "Overwrite Always" -msgstr "zzOverwrite Always" - -#: dialogs.py:82 -msgid "Update Calibre Metadata Only" -msgstr "zzUpdate Calibre Metadata Only" - -#: dialogs.py:263 dialogs.py:762 +#: dialogs.py:244 dialogs.py:771 msgid "Show Download Options" msgstr "zzShow Download Options" -#: dialogs.py:282 dialogs.py:779 +#: dialogs.py:263 dialogs.py:791 msgid "Output &Format:" msgstr "zzOutput &Format:" -#: dialogs.py:290 dialogs.py:787 +#: dialogs.py:271 dialogs.py:799 msgid "" "Choose output format to create. May set default from plugin configuration." msgstr "" "zzChoose output format to create. May set default from plugin configuration." -#: dialogs.py:318 dialogs.py:804 +#: dialogs.py:299 dialogs.py:819 msgid "Update Calibre &Metadata?" msgstr "zzUpdate Calibre &Metadata?" -#: dialogs.py:319 dialogs.py:805 +#: dialogs.py:300 dialogs.py:820 msgid "" "Update metadata for existing stories in Calibre from web site?\n" "(Columns set to 'New Only' in the column tabs will only be set for new " @@ -1208,11 +1359,11 @@ msgstr "" "(Columns set to 'New Only' in the column tabs will only be set for new " "books.)" -#: dialogs.py:325 dialogs.py:809 +#: dialogs.py:306 dialogs.py:824 msgid "Update EPUB Cover?" msgstr "zzUpdate EPUB Cover?" -#: dialogs.py:326 dialogs.py:810 +#: dialogs.py:307 dialogs.py:825 msgid "" "Update book cover image from site or defaults (if found) inside the " "EPUB when EPUB is updated." @@ -1220,12 +1371,12 @@ msgstr "" "zzUpdate book cover image from site or defaults (if found) inside the " "EPUB when EPUB is updated." -#: dialogs.py:373 +#: dialogs.py:369 #, fuzzy msgid "Story URLs for anthology, one per line:" msgstr "zzStory URL(s) for anthology, one per line:" -#: dialogs.py:374 +#: dialogs.py:370 msgid "" "URLs for stories to include in the anthology, one per line.\n" "Will take URLs from clipboard, but only valid URLs." @@ -1233,11 +1384,11 @@ msgstr "" "zzURLs for stories to include in the anthology, one per line.\n" "Will take URLs from clipboard, but only valid URLs." -#: dialogs.py:375 +#: dialogs.py:371 msgid "If Story Already Exists in Anthology?" msgstr "zzIf Story Already Exists in Anthology?" -#: dialogs.py:376 +#: dialogs.py:372 msgid "" "What to do if there's already an existing story with the same URL in the " "anthology." @@ -1245,12 +1396,12 @@ msgstr "" "zzWhat to do if there's already an existing story with the same URL in the " "anthology." -#: dialogs.py:385 +#: dialogs.py:381 #, fuzzy msgid "Story URLs, one per line:" msgstr "zzStory URL(s), one per line:" -#: dialogs.py:386 +#: dialogs.py:382 msgid "" "URLs for stories, one per line.\n" "Will take URLs from clipboard, but only valid URLs.\n" @@ -1260,11 +1411,11 @@ msgstr "" "Will take URLs from clipboard, but only valid URLs.\n" "Add [1,5] after the URL to limit the download to chapters 1-5." -#: dialogs.py:387 +#: dialogs.py:383 msgid "If Story Already Exists?" msgstr "zzIf Story Already Exists?" -#: dialogs.py:388 +#: dialogs.py:384 msgid "" "What to do if there's already an existing story with the same URL or title " "and author." @@ -1272,19 +1423,19 @@ msgstr "" "zzWhat to do if there's already an existing story with the same URL or title " "and author." -#: dialogs.py:498 +#: dialogs.py:504 msgid "For Individual Books" msgstr "zzFor Individual Books" -#: dialogs.py:499 +#: dialogs.py:505 msgid "Get URLs and go to dialog for individual story downloads." msgstr "zzGet URLs and go to dialog for individual story downloads." -#: dialogs.py:504 +#: dialogs.py:510 msgid "For Anthology Epub" msgstr "zzFor Anthology Epub" -#: dialogs.py:505 +#: dialogs.py:511 msgid "" "Get URLs and go to dialog for Anthology download.\n" "Requires %s plugin." @@ -1292,142 +1443,153 @@ msgstr "" "zzGet URLs and go to dialog for Anthology download.\n" "Requires %s plugin." -#: dialogs.py:509 dialogs.py:563 dialogs.py:590 dialogs.py:1470 +#: dialogs.py:515 dialogs.py:569 dialogs.py:596 dialogs.py:1502 msgid "Cancel" msgstr "zzCancel" -#: dialogs.py:541 dialogs.py:1458 +#: dialogs.py:547 dialogs.py:1490 msgid "Password" msgstr "zzPassword" -#: dialogs.py:542 +#: dialogs.py:548 msgid "Author requires a password for this story(%s)." msgstr "zzAuthor requires a password for this story(%s)." -#: dialogs.py:547 +#: dialogs.py:553 msgid "User/Password" msgstr "zzUser/Password" -#: dialogs.py:548 +#: dialogs.py:554 msgid "%s requires you to login to download this story." msgstr "zz%s requires you to login to download this story." -#: dialogs.py:550 +#: dialogs.py:556 msgid "User:" msgstr "zzUser:" -#: dialogs.py:554 +#: dialogs.py:560 msgid "Password:" msgstr "zzPassword:" -#: dialogs.py:559 dialogs.py:704 dialogs.py:1466 +#: dialogs.py:565 dialogs.py:713 dialogs.py:1498 msgid "OK" msgstr "zzOK" -#: dialogs.py:585 +#: dialogs.py:591 fff_plugin.py:958 msgid "Fetching metadata for stories..." msgstr "zzFetching metadata for stories..." -#: dialogs.py:586 +#: dialogs.py:592 fff_plugin.py:959 msgid "Downloading metadata for stories" msgstr "zzDownloading metadata for stories" -#: dialogs.py:587 +#: dialogs.py:593 fff_plugin.py:960 msgid "Fetched metadata for" msgstr "zzFetched metadata for" -#: dialogs.py:614 +#: dialogs.py:623 msgid " - %s estimated until done" msgstr " - zz %s estimated until done" -#: dialogs.py:664 +#: dialogs.py:673 msgid "%d day" msgstr "%d zzday" -#: dialogs.py:664 +#: dialogs.py:673 msgid "%d days" msgstr "%d zzdays" -#: dialogs.py:665 +#: dialogs.py:674 msgid "%d hour" msgstr "%d zzhour" -#: dialogs.py:665 +#: dialogs.py:674 msgid "%d hours" msgstr "%d zzhours" -#: dialogs.py:666 +#: dialogs.py:675 msgid "%d minute" msgstr "%d zzminute" -#: dialogs.py:666 +#: dialogs.py:675 msgid "%d minutes" msgstr "%d zzminutes" -#: dialogs.py:667 +#: dialogs.py:676 msgid "%d second" msgstr "%d zzsecond" -#: dialogs.py:667 +#: dialogs.py:676 msgid "%d seconds" msgstr "%d zzseconds" -#: dialogs.py:682 +#: dialogs.py:691 msgid "less than 1 second" msgstr "zzless than 1 second" -#: dialogs.py:699 fff_plugin.py:341 fff_plugin.py:344 +#: dialogs.py:708 fff_plugin.py:381 fff_plugin.py:384 #, fuzzy msgid "About FanFicFare" msgstr "zzAbout FanFictionDownLoader" -#: dialogs.py:753 +#: dialogs.py:762 msgid "Remove selected books from the list" msgstr "zzRemove selected books from the list" -#: dialogs.py:792 +#: dialogs.py:804 msgid "Update Mode:" msgstr "zzUpdate Mode:" -#: dialogs.py:795 +#: dialogs.py:807 msgid "" "What sort of update to perform. May set default from plugin configuration." msgstr "" "zzWhat sort of update to perform. May set default from plugin configuration." -#: dialogs.py:863 fff_plugin.py:1204 fff_plugin.py:1402 fff_plugin.py:1432 +#: dialogs.py:829 +msgid "Background Metadata?" +msgstr "" + +#: dialogs.py:830 +msgid "" +"Collect Metadata from sites in a Background process.
This returns " +"control to you quicker while updating, but you won't be asked for username/" +"passwords or if you are an adult--stories that need those will just fail." +msgstr "" + +#: dialogs.py:891 fff_plugin.py:1464 fff_plugin.py:1663 fff_plugin.py:1693 msgid "Comment" msgstr "zzComment" -#: dialogs.py:931 +#: dialogs.py:959 msgid "Are you sure you want to remove this book from the list?" msgstr "zzAre you sure you want to remove this book from the list?" -#: dialogs.py:933 +#: dialogs.py:961 msgid "Are you sure you want to remove the selected %d books from the list?" msgstr "zzAre you sure you want to remove the selected %d books from the list?" -#: dialogs.py:959 +#: dialogs.py:987 msgid "Note" msgstr "zzNote" -#: dialogs.py:998 +#: dialogs.py:1026 msgid "Select or Edit Reject Note." msgstr "zzSelect or Edit Reject Note." -#: dialogs.py:1007 +#: dialogs.py:1035 msgid "Are you sure you want to remove this URL from the list?" msgstr "zzAre you sure you want to remove this URL from the list?" -#: dialogs.py:1009 +#: dialogs.py:1037 msgid "Are you sure you want to remove the %d selected URLs from the list?" msgstr "zzAre you sure you want to remove the %d selected URLs from the list?" -#: dialogs.py:1027 +#: dialogs.py:1055 msgid "List of Books to Reject" msgstr "zzList of Books to Reject" -#: dialogs.py:1040 +#: dialogs.py:1068 #, fuzzy msgid "" "FFF will remember these URLs and display the note and offer to reject them " @@ -1436,41 +1598,41 @@ msgstr "" "zzFFDL will remember these URLs and display the note and offer to reject " "them if you try to download them again later." -#: dialogs.py:1054 +#: dialogs.py:1082 #, fuzzy msgid "Remove selected URLs from the list" msgstr "zzRemove selected URL(s) from the list" -#: dialogs.py:1069 dialogs.py:1073 +#: dialogs.py:1097 dialogs.py:1101 msgid "This will be added to whatever note you've set for each URL above." msgstr "zzThis will be added to whatever note you've set for each URL above." -#: dialogs.py:1083 +#: dialogs.py:1111 msgid "Delete Books (including books without FanFiction URLs)?" msgstr "zzDelete Books (including books without FanFiction URLs)?" -#: dialogs.py:1084 +#: dialogs.py:1112 msgid "Delete the selected books after adding them to the Rejected URLs list." msgstr "" "zzDelete the selected books after adding them to the Rejected URLs list." -#: dialogs.py:1238 +#: dialogs.py:1268 msgid "Search for string in edit box." msgstr "zzSearch for string in edit box." -#: dialogs.py:1241 +#: dialogs.py:1271 msgid "Find:" msgstr "zzFind:" -#: dialogs.py:1246 +#: dialogs.py:1276 msgid "Find" msgstr "zzFind" -#: dialogs.py:1256 +#: dialogs.py:1286 msgid "Case sensitive" msgstr "zzCase sensitive" -#: dialogs.py:1257 +#: dialogs.py:1287 msgid "" "Search for case sensitive string; don't treat Harry, HARRY and harry all the " "same." @@ -1478,207 +1640,258 @@ msgstr "" "zzSearch for case sensitive string; don't treat Harry, HARRY and harry all " "the same." -#: dialogs.py:1286 +#: dialogs.py:1316 msgid "Go back to fix errors?" msgstr "zzGo back to fix errors?" -#: dialogs.py:1398 +#: dialogs.py:1428 msgid "Click an error below to return to Editing directly on that line:" msgstr "zzClick an error below to return to Editing directly on that line:" -#: dialogs.py:1410 +#: dialogs.py:1442 msgid "Click to go to line %s" msgstr "zzClick to go to line %s" -#: dialogs.py:1426 +#: dialogs.py:1458 msgid "Return to Editing" msgstr "zzReturn to Editing" -#: dialogs.py:1430 +#: dialogs.py:1462 #, fuzzy msgid "Save Anyway" msgstr "zzUpdate anyway?" -#: dialogs.py:1459 +#: dialogs.py:1491 msgid "Enter Email Password for %s:" msgstr "zzEnter Email Password for %s:" -#: fff_plugin.py:97 fff_plugin.py:128 +#: fff_plugin.py:131 fff_plugin.py:162 msgid "FanFicFare" msgstr "zzFanFicFare" -#: fff_plugin.py:98 +#: fff_plugin.py:132 msgid "Download FanFiction stories from various web sites" msgstr "zzDownload FanFiction stories from various web sites" -#: fff_plugin.py:259 +#: fff_plugin.py:293 #, fuzzy msgid "&Download from URLs" msgstr "zz&Add New from URL(s)" -#: fff_plugin.py:261 +#: fff_plugin.py:295 #, fuzzy msgid "Download FanFiction Books from URLs" msgstr "zzDownload FanFiction Book" -#: fff_plugin.py:264 +#: fff_plugin.py:298 #, fuzzy msgid "&Update Existing FanFiction Books" msgstr "zz&Update Existing FanFiction Book(s)" -#: fff_plugin.py:269 +#: fff_plugin.py:303 #, fuzzy msgid "Get Story URLs from &Email" msgstr "zzGet Story URLs from Web Page" -#: fff_plugin.py:273 fff_plugin.py:447 +#: fff_plugin.py:307 fff_plugin.py:522 msgid "Get Story URLs from Web Page" msgstr "zzGet Story URLs from Web Page" -#: fff_plugin.py:279 -#, fuzzy +#: fff_plugin.py:313 msgid "&Make Anthology Epub from URLs" -msgstr "zz&Make Anthology Epub Manually from URL(s)" +msgstr "zz&Make Anthology Epub from URLs" -#: fff_plugin.py:281 +#: fff_plugin.py:315 #, fuzzy msgid "Make FanFiction Anthology Epub from URLs" msgstr "zzMake FanFiction Anthology Epub Manually from URL(s)" -#: fff_plugin.py:284 +#: fff_plugin.py:318 #, fuzzy msgid "Make Anthology Epub from Web Page" msgstr "zz&Make Anthology Epub Manually from URL(s)" -#: fff_plugin.py:286 +#: fff_plugin.py:320 #, fuzzy msgid "Make FanFiction Anthology Epub from Web Page" msgstr "zzMake FanFiction Anthology Epub Manually from URL(s)" -#: fff_plugin.py:289 +#: fff_plugin.py:323 #, fuzzy msgid "Update Anthology Epub" msgstr "zz&Update Anthology Epub" -#: fff_plugin.py:291 +#: fff_plugin.py:325 msgid "Update FanFiction Anthology Epub" msgstr "zzUpdate FanFiction Anthology Epub" -#: fff_plugin.py:298 +#: fff_plugin.py:332 #, fuzzy msgid "Mark Unread: Add to \"To Read\" and \"Send to Device\" Lists" msgstr "zzAdd to \"To Read\" and \"Send to Device\" Lists" -#: fff_plugin.py:300 +#: fff_plugin.py:334 #, fuzzy msgid "Mark Read: Remove from \"To Read\" and add to \"Send to Device\" Lists" msgstr "zzRemove from \"To Read\" and add to \"Send to Device\" Lists" -#: fff_plugin.py:302 fff_plugin.py:307 +#: fff_plugin.py:336 fff_plugin.py:341 #, fuzzy msgid "Mark Read: Remove from \"To Read\" Lists" msgstr "zzRemove from \"To Read\" Lists" -#: fff_plugin.py:304 +#: fff_plugin.py:338 #, fuzzy msgid "Add to \"Send to Device\" Lists" msgstr "zzAdd Selected to \"Send to Device\" Lists" -#: fff_plugin.py:306 +#: fff_plugin.py:340 #, fuzzy msgid "Mark Unread: Add to \"To Read\" Lists" msgstr "zzAdd to \"To Read\" Lists" -#: fff_plugin.py:322 +#: fff_plugin.py:356 +#, fuzzy +msgid "Remove \"New\" Chapter Marks from Selected books" +msgstr "zzGet URLs from Selected Books" + +#: fff_plugin.py:362 #, fuzzy msgid "Get Story URLs from Selected Books" msgstr "zzGet URLs from Selected Books" -#: fff_plugin.py:327 +#: fff_plugin.py:367 msgid "Reject Selected Books" msgstr "zzReject Selected Books" -#: fff_plugin.py:335 +#: fff_plugin.py:375 #, fuzzy msgid "&Configure FanFicFare" msgstr "zzConfigure FanFictionDownLoader" -#: fff_plugin.py:338 +#: fff_plugin.py:378 #, fuzzy msgid "Configure FanFicFare" msgstr "zzConfigure FanFictionDownLoader" -#: fff_plugin.py:393 +#: fff_plugin.py:433 msgid "Cannot Update Reading Lists from Device View" msgstr "zzCannot Update Reading Lists from Device View" -#: fff_plugin.py:397 +#: fff_plugin.py:437 msgid "No Selected Books to Update Reading Lists" msgstr "zzNo Selected Books to Update Reading Lists" -#: fff_plugin.py:405 +#: fff_plugin.py:447 msgid "FanFicFare Email Settings are not configured." msgstr "zzFanFicFare Email Settings are not configured." -#: fff_plugin.py:433 +#: fff_plugin.py:467 #, fuzzy -msgid "Get Story URLs from Email" +msgid "Fetching Story URLs from Email..." msgstr "zzGet Story URLs from Web Page" -#: fff_plugin.py:434 +#: fff_plugin.py:483 fff_plugin.py:505 #, fuzzy msgid "No Valid Story URLs Found in Unread Emails." msgstr "zzNo Valid Story URLs found on given page." -#: fff_plugin.py:460 fff_plugin.py:512 +#: fff_plugin.py:499 +#, fuzzy +msgid "Finished Fetching Story URLs from Email." +msgstr "zzGet Story URLs from Web Page" + +#: fff_plugin.py:507 +#, fuzzy +msgid "(%d Story URLs Skipped, on Rejected URL List)" +msgstr "zzStory on Reject URLs list (%s)." + +#: fff_plugin.py:508 +#, fuzzy +msgid "Get Story URLs from Email" +msgstr "zzGet Story URLs from Web Page" + +#: fff_plugin.py:531 +#, fuzzy +msgid "Fetching Story URLs from Page..." +msgstr "zzGet Story URLs from Web Page" + +#: fff_plugin.py:535 +#, fuzzy +msgid "Finished Fetching Story URLs from Page." +msgstr "zzGet Story URLs from Web Page" + +#: fff_plugin.py:541 fff_plugin.py:594 msgid "List of Story URLs" msgstr "zzList of Story URLs" -#: fff_plugin.py:461 +#: fff_plugin.py:542 msgid "No Valid Story URLs found on given page." msgstr "zzNo Valid Story URLs found on given page." -#: fff_plugin.py:476 +#: fff_plugin.py:558 fff_plugin.py:611 msgid "No Selected Books to Get URLs From" msgstr "zzNo Selected Books to Get URLs From" -#: fff_plugin.py:494 +#: fff_plugin.py:576 msgid "Collecting URLs for stories..." msgstr "zzCollecting URLs for stories..." -#: fff_plugin.py:495 +#: fff_plugin.py:577 msgid "Get URLs for stories" msgstr "zzGet URLs for stories" -#: fff_plugin.py:496 fff_plugin.py:543 fff_plugin.py:730 +#: fff_plugin.py:578 fff_plugin.py:690 fff_plugin.py:883 msgid "URL retrieved" msgstr "zzURL retrieved" -#: fff_plugin.py:516 +#: fff_plugin.py:598 msgid "List of URLs" msgstr "zzList of URLs" -#: fff_plugin.py:517 +#: fff_plugin.py:599 msgid "No Story URLs found in selected books." msgstr "zzNo Story URLs found in selected books." -#: fff_plugin.py:533 +#: fff_plugin.py:606 +msgid "Can only UnNew books in library" +msgstr "" + +#: fff_plugin.py:623 +#, fuzzy +msgid "UnNewing books..." +msgstr "zzMerging %s books." + +#: fff_plugin.py:624 +#, fuzzy +msgid "UnNew Books" +msgstr "zzAdd New Book" + +#: fff_plugin.py:625 +msgid "Books UnNewed" +msgstr "" + +#: fff_plugin.py:665 fff_plugin.py:1622 +msgid "Starting auto conversion of %d books." +msgstr "zzStarting auto conversion of %d books." + +#: fff_plugin.py:680 msgid "No Selected Books have URLs to Reject" msgstr "zzNo Selected Books have URLs to Reject" -#: fff_plugin.py:541 +#: fff_plugin.py:688 msgid "Collecting URLs for Reject List..." msgstr "zzCollecting URLs for Reject List..." -#: fff_plugin.py:542 +#: fff_plugin.py:689 msgid "Get URLs for Reject List" msgstr "zzGet URLs for Reject List" -#: fff_plugin.py:577 +#: fff_plugin.py:724 msgid "Proceed to Remove?" msgstr "zzProceed to Remove?" -#: fff_plugin.py:577 +#: fff_plugin.py:724 #, fuzzy msgid "" "Rejecting FanFicFare URLs: None of the books selected have FanFiction URLs." @@ -1686,27 +1899,27 @@ msgstr "" "zzRejecting FFDL URLs: None of the books selected have FanFiction URLs." # %s = EpubMerge -#: fff_plugin.py:599 +#: fff_plugin.py:746 msgid "Cannot Make Anthologys without %s" msgstr "zzCannot Make Anthologys without %s" -#: fff_plugin.py:603 fff_plugin.py:707 +#: fff_plugin.py:750 fff_plugin.py:860 msgid "Cannot Update Books from Device View" msgstr "zzCannot Update Books from Device View" -#: fff_plugin.py:607 +#: fff_plugin.py:754 msgid "Can only update 1 anthology at a time" msgstr "zzCan only update 1 anthology at a time" -#: fff_plugin.py:616 +#: fff_plugin.py:763 msgid "Can only Update Epub Anthologies" msgstr "zzCan only Update Epub Anthologies" -#: fff_plugin.py:634 fff_plugin.py:635 +#: fff_plugin.py:781 fff_plugin.py:782 msgid "Cannot Update Anthology" msgstr "zzCannot Update Anthology" -#: fff_plugin.py:635 +#: fff_plugin.py:782 #, fuzzy msgid "" "Book isn't an FanFicFare Anthology or contains book(s) without valid Story " @@ -1714,7 +1927,16 @@ msgid "" msgstr "" "zzBook isn't an FFDL Anthology or contains book(s) without valid FFDL URLs." -#: fff_plugin.py:693 +#: fff_plugin.py:789 +#, fuzzy +msgid "Fetching Story URLs for Series..." +msgstr "zzCollecting URLs for stories..." + +#: fff_plugin.py:799 +msgid "Finished Fetching Story URLs for Series." +msgstr "" + +#: fff_plugin.py:846 msgid "" "There are %d stories in the current anthology that are not going to " "be kept if you go ahead." @@ -1722,91 +1944,110 @@ msgstr "" "zzThere are %d stories in the current anthology that are not going to " "be kept if you go ahead." -#: fff_plugin.py:694 +#: fff_plugin.py:847 msgid "Story URLs that will be removed:" msgstr "zzStory URLs that will be removed:" -#: fff_plugin.py:696 +#: fff_plugin.py:849 msgid "Update anyway?" msgstr "zzUpdate anyway?" -#: fff_plugin.py:697 +#: fff_plugin.py:850 msgid "Stories Removed" msgstr "zzStories Removed" -#: fff_plugin.py:714 +#: fff_plugin.py:867 msgid "No Selected Books to Update" msgstr "zzNo Selected Books to Update" -#: fff_plugin.py:728 +#: fff_plugin.py:881 msgid "Collecting stories for update..." msgstr "zzCollecting stories for update..." -#: fff_plugin.py:729 +#: fff_plugin.py:882 msgid "Get stories for updates" msgstr "zzGet stories for updates" -#: fff_plugin.py:739 +#: fff_plugin.py:892 msgid "Update Existing List" msgstr "zzUpdate Existing List" -#: fff_plugin.py:797 +#: fff_plugin.py:952 +#, fuzzy +msgid "Start queuing downloading for %s stories." +msgstr "zzStarted fetching metadata for %s stories." + +#: fff_plugin.py:953 +#, fuzzy +msgid "Queuing download for stories..." +msgstr "zzFetching metadata for stories..." + +#: fff_plugin.py:954 +#, fuzzy +msgid "Queuing download for stories" +msgstr "zzDownloading metadata for stories" + +#: fff_plugin.py:955 +msgid "Queued download for" +msgstr "" + +#: fff_plugin.py:957 msgid "Started fetching metadata for %s stories." msgstr "zzStarted fetching metadata for %s stories." -#: fff_plugin.py:803 +#: fff_plugin.py:971 msgid "No valid story URLs entered." msgstr "zzNo valid story URLs entered." -#: fff_plugin.py:828 fff_plugin.py:834 +#: fff_plugin.py:981 fff_plugin.py:987 msgid "Reject URL?" msgstr "zzReject URL?" -#: fff_plugin.py:835 fff_plugin.py:853 +#: fff_plugin.py:988 fff_plugin.py:1006 msgid "%s is on your Reject URL list:" msgstr "zz%s is on your Reject URL list:" -#: fff_plugin.py:837 +#: fff_plugin.py:990 msgid "Click 'Yes' to Reject." msgstr "zzClick 'Yes' to Reject." -#: fff_plugin.py:838 fff_plugin.py:942 +#: fff_plugin.py:991 fff_plugin.py:1160 msgid "Click 'No' to download anyway." msgstr "zzClick 'No' to download anyway." -#: fff_plugin.py:840 +#: fff_plugin.py:993 msgid "Story on Reject URLs list (%s)." msgstr "zzStory on Reject URLs list (%s)." -#: fff_plugin.py:843 +#: fff_plugin.py:996 msgid "Rejected" msgstr "zzRejected" -#: fff_plugin.py:846 +#: fff_plugin.py:999 msgid "Remove Reject URL?" msgstr "zzRemove Reject URL?" -#: fff_plugin.py:852 +#: fff_plugin.py:1005 msgid "Remove URL from Reject List?" msgstr "zzRemove URL from Reject List?" -#: fff_plugin.py:855 +#: fff_plugin.py:1008 msgid "Click 'Yes' to remove it from the list," msgstr "zzClick 'Yes' to remove it from the list," -#: fff_plugin.py:856 +#: fff_plugin.py:1009 msgid "Click 'No' to leave it on the list." msgstr "zzClick 'No' to leave it on the list." -#: fff_plugin.py:873 +#: fff_plugin.py:1053 msgid "Cannot update non-epub format." msgstr "zzCannot update non-epub format." -#: fff_plugin.py:918 +#: fff_plugin.py:1128 msgid "Are You an Adult?" msgstr "zzAre You an Adult?" -#: fff_plugin.py:919 +#: fff_plugin.py:1129 msgid "" "%s requires that you be an adult. Please confirm you are an adult in your " "locale:" @@ -1814,15 +2055,15 @@ msgstr "" "zz%s requires that you be an adult. Please confirm you are an adult in your " "locale:" -#: fff_plugin.py:933 +#: fff_plugin.py:1151 msgid "Skip Story?" msgstr "zzSkip Story?" -#: fff_plugin.py:939 +#: fff_plugin.py:1157 msgid "Skip Anthology Story?" msgstr "zzSkip Anthology Story?" -#: fff_plugin.py:940 +#: fff_plugin.py:1158 msgid "" "\"%s\" is in series \"%s\" that you have an " "anthology book for." @@ -1830,31 +2071,31 @@ msgstr "" "zz\"%s\" is in series \"%s\" that you have " "an anthology book for." -#: fff_plugin.py:941 +#: fff_plugin.py:1159 msgid "Click 'Yes' to Skip." msgstr "zzClick 'Yes' to Skip." -#: fff_plugin.py:944 +#: fff_plugin.py:1162 msgid "Story in Series Anthology(%s)." msgstr "zzStory in Series Anthology(%s)." -#: fff_plugin.py:949 +#: fff_plugin.py:1168 msgid "Skipped" msgstr "zzSkipped" -#: fff_plugin.py:977 +#: fff_plugin.py:1178 msgid "Add" msgstr "zzAdd" -#: fff_plugin.py:990 +#: fff_plugin.py:1214 msgid "Meta" msgstr "zzMeta" -#: fff_plugin.py:1023 +#: fff_plugin.py:1243 msgid "Skipping duplicate story." msgstr "zzSkipping duplicate story." -#: fff_plugin.py:1026 +#: fff_plugin.py:1246 msgid "" "More than one identical book by Identifer URL or title/author(s)--can't tell " "which book to update/overwrite." @@ -1862,15 +2103,15 @@ msgstr "" "zzMore than one identical book by Identifer URL or title/author(s)--can't " "tell which book to update/overwrite." -#: fff_plugin.py:1037 +#: fff_plugin.py:1257 msgid "Update" msgstr "zzUpdate" -#: fff_plugin.py:1045 fff_plugin.py:1052 +#: fff_plugin.py:1265 fff_plugin.py:1272 msgid "Change Story URL?" msgstr "zzChange Story URL?" -#: fff_plugin.py:1053 +#: fff_plugin.py:1273 msgid "" "%s by %s is already in your library with a different source " "URL:" @@ -1878,27 +2119,27 @@ msgstr "" "zz%s by %s is already in your library with a different source " "URL:" -#: fff_plugin.py:1054 +#: fff_plugin.py:1274 msgid "In library: %(liburl)s" msgstr "zzIn library: %(liburl)s" -#: fff_plugin.py:1055 fff_plugin.py:1069 +#: fff_plugin.py:1275 fff_plugin.py:1289 msgid "New URL: %(newurl)s" msgstr "zzNew URL: %(newurl)s" -#: fff_plugin.py:1056 +#: fff_plugin.py:1276 msgid "Click 'Yes' to update/overwrite book with new URL." msgstr "zzClick 'Yes' to update/overwrite book with new URL." -#: fff_plugin.py:1057 +#: fff_plugin.py:1277 msgid "Click 'No' to skip updating/overwriting this book." msgstr "zzClick 'No' to skip updating/overwriting this book." -#: fff_plugin.py:1059 fff_plugin.py:1066 +#: fff_plugin.py:1279 fff_plugin.py:1286 msgid "Download as New Book?" msgstr "zzDownload as New Book?" -#: fff_plugin.py:1067 +#: fff_plugin.py:1287 msgid "" "%s by %s is already in your library with a different source " "URL." @@ -1906,7 +2147,7 @@ msgstr "" "zz%s by %s is already in your library with a different source " "URL." -#: fff_plugin.py:1068 +#: fff_plugin.py:1288 msgid "" "You chose not to update the existing book. Do you want to add a new book " "for this URL?" @@ -1914,31 +2155,31 @@ msgstr "" "zzYou chose not to update the existing book. Do you want to add a new book " "for this URL?" -#: fff_plugin.py:1070 +#: fff_plugin.py:1290 msgid "Click 'Yes' to a new book with new URL." msgstr "zzClick 'Yes' to a new book with new URL." -#: fff_plugin.py:1071 +#: fff_plugin.py:1291 msgid "Click 'No' to skip URL." msgstr "zzClick 'No' to skip URL." -#: fff_plugin.py:1077 +#: fff_plugin.py:1297 msgid "Update declined by user due to differing story URL(%s)" msgstr "zzUpdate declined by user due to differing story URL(%s)" -#: fff_plugin.py:1080 +#: fff_plugin.py:1300 msgid "Different URL" msgstr "zzDifferent URL" -#: fff_plugin.py:1085 +#: fff_plugin.py:1305 jobs.py:198 msgid "Metadata collected." msgstr "zzMetadata collected." -#: fff_plugin.py:1101 +#: fff_plugin.py:1321 jobs.py:262 msgid "Already contains %d chapters." msgstr "zzAlready contains %d chapters." -#: fff_plugin.py:1106 jobs.py:208 +#: fff_plugin.py:1323 jobs.py:264 msgid "" "Existing epub contains %d chapters, web site only has %d. Use Overwrite to " "force update." @@ -1946,7 +2187,7 @@ msgstr "" "zzExisting epub contains %d chapters, web site only has %d. Use Overwrite to " "force update." -#: fff_plugin.py:1108 +#: fff_plugin.py:1325 jobs.py:266 #, fuzzy msgid "" "FanFicFare doesn't recognize chapters in existing epub, epub is probably " @@ -1955,54 +2196,55 @@ msgstr "" "zzFFDL doesn't recognize chapters in existing epub, epub is probably from a " "different source. Use Overwrite to force update." -#: fff_plugin.py:1120 +#: fff_plugin.py:1342 jobs.py:223 msgid "Not Overwriting, web site is not newer." msgstr "zzNot Overwriting, web site is not newer." -#: fff_plugin.py:1200 +#: fff_plugin.py:1460 msgid "None of the %d URLs/stories given can be/need to be downloaded." msgstr "" "zzNone of the %d URLs/stories given can be/need to be downloaded." -#: fff_plugin.py:1201 fff_plugin.py:1398 fff_plugin.py:1428 +#: fff_plugin.py:1461 fff_plugin.py:1659 fff_plugin.py:1689 msgid "See log for details." msgstr "zzSee log for details." -#: fff_plugin.py:1202 +#: fff_plugin.py:1462 msgid "Proceed with updating your library(Error Column, if configured)?" msgstr "zzProceed with updating your library(Error Column, if configured)?" -#: fff_plugin.py:1209 fff_plugin.py:1410 +#: fff_plugin.py:1469 fff_plugin.py:1671 fff_plugin.py:1705 msgid "Bad" msgstr "zzBad" -#: fff_plugin.py:1217 +#: fff_plugin.py:1477 #, fuzzy msgid "FanFicFare download ended" msgstr "zzFFDL download ended" -#: fff_plugin.py:1217 fff_plugin.py:1453 +#: fff_plugin.py:1477 fff_plugin.py:1714 msgid "FanFicFare log" msgstr "zzFanFicFare log" -#: fff_plugin.py:1237 -msgid "Download FanFiction Book" +#: fff_plugin.py:1497 +#, fuzzy +msgid "Download %s FanFiction Book(s)" msgstr "zzDownload FanFiction Book" -#: fff_plugin.py:1244 +#: fff_plugin.py:1504 #, fuzzy msgid "Starting %d FanFicFare Downloads" msgstr "zzStarting %d FanFictionDownLoads" -#: fff_plugin.py:1274 +#: fff_plugin.py:1535 msgid "Story Details:" msgstr "zzStory Details:" -#: fff_plugin.py:1277 +#: fff_plugin.py:1538 msgid "Error Updating Metadata" msgstr "zzError Updating Metadata" -#: fff_plugin.py:1278 +#: fff_plugin.py:1539 #, fuzzy msgid "" "An error has occurred while FanFicFare was updating calibre's metadata for " @@ -2011,104 +2253,100 @@ msgstr "" "zzAn error has occurred while FFDL was updating calibre's metadata for %s." -#: fff_plugin.py:1279 +#: fff_plugin.py:1540 msgid "The ebook has been updated, but the metadata has not." msgstr "zzThe ebook has been updated, but the metadata has not." -#: fff_plugin.py:1331 +#: fff_plugin.py:1592 msgid "Finished Adding/Updating %d books." msgstr "zzFinished Adding/Updating %d books." -#: fff_plugin.py:1361 -msgid "Starting auto conversion of %d books." -msgstr "zzStarting auto conversion of %d books." - -#: fff_plugin.py:1382 +#: fff_plugin.py:1643 msgid "No Good Stories for Anthology" msgstr "zzNo Good Stories for Anthology" -#: fff_plugin.py:1383 +#: fff_plugin.py:1644 msgid "" "No good stories/updates where downloaded, Anthology creation/update aborted." msgstr "" "zzNo good stories/updates where downloaded, Anthology creation/update " "aborted." -#: fff_plugin.py:1388 fff_plugin.py:1427 +#: fff_plugin.py:1649 fff_plugin.py:1688 #, fuzzy msgid "FanFicFare found %s good and %s bad updates." msgstr "zzFFDL found %s good and %s bad updates." -#: fff_plugin.py:1395 +#: fff_plugin.py:1656 msgid "" "Are you sure you want to continue with creating/updating this Anthology?" msgstr "" "zzAre you sure you want to continue with creating/updating this Anthology?" -#: fff_plugin.py:1396 +#: fff_plugin.py:1657 msgid "Any updates that failed will not be included in the Anthology." msgstr "" "zzAny updates that failed will not be included in the Anthology." -#: fff_plugin.py:1397 +#: fff_plugin.py:1658 msgid "However, if there's an older version, it will still be included." msgstr "zzHowever, if there's an older version, it will still be included." -#: fff_plugin.py:1400 +#: fff_plugin.py:1661 msgid "Proceed with updating this anthology and your library?" msgstr "zzProceed with updating this anthology and your library?" -#: fff_plugin.py:1408 +#: fff_plugin.py:1669 fff_plugin.py:1698 msgid "Good" msgstr "zzGood" -#: fff_plugin.py:1429 +#: fff_plugin.py:1690 msgid "Proceed with updating your library?" msgstr "zzProceed with updating your library?" -#: fff_plugin.py:1453 +#: fff_plugin.py:1714 #, fuzzy msgid "FanFicFare download complete" msgstr "zzFFDL download complete" -#: fff_plugin.py:1466 +#: fff_plugin.py:1727 msgid "Merging %s books." msgstr "zzMerging %s books." -#: fff_plugin.py:1506 +#: fff_plugin.py:1767 #, fuzzy msgid "FanFicFare Adding/Updating books." msgstr "zzFFDL Adding/Updating books." -#: fff_plugin.py:1513 +#: fff_plugin.py:1774 msgid "Updating calibre for FanFiction stories..." msgstr "zzUpdating calibre for FanFiction stories..." -#: fff_plugin.py:1514 +#: fff_plugin.py:1775 msgid "Update calibre for FanFiction stories" msgstr "zzUpdate calibre for FanFiction stories" -#: fff_plugin.py:1523 +#: fff_plugin.py:1784 msgid "Adding/Updating %s BAD books." msgstr "zzAdding/Updating %s BAD books." -#: fff_plugin.py:1532 +#: fff_plugin.py:1793 msgid "Updating calibre for BAD FanFiction stories..." msgstr "zzUpdating calibre for BAD FanFiction stories..." -#: fff_plugin.py:1533 +#: fff_plugin.py:1794 msgid "Update calibre for BAD FanFiction stories" msgstr "zzUpdate calibre for BAD FanFiction stories" -#: fff_plugin.py:1559 +#: fff_plugin.py:1820 msgid "Adding format to book failed for some reason..." msgstr "zzAdding format to book failed for some reason..." -#: fff_plugin.py:1562 +#: fff_plugin.py:1823 jobs.py:320 msgid "Error" msgstr "zzError" -#: fff_plugin.py:1870 +#: fff_plugin.py:2143 #, fuzzy msgid "" "You configured FanFicFare to automatically update Reading Lists, but you " @@ -2117,7 +2355,7 @@ msgstr "" "zzYou configured FanFictionDownLoader to automatically update Reading Lists, " "but you don't have the %s plugin installed anymore?" -#: fff_plugin.py:1882 +#: fff_plugin.py:2155 #, fuzzy msgid "" "You configured FanFicFare to automatically update \"To Read\" Reading Lists, " @@ -2126,7 +2364,7 @@ msgstr "" "zzYou configured FanFictionDownLoader to automatically update \"To Read\" " "Reading Lists, but you don't have any lists set?" -#: fff_plugin.py:1892 fff_plugin.py:1910 +#: fff_plugin.py:2165 fff_plugin.py:2183 #, fuzzy msgid "" "You configured FanFicFare to automatically update Reading List '%s', but you " @@ -2135,7 +2373,7 @@ msgstr "" "zzYou configured FanFictionDownLoader to automatically update Reading List " "'%s', but you don't have a list of that name?" -#: fff_plugin.py:1898 +#: fff_plugin.py:2171 #, fuzzy msgid "" "You configured FanFicFare to automatically update \"Send to Device\" Reading " @@ -2144,63 +2382,99 @@ msgstr "" "zzYou configured FanFictionDownLoader to automatically update \"Send to " "Device\" Reading Lists, but you don't have any lists set?" -#: fff_plugin.py:2019 +#: fff_plugin.py:2234 +msgid "Same story already included." +msgstr "" + +#: fff_plugin.py:2294 msgid "No story URL found." msgstr "zzNo story URL found." -#: fff_plugin.py:2022 +#: fff_plugin.py:2297 msgid "Not Found" msgstr "zzNot Found" -#: fff_plugin.py:2028 +#: fff_plugin.py:2303 msgid "URL is not a valid story URL." msgstr "zzURL is not a valid story URL." -#: fff_plugin.py:2031 +#: fff_plugin.py:2306 msgid "Bad URL" msgstr "zzBad URL" -#: fff_plugin.py:2170 fff_plugin.py:2173 +#: fff_plugin.py:2445 fff_plugin.py:2448 msgid "Anthology containing:" msgstr "zzAnthology containing:" # title by author -#: fff_plugin.py:2171 +#: fff_plugin.py:2446 msgid "%s by %s" msgstr "zz%s by %s" -#: fff_plugin.py:2193 +#: fff_plugin.py:2468 msgid " Anthology" msgstr "zz Anthology" -#: fff_plugin.py:2230 +#: fff_plugin.py:2511 msgid "(was set, removed for security)" msgstr "zz(was set, removed for security)" -#: jobs.py:59 +#: jobs.py:75 msgid "Downloading FanFiction Stories" msgstr "zzDownloading FanFiction Stories" -#: jobs.py:81 +#: jobs.py:91 +msgid "%d of %d stories finished downloading" +msgstr "" + +#: jobs.py:103 +#, fuzzy +msgid "Download Results:" +msgstr "zz&Add New from URL(s)" + +#: jobs.py:105 msgid "Successful:" msgstr "zzSuccessful:" -#: jobs.py:83 +#: jobs.py:106 msgid "Unsuccessful:" msgstr "zzUnsuccessful:" -#: jobs.py:109 +#: jobs.py:131 msgid "Download started..." msgstr "zzDownload started..." -#: jobs.py:201 +#: jobs.py:230 +#, fuzzy +msgid "Download %s completed, %s chapters." +msgstr "zzUpdate %s completed, added %s chapters for %s total." + +#: jobs.py:255 msgid "Already contains %d chapters. Reuse as is." msgstr "zzAlready contains %d chapters. Reuse as is." -#: jobs.py:219 +#: jobs.py:278 msgid "Update %s completed, added %s chapters for %s total." msgstr "zzUpdate %s completed, added %s chapters for %s total." +#~ msgid "Skip" +#~ msgstr "zzSkip" + +#~ msgid "Update EPUB if New Chapters" +#~ msgstr "zzUpdate EPUB if New Chapters" + +#~ msgid "Update EPUB Always" +#~ msgstr "zzUpdate EPUB Always" + +#~ msgid "Overwrite if Newer" +#~ msgstr "zzOverwrite if Newer" + +#~ msgid "Overwrite Always" +#~ msgstr "zzOverwrite Always" + +#~ msgid "Update Calibre Metadata Only" +#~ msgstr "zzUpdate Calibre Metadata Only" + #~ msgid "Update Calibre Cover when Updating Metadata?" #~ msgstr "zzUpdate Calibre Cover when Updating Metadata?"