diff --git a/Changelog.yaml b/Changelog.yaml index 39bfd0ef10..20952978a7 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -19,6 +19,57 @@ # new recipes: # - title: +- version: 0.8.59 + date: 2012-07-06 + + new features: + - title: "Drivers for Samsung SGH-T989 and Sony Ericsson Sola" + tickets: [1021365] + + - title: "Conversion pipeline: When removing the first image, also remove the html file the image is found in, if that file has no other content. Allows this option to be used to remove covers from EPUB files without leaving behind a blank page." + + - title: "Content server: Add a navigation panel at the bottom of each page." + tickets: [1020225] + + - title: "calibredb: Add a backup_metadata command to manually run the backup to opf from the command line" + + - title: "User defined driver: Add option to swap main memory and card a." + tickets: [1020056] + + - title: "Add new option to the series_index_auto_increment tweak, no_change, that causes calibre not to change the series_index when the series is changed" + + bug fixes: + - title: "PDF Output: Resize large images so that they do not get off at the right edge of the page." + + - title: "On linux ensure that WM_CLASS for the main calibre GUI is set to 'calibre-gui' to match the name of the calibre-gui.desktop file. This is apparently required by the GNOME 3 shell." + tickets: [1020297] + + - title: "Update ICU in all builds to version 49.1" + + - title: "Tag browser: Fix regression that broke drag and drop between user categories in the tag browser" + + - title: "When copying to library and deleting after copy, do not place deleted files in recycle bin, as this is redundant and slow (they have already been copied into another library)" + + - title: "Fix yes/no fields with value of No not showing up in the book details panel" + + - title: "Catalogs: Better sorting for non English languages" + tickets: [930882] + + - title: "Get Books: Fix Foyles UK, Weightless books, ebooks.com and ozon.ru" + + - title: "CHM Input: Fix handling of chm files that split their html into multiple sub-directories." + tickets: [1018792] + + improved recipes: + - FHM UK + - The Age + - weblogs_ssl + - Heraldo.es + + new recipes: + - title: CATO Institute and Heritage Foundation + author: _reader + - version: 0.8.58 date: 2012-06-29 diff --git a/recipes/cato.recipe b/recipes/cato.recipe new file mode 100644 index 0000000000..4705795419 --- /dev/null +++ b/recipes/cato.recipe @@ -0,0 +1,75 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class CATOInstitute(BasicNewsRecipe): + title = u'The CATO Institute' + description = "The Cato Institute is a public policy research organization — a think tank — \ +dedicated to the principles of individual liberty, limited government, free markets and peace.\ + Its scholars and analysts conduct independent, nonpartisan research on a wide range of policy issues." + __author__ = '_reader' + __date__ = '05 July 2012' + __version__ = '1.0' + cover_url = 'http://www.cato.org/images/logo.jpg' + masthead_url = 'http://www.cato.org/images/logo.jpg' + language = 'en' + oldest_article = 30 #days + max_articles_per_feed = 100 + needs_subscription = False + publisher = 'CATO Institute' + category = 'commentary' + tags = 'commentary' + publication_type = 'blog' + no_stylesheets = True + use_embedded_content = False + encoding = None + simultaneous_downloads = 10 + recursions = 0 + remove_javascript = True + remove_empty_feeds = True + auto_cleanup = True + + conversion_options = { + 'comments' : description, + 'tags' : tags, + 'language' : language, + 'publisher' : publisher, + 'authors' : publisher, + 'smarten_punctuation' : True + } + + + feeds = [ + (u'Cato Recent Op-Eds', u'http://feeds.cato.org/CatoRecentOpeds'), + (u'Cato Homepage Headlines', u'http://feeds.cato.org/CatoHomepageHeadlines'), + (u'Cato Media Updates', u'http://feeds.cato.org/CatoMediaUpdates'), + (u'Cato@Liberty', u'http://feeds.cato.org/Cato-at-liberty'), + (u'Cato Unbound', u'http://feeds.feedburner.com/cato-unbound'), + (u'Education and Child Policy', u'http://www.cato.org/rss/ra.xml?name=education-child-policy'), + (u'Finance, Banking & Monetary Policy', u'http://www.cato.org/rss/ra.xml?name=finance-banking-monetary-policy'), + (u'Government and Politics', u'http://www.cato.org/rss/ra.xml?name=government-politics'), + (u'International Economics & Development', u'http://www.cato.org/rss/ra.xml?name=international-economics-development'), + (u'Political Philosophy', u'http://www.cato.org/rss/ra.xml?name=political-philosophy'), + (u'Social Security', u'http://www.cato.org/rss/ra.xml?name=social-security'), + (u'Telecom, Internet & Information Policy', u'http://www.cato.org/rss/ra.xml?name=telecom-internet-information-policy'), + (u'Energy and Environment', u'http://www.cato.org/rss/ra.xml?name=energy-environment'), + (u'Foreign Policy and National Security', u'http://www.cato.org/rss/ra.xml?name=foreign-policy-national-security'), + (u'Health Care', u'http://www.cato.org/rss/ra.xml?name=health-care'), + (u'Law and Civil Liberties', u'http://www.cato.org/rss/ra.xml?name=law-civil-liberties'), + (u'Regulatory Studies', u'http://www.cato.org/rss/ra.xml?name=regulatory-studies'), + (u'Tax and Budget Policy', u'http://www.cato.org/rss/ra.xml?name=tax-budget-policy'), + (u'Trade and Immigration', u'http://www.cato.org/rss/ra.xml?name=trade-immigration') + ] + + + + + def print_version(self,url): + R_unbound = re.compile(r'(^.*cato-unbound.*)(\/\?utm_source.*$)' , re.DOTALL | re.IGNORECASE ) #CATO Unbound + R_pubs = re.compile(r'(^.*\/publications\/.*$)' , re.DOTALL | re.IGNORECASE ) #CATO Publications + if re.match(R_unbound, url): + printURL = r'\g<1>' + '/print/' + elif re.match(R_pubs, url): + printURL = url + '?print' + else: + printURL = url + '/print/' + return printURL diff --git a/recipes/heritage_foundation.recipe b/recipes/heritage_foundation.recipe new file mode 100644 index 0000000000..17b70dff14 --- /dev/null +++ b/recipes/heritage_foundation.recipe @@ -0,0 +1,71 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class HeritageFoundation(BasicNewsRecipe): + title = u'The Heritage Foundation' + description = 'Founded in 1973, The Heritage Foundation is a research and educational institution—a think tank—\ +whose mission is to formulate and promote conservative public policies based on the principles of free enterprise, limited government, \ +individual freedom, traditional American values, and a strong national defense.' + __author__ = '_reader' + __date__ = '05 July 2012' + __version__ = '1.0' + oldest_article = 30 + max_articles_per_feed = 100 + publisher = 'The Heritage Foundation' + category = 'commentary' + tags = 'commentary' + language = 'en' + publication_type = 'blog' + cover_url = 'http://www.heritage.org/static/images/logo.jpg' + masthead_url = 'http://www.heritage.org/static/images/logo.jpg' + encoding = None + use_embedded_content = False + no_stylesheets = True + remove_javascript = True + recursions = 0 + remove_empty_feeds = True + auto_cleanup = True + + conversion_options = { + 'comments' : description, + 'tags' : tags, + 'language' : language, + 'publisher' : publisher, + 'authors' : publisher, + 'smarten_punctuation' : True + } + + + feeds = [ +(u'Agriculture', u'http://www.heritage.org/static/RSS/Agriculture.xml'), +(u'Alliances', u'http://www.heritage.org/static/RSS/Alliances.xml'), +(u'Arms Control and Non-Proliferation', u'http://www.heritage.org/static/RSS/Arms-Control-and-Non-Proliferation.xml'), +(u'Budget and Spending', u'http://www.heritage.org/static/RSS/Budget-and-Spending.xml'), +(u'Economic Freedom', u'http://www.heritage.org/static/RSS/Economic-Freedom.xml'), +(u'Economy', u'http://www.heritage.org/static/RSS/Economy.xml'), +(u'Education', u'http://www.heritage.org/static/RSS/Education.xml'), +(u'Energy and Environment', u'http://www.heritage.org/static/RSS/Energy-and-Environment.xml'), +(u'Family and Marriage', u'http://www.heritage.org/static/RSS/Family-And-Marriage.xml'), +(u'Foreign Aid and Development', u'http://www.heritage.org/static/RSS/Foreign-Aid-and-Development.xml'), +(u'Health Care', u'http://www.heritage.org/static/RSS/Health-Care.xml'), +(u'Homeland Security', u'http://www.heritage.org/static/RSS/Homeland-Security.xml'), +(u'Housing', u'http://www.heritage.org/static/RSS/Housing.xml'), +(u'Immigration', u'http://www.heritage.org/static/RSS/Immigration.xml'), +(u'International Conflicts', u'http://www.heritage.org/static/RSS/International-Conflicts.xml'), +(u'International Law', u'http://www.heritage.org/static/RSS/International-Law.xml'), +(u'Labor', u'http://www.heritage.org/static/RSS/Labor.xml'), +(u'Legal Issues', u'http://www.heritage.org/static/RSS/Legal.xml'), +(u'Missile Defense', u'http://www.heritage.org/static/RSS/Missile-Defense.xml'), +(u'National Security and Defense', u'http://www.heritage.org/static/RSS/National-Security-and-Defense.xml'), +(u'Political Thought', u'http://www.heritage.org/static/RSS/Political-Thought.xml'), +(u'Public Diplomacy', u'http://www.heritage.org/static/RSS/Public-Diplomacy.xml'), +(u'Regulation', u'http://www.heritage.org/static/RSS/Regulation.xml'), +(u'Religion and Civil Society', u'http://www.heritage.org/static/RSS/Religion-and-Civil-Society.xml'), +(u'Retirement Security', u'http://www.heritage.org/static/RSS/Retirement-Security.xml'), +(u'Space Policy', u'http://www.heritage.org/static/RSS/Space-Policy.xml'), +(u'Taxes', u'http://www.heritage.org/static/RSS/Taxes.xml'), +(u'Terrorism', u'http://www.heritage.org/static/RSS/Terrorism.xml'), +(u'Trade', u'http://www.heritage.org/static/RSS/Trade.xml'), +(u'Transportation', u'http://www.heritage.org/static/RSS/Transportation.xml'), +(u'Welfare', u'http://www.heritage.org/static/RSS/Welfare.xml'), +(u'Worldwide Freedom and Human Rights', u'http://www.heritage.org/static/RSS/Worldwide-Freedom-and-Human-Rights.xml'), +] + diff --git a/recipes/richmond_times_dispatch.recipe b/recipes/richmond_times_dispatch.recipe index 163a6317ff..741bacbda3 100644 --- a/recipes/richmond_times_dispatch.recipe +++ b/recipes/richmond_times_dispatch.recipe @@ -1,59 +1,100 @@ +import re from calibre.web.feeds.recipes import BasicNewsRecipe -class AdvancedUserRecipe1335532466(BasicNewsRecipe): - title = u'Richmond Times-Dispatch' - description = 'News from Richmond, Virginia, USA' - __author__ = 'jde' - cover_url = 'http://static2.dukecms.com/va_tn/timesdispatch_com/site-media/img/icons/logo252x97.png' - language = 'en' - encoding = 'utf8' - oldest_article = 1 #days - max_articles_per_feed = 25 - needs_subscription = False - remove_javascript = True - recursions = 0 - use_embedded_content = False - no_stylesheets = True - auto_cleanup = True +class RichmondTimesDispatch(BasicNewsRecipe): + title = u'Richmond Times-Dispatch' + description = "The Richmond Times-Dispatch is the primary daily newspaper in Richmond, \ + the capital of Virginia, United States, as well as the Virginia cities of Petersburg, \ + Chester. Hopewell, Colonial Heights, Charlottesville, Lynchburg, Waynesboro, \ + and is also a default paper for rural regions of the state. \ + The RTD has published in some form for more than 150 years." + __author__ = '_reader' + __date__ = '05 July 2012' + __version__ = '1.4' + cover_url = 'http://static2.dukecms.com/va_tn/timesdispatch_com/site-media/img/icons/logo252x97.png' + masthead_url = 'http://static2.dukecms.com/va_tn/timesdispatch_com/site-media/img/icons/logo252x97.png' + language = 'en' + oldest_article = 1.5 #days + max_articles_per_feed = 100 + needs_subscription = False + publisher = 'timesdispatch.com' + category = 'news, commentary' + tags = 'news' + publication_type = 'newspaper' + no_stylesheets = True + use_embedded_content= False + encoding = None + simultaneous_downloads = 20 + recursions = 0 + remove_javascript = True + remove_empty_feeds = True + auto_cleanup = False + + conversion_options = { + 'comments' : description, + 'tags' : tags, + 'language' : language, + 'publisher' : publisher, + 'authors' : publisher, + 'smarten_punctuation' : True + } + + remove_tags_before = dict(id='hnews hentry item') + + remove_tags_after = dict(name='hr') + + remove_tags = [ + dict(name='div', attrs={'id':['mg_hd', 'mg_ft', 'sr_b', 'comments_left', 'comments_right']}) + ,dict(name='div', attrs={'class':['bottom_social','article_bottom']}) + ,dict(name='table', attrs={'class':['ap-mediabox-table', 'ap-htmltable-table', 'ap-photogallery-table', 'ap-htmlfragment-table']}) + ] + + + preprocess_regexps = [ + (re.compile(r'', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(r'

\s*http://www2.timesdispatch.*?

', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(r'

\s*', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(r'', re.DOTALL|re.IGNORECASE), lambda match: ''), #strip


line break + (re.compile(r'.', re.DOTALL|re.IGNORECASE), lambda match: ''), #strip
line break + (re.compile(r'\s*Richmond Times-Dispatch.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), #strip
line break + ] + feeds = [ + ('News', 'http://www2.timesdispatch.com/list/feed/rss/news-archive'), + ('Breaking News', 'http://www2.timesdispatch.com/list/feed/rss/breaking-news'), + ('National News', 'http://www2.timesdispatch.com/list/feed/rss/national-news'), + ('Local News', 'http://www2.timesdispatch.com/list/feed/rss/local-news'), + ('Business', 'http://www2.timesdispatch.com/list/feed/rss/business'), + ('Local Business', 'http://www2.timesdispatch.com/list/feed/rss/local-business'), + ('Politics', 'http://www2.timesdispatch.com/list/feed/rss/politics'), + ('Virginia Politics', 'http://www2.timesdispatch.com/list/feed/rss/virginia-politics'), + ('Sports', 'http://www2.timesdispatch.com/list/feed/rss/sports2'), + ('Health', 'http://www2.timesdispatch.com/feed/rss/lifestyles/health_med_fit/'), + ('Entertainment/Life', 'http://www2.timesdispatch.com/list/feed/rss/entertainment'), + ('Arts/Theatre', 'http://www2.timesdispatch.com/feed/rss/entertainment/arts_theatre/'), + ('Movies', 'http://www2.timesdispatch.com/list/feed/rss/movies'), + ('Music', 'http://www2.timesdispatch.com/list/feed/rss/music'), + ('Dining & Food', 'http://www2.timesdispatch.com/list/feed/rss/dining'), + ('Home & Garden', 'http://www2.timesdispatch.com/list/feed/rss/home-and-garden/'), + #inactive('Travel', 'http://www2.timesdispatch.com/feed/rss/travel/'), + ('Opinion', 'http://www2.timesdispatch.com/feed/rss/news/opinion/'), + ('Editorials', 'http://www2.timesdispatch.com/list/feed/rss/editorial-desk'), + ('Columnists and Blogs', 'http://www2.timesdispatch.com/list/feed/rss/news-columnists-blogs'), + ('Opinion Columnists', 'http://www2.timesdispatch.com/list/feed/rss/opinion-editorial-columnists'), + ('Letters to the Editor', 'http://www2.timesdispatch.com/list/feed/rss/opinion-letters'), + ('Traffic', 'http://www2.timesdispatch.com/list/feed/rss/traffic'), + ] -('News', -'http://www2.timesdispatch.com/list/feed/rss/news-archive'), -('Breaking News', -'http://www2.timesdispatch.com/list/feed/rss/breaking-news'), -('National News', -'http://www2.timesdispatch.com/list/feed/rss/national-news'), -('Local News', -'http://www2.timesdispatch.com/list/feed/rss/local-news'), -('Business', -'http://www2.timesdispatch.com/list/feed/rss/business'), -('Local Business', -'http://www2.timesdispatch.com/list/feed/rss/local-business'), -('Politics', -'http://www2.timesdispatch.com/list/feed/rss/politics'), -('Virginia Politics', -'http://www2.timesdispatch.com/list/feed/rss/virginia-politics'), -('Editorials', -'http://www2.timesdispatch.com/list/feed/rss/editorial-desk'), -('Columnists and Blogs', -'http://www2.timesdispatch.com/list/feed/rss/news-columnists-blogs'), -('Opinion Columnists', -'http://www2.timesdispatch.com/list/feed/rss/opinion-editorial-columnists'), -('Letters to the Editor', -'http://www2.timesdispatch.com/list/feed/rss/opinion-letters'), -('Traffic', -'http://www2.timesdispatch.com/list/feed/rss/traffic'), -('Sports', -'http://www2.timesdispatch.com/list/feed/rss/sports2'), -('Entertainment/Life', -'http://www2.timesdispatch.com/list/feed/rss/entertainment'), -('Movies', -'http://www2.timesdispatch.com/list/feed/rss/movies'), -('Music', -'http://www2.timesdispatch.com/list/feed/rss/music'), -('Dining & Food', -'http://www2.timesdispatch.com/list/feed/rss/dining'), - - ] - + def print_version(self,url): + article_num = re.sub(r'(^.*)\-([0-9]{4,10})\/$', r'\g<2>', url) + ap_pat = re.compile('http') + #print '\nDEBUG>>>>>>>>: article_num: ', article_num + #print 'DEBUG>>>>>>>>: ap_pat.search(article_num): ', ap_pat.search(article_num) + if ap_pat.search(article_num): #AP article, no print url + #print 'DEBUG>>>>>>>>: AP URL: ', url + return url + else: + printURL = 'http://www2.timesdispatch.com/member-center/share-this/print/?content=ar' + article_num + return printURL diff --git a/resources/compiled_coffeescript.zip b/resources/compiled_coffeescript.zip index 7ba1aa2fbf..8e6bbbaf23 100644 Binary files a/resources/compiled_coffeescript.zip and b/resources/compiled_coffeescript.zip differ diff --git a/setup/publish.py b/setup/publish.py index 65df51f848..e43c9fdf7f 100644 --- a/setup/publish.py +++ b/setup/publish.py @@ -40,7 +40,7 @@ class Stage2(Command): class Stage3(Command): description = 'Stage 3 of the publish process' - sub_commands = ['upload_user_manual', 'upload_demo', 'sdist'] + sub_commands = ['upload_user_manual', 'upload_demo', 'sdist', 'tag_release'] class Stage4(Command): @@ -50,7 +50,7 @@ class Stage4(Command): class Stage5(Command): description = 'Stage 5 of the publish process' - sub_commands = ['tag_release', 'upload_to_server'] + sub_commands = ['upload_to_server'] def run(self, opts): subprocess.check_call('rm -rf build/* dist/*', shell=True) diff --git a/src/calibre/constants.py b/src/calibre/constants.py index 5a3b1e3e68..700467418e 100644 --- a/src/calibre/constants.py +++ b/src/calibre/constants.py @@ -4,7 +4,7 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __docformat__ = 'restructuredtext en' __appname__ = u'calibre' -numeric_version = (0, 8, 58) +numeric_version = (0, 8, 59) __version__ = u'.'.join(map(unicode, numeric_version)) __author__ = u"Kovid Goyal " diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py index b365eb1346..8dd4e37bfa 100644 --- a/src/calibre/customize/ui.py +++ b/src/calibre/customize/ui.py @@ -497,6 +497,7 @@ def initialize_plugin(plugin, path_to_zip_file): %tb) + '\n'+tb) def has_external_plugins(): + 'True if there are updateable (zip file based) plugins' return bool(config['plugins']) def initialize_plugins(perf=False): diff --git a/src/calibre/devices/android/driver.py b/src/calibre/devices/android/driver.py index 32260e615f..da787f0b81 100644 --- a/src/calibre/devices/android/driver.py +++ b/src/calibre/devices/android/driver.py @@ -72,6 +72,7 @@ class ANDROID(USBMS): # Sony Ericsson 0xfce : { + 0xa173 : [0x216], 0xd12e : [0x0100], 0xe156 : [0x226], 0xe15d : [0x226], diff --git a/src/calibre/gui2/store/stores/foyles_uk_plugin.py b/src/calibre/gui2/store/stores/foyles_uk_plugin.py index b684dd533d..819c412758 100644 --- a/src/calibre/gui2/store/stores/foyles_uk_plugin.py +++ b/src/calibre/gui2/store/stores/foyles_uk_plugin.py @@ -6,7 +6,7 @@ __license__ = 'GPL 3' __copyright__ = '2011, John Schember ' __docformat__ = 'restructuredtext en' -import urllib2, re +import urllib2 from contextlib import closing from lxml import html diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index c6a67ef79f..b81207343f 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: calibre 0.8.58\n" -"POT-Creation-Date: 2012-06-29 09:50+IST\n" -"PO-Revision-Date: 2012-06-29 09:50+IST\n" +"Project-Id-Version: calibre 0.8.59\n" +"POT-Creation-Date: 2012-07-06 07:33+IST\n" +"PO-Revision-Date: 2012-07-06 07:33+IST\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -24,8 +24,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/db/cache.py:106 #: /home/kovid/work/calibre/src/calibre/db/cache.py:109 #: /home/kovid/work/calibre/src/calibre/db/cache.py:120 -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:337 #: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:338 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:339 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:100 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:101 #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 @@ -98,7 +98,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:365 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:466 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/ozon.py:125 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/ozon.py:59 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/ozon.py:130 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/worker.py:26 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader/headers.py:26 @@ -119,9 +120,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/parse_utils.py:360 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:142 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:149 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:114 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:121 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:80 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:135 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 @@ -150,30 +151,30 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:400 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:603 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:606 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:142 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1205 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 -#: /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/add_empty_book.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:817 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:380 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:191 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:206 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:409 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1268 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1271 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1274 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1362 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1062 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1270 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1273 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1276 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1364 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:245 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:256 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:387 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:174 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:178 @@ -185,15 +186,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/database2.py:576 #: /home/kovid/work/calibre/src/calibre/library/database2.py:584 #: /home/kovid/work/calibre/src/calibre/library/database2.py:595 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2105 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2259 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2675 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3323 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3462 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2146 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2300 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2721 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3368 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3370 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3507 #: /home/kovid/work/calibre/src/calibre/library/server/content.py:250 #: /home/kovid/work/calibre/src/calibre/library/server/content.py:251 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:247 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:160 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:163 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:79 @@ -869,27 +870,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/db/cache.py:134 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:683 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1030 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:668 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1044 #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:851 #: /home/kovid/work/calibre/src/calibre/utils/formatter_functions.py:874 msgid "Yes" msgstr "" #: /home/kovid/work/calibre/src/calibre/db/fields.py:163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1161 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1175 msgid "Main" msgstr "" #: /home/kovid/work/calibre/src/calibre/db/fields.py:165 #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:77 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1163 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1177 msgid "Card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/db/fields.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:79 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1165 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1179 msgid "Card B" msgstr "" @@ -901,15 +902,15 @@ msgstr "" msgid "Communicate with Android phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:183 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:184 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:277 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:278 msgid "Communicate with S60 phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:297 msgid "Communicate with WebOS tablets." msgstr "" @@ -981,17 +982,17 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:460 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:500 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1107 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1153 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3236 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3278 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1115 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1161 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3244 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3286 #, python-format msgid "%(num)d of %(tot)d" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:508 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1158 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3285 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1166 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3293 #: /home/kovid/work/calibre/src/calibre/gui2/ebook_download.py:110 msgid "finished" msgstr "" @@ -1003,13 +1004,13 @@ msgid "" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1070 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1078 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:2759 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2767 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:103 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:448 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:471 @@ -1020,24 +1021,24 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:1092 #: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:469 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1210 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1221 #: /home/kovid/work/calibre/src/calibre/library/database2.py:361 #: /home/kovid/work/calibre/src/calibre/library/database2.py:374 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3180 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3225 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:187 msgid "News" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2760 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2768 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65 #: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:65 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3136 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3154 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3181 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3199 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3128 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3136 msgid "Communicate with iTunes." msgstr "" @@ -1143,7 +1144,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:37 -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -1186,14 +1187,18 @@ msgid "Communicate with the PocketBook 602/603/902/903 reader." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:257 +msgid "Communicate with the PocketBook 622 reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:270 msgid "Communicate with the PocketBook 360+ reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:267 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:280 msgid "Communicate with the PocketBook 701" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:298 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:311 msgid "Communicate with the Infibeam Pi2 reader." msgstr "" @@ -1850,6 +1855,14 @@ msgstr "" msgid "Card A folder" msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/user_defined/driver.py:69 +msgid "Swap main and card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/user_defined/driver.py:70 +msgid "Check this box if the device's main memory is being seen as card a and the card is being seen as main memory" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:210 #, python-format msgid "Rendered %s" @@ -3039,7 +3052,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:666 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:683 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:668 msgid "No" msgstr "" @@ -3048,7 +3061,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1065 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162 #: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41 @@ -3061,7 +3074,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:770 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1066 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1068 #: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23 msgid "Author(s)" msgstr "" @@ -3085,7 +3098,7 @@ msgid "Comments" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:775 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:70 @@ -3096,7 +3109,7 @@ msgid "Tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:777 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:170 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 @@ -3120,7 +3133,7 @@ msgid "Timestamp" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:782 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:169 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:146 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:305 @@ -3432,7 +3445,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:973 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:957 #, python-format msgid "Book %(sidx)s of %(series)s" msgstr "" @@ -3441,7 +3454,7 @@ msgstr "" msgid "HTML TOC generation options." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:185 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:160 @@ -3805,7 +3818,7 @@ msgid "Choose Files" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:769 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:753 msgid "Books" msgstr "" @@ -4258,11 +4271,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:403 #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:197 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:777 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1008 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:999 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/restore_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:380 msgid "Failed" msgstr "" @@ -4284,7 +4297,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:496 #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:501 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:225 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:965 msgid "Not allowed" @@ -4386,7 +4399,7 @@ msgstr "" msgid "Some books were automatically merged into existing records in the target library. Click Show details to see which ones. This behavior is controlled by the Auto merge option in Preferences->Adding books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:226 msgid "You cannot use other libraries while using the environment variable CALIBRE_OVERRIDE_DATABASE_PATH." msgstr "" @@ -4769,7 +4782,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:388 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:384 msgid "N" msgstr "" @@ -4996,7 +5009,7 @@ msgid "this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/store.py:32 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:469 #, python-format msgid "Search for %s" msgstr "" @@ -5257,7 +5270,7 @@ msgid "No books found" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:809 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:793 msgid "No permission" msgstr "" @@ -5453,49 +5466,49 @@ msgstr "" msgid "Donate" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:146 msgid "Click to open" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:161 msgid "Ids" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:199 #, python-format msgid "Book %(sidx)s of %(series)s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1069 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1071 msgid "Collections" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:317 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:255 msgid "Paste Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:315 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:318 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:256 msgid "Copy Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:316 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:319 msgid "Remove Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:362 msgid "Double-click to open Book Details window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:77 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:295 msgid "Path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #, python-format msgid "Cover size: %(width)d x %(height)d" @@ -6563,45 +6576,45 @@ msgstr "" msgid "Set the metadata. The output file will contain as much of this metadata as possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1015 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:999 msgid "This book has no cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1017 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1001 #, python-format msgid "Cover size: %(width)d x %(height)d pixels" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:916 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:900 msgid "Choose cover for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:924 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:908 msgid "Cannot read" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:194 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:909 msgid "You do not have permission to read the file: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:202 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:209 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:917 msgid "Error reading file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:203 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:918 msgid "

There was an error reading from file:
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:210 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:944 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:928 msgid " is not a valid picture" msgstr "" @@ -6654,14 +6667,14 @@ 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:560 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1091 msgid "Tags categorize the book. This is particularly useful while searching.

They can be any words or phrases, separated by commas." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:567 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:449 msgid "&Series:" msgstr "" @@ -6669,7 +6682,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:568 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:569 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:457 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:448 msgid "List of known series. You can add new series." msgstr "" @@ -6986,7 +6999,7 @@ msgid "Remove the currently selected expression" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:153 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:870 msgid "&Remove" msgstr "" @@ -7349,39 +7362,39 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:116 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:687 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:728 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:751 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:802 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:341 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:672 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:713 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:736 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:787 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:353 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:103 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:267 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:271 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:275 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1413 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1392 msgid "Undefined" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:130 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:759 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:744 msgid "star(s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:760 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:745 msgid "Unrated" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:174 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:789 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:774 #, python-format msgid "Set '%s' to today" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:791 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:776 #, python-format msgid "Clear '%s'" msgstr "" @@ -7390,51 +7403,51 @@ msgstr "" msgid "Open Item Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:347 msgid "Values changed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:348 msgid "You have changed the values. In order to use this editor, you must either discard or apply these changes. Apply changes?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:373 msgid " index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:436 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:642 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:627 msgid "Apply changes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:835 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:820 msgid "Remove series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:838 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:823 msgid "Automatically number books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:841 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:826 msgid "Force numbers to start with " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:913 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:896 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:957 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:940 msgid "Remove all tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:977 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:960 msgid "tags to add" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:984 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:967 msgid "tags to remove" msgstr "" @@ -7651,14 +7664,14 @@ msgid "You have enabled the {0} formats for your {1}. The {1} may not sup msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:150 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:437 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:433 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:70 msgid "Invalid template" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:434 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:280 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:71 #, python-format @@ -7685,19 +7698,19 @@ msgstr "" msgid "Save &template:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:19 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:24 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:32 msgid "Set the author of the new books to:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:44 msgid "Reset author to Unknown" msgstr "" @@ -8106,7 +8119,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1069 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:35 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:76 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:365 @@ -8125,13 +8138,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/device_category_editor.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:209 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:944 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:951 msgid "Item is blank" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/device_category_editor.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:210 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:945 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:952 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" @@ -8207,7 +8220,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:122 #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:603 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 msgid "No matches found" msgstr "" @@ -8217,13 +8230,13 @@ msgid "Change Case" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:161 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:296 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:300 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:437 msgid "Upper Case" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:162 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:299 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:438 msgid "Lower Case" msgstr "" @@ -8234,13 +8247,13 @@ msgid "Swap Case" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:301 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "Title Case" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:302 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:441 msgid "Capitalize" msgstr "" @@ -8254,12 +8267,12 @@ msgid "Copy to author" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:994 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1001 msgid "Invalid author name" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:314 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:995 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1002 msgid "Author names cannot contain & characters." msgstr "" @@ -8418,103 +8431,103 @@ msgstr "" msgid "Working" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:305 msgid "Character match" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:306 msgid "Regular Expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:305 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:309 msgid "Replace field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:310 msgid "Prepend to field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:311 msgid "Append to field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:317 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:321 #, python-format msgid "Editing meta information for %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:366 msgid "Immediately make all changes without closing the dialog. This operation cannot be canceled or undone" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:426 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:430 #, python-format msgid "Book %d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:448 msgid "Enter an identifier type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:450 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:454 msgid "You can destroy your library using this feature. Changes are permanent. There is no undo function. You are strongly encouraged to back up your library before proceeding.

Search and replace in text fields using character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:458 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:462 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 the specified field. After replacement is finished, the text can be changed to upper-case, lower-case, or title-case. If the case-sensitive check box is checked, the search text must match exactly. If it is unchecked, the search text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:473 msgid "In regular expression mode, the search text is an arbitrary python-compatible regular expression. The replacement text can contain backreferences to parenthesized expressions in the pattern. The search is not anchored, and can match and replace multiple times on the same string. The modification functions (lower-case etc) are applied to the matched text, not to the field as a whole. The destination box specifies the field where the result after matching and replacement is to be assigned. You can replace the text in the field, or prepend or append the matched text. See this reference for more information on python's regular expressions, and in particular the 'sub' function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:550 msgid "S/R TEMPLATE ERROR" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:694 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:698 msgid "You must specify a destination when source is a composite field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:704 msgid "You must specify a destination identifier type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:937 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:928 msgid "Search/replace invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:938 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:929 #, python-format msgid "Search pattern is invalid: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:994 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:985 #, python-format msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1024 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1015 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:614 msgid "Delete saved search/replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1025 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1016 msgid "The selected saved search/replace will be deleted. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1042 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1033 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1041 msgid "Save search/replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1034 msgid "Search/replace name:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1051 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1042 msgid "That saved search/replace already exists and will be overwritten. Are you sure?" msgstr "" @@ -8539,13 +8552,13 @@ msgid "Specify how the author(s) of this book should be sorted. For example Char msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:553 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1065 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1049 msgid "&Rating:" 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:555 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1066 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1050 msgid "Rating of this book. 0-5 stars" msgstr "" @@ -8612,7 +8625,7 @@ msgid "&Force numbers to start with:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1398 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1377 msgid "&Date:" msgstr "" @@ -8634,7 +8647,7 @@ msgid "Clear published date" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:590 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1170 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1154 msgid "&Languages:" msgstr "" @@ -9667,7 +9680,7 @@ msgid "&Author:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1106 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1090 msgid "Ta&gs:" msgstr "" @@ -9946,7 +9959,7 @@ msgid "Open Template Editor" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_line_editor.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:424 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:420 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:48 msgid "Edit template" msgstr "" @@ -10309,7 +10322,7 @@ msgid "Regular expression (?P)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1303 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1287 msgid "ISBN:" msgstr "" @@ -10548,13 +10561,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/keyboard.py:646 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:247 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:413 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:414 #: /home/kovid/work/calibre/src/calibre/gui2/store/search/search.py:337 msgid "No matches" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/keyboard.py:647 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:415 #, python-format msgid "Could not find any shortcuts matching %s" msgstr "" @@ -10621,11 +10634,11 @@ msgid "Copy current search text (instead of search name)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1073 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1057 msgid "stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:384 msgid "Y" msgstr "" @@ -10643,50 +10656,50 @@ msgstr "" msgid "Modified" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:786 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1398 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:785 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1400 #: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:313 msgid "The lookup/search name is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:792 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1400 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:791 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1402 msgid "This book's UUID is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:876 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:103 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:271 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:438 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:876 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:877 msgid "Could not change the on disk location of this book. Is it open in another program?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:883 msgid "Failed to set data" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:884 msgid "Could not set data, click Show Details to see why." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1066 msgid "In Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1068 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1070 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:355 msgid "Size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1380 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1382 msgid "Marked for deletion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1383 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1385 msgid "Double click to edit me

" msgstr "" @@ -10779,12 +10792,12 @@ msgid "LRF Viewer toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 msgid "Next Page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:476 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:483 msgid "Previous Page" msgstr "" @@ -10957,7 +10970,7 @@ msgid "Unhandled exception" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:280 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:272 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:439 #, python-format msgid "Could not open %s. Is it being used by another program?" @@ -10987,29 +11000,29 @@ msgstr "" msgid "You have changed the authors for this book. You must save these changes before you can use Manage authors. Do you want to save these changes?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:305 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles Dickens should be sorted as Dickens, Charles.\n" "If the box is colored green, then text matches the individual author's sort strings. If it is colored red, then the authors and this text do not match." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:310 msgid "Author s&ort:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:329 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:320 msgid " The green color indicates that the current author sort matches the current author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:323 msgid " The red color indicates that the current author sort does not match the current author. No action is required if this is what you want." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:502 msgid "&Number:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:618 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:602 #, python-format msgid "" "Last modified: %s\n" @@ -11017,113 +11030,113 @@ msgid "" "Double click to view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:612 #, python-format msgid "Restore %s from the original" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:674 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:658 msgid "Set the cover for the book from the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:682 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:666 msgid "Set metadata for the book from the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:689 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:673 msgid "Add a format to this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:696 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:680 msgid "Remove the selected format from this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:751 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:810 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:794 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:840 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:841 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:825 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:853 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:837 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:854 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:838 #, python-format msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:882 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:866 msgid "&Browse" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:868 msgid "T&rim" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:876 msgid "Download co&ver" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:877 msgid "&Generate cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:943 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:927 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:967 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:951 msgid "Specify title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:968 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:952 msgid "You must specify a title and author before generating a cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:987 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:971 msgid "Invalid cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:988 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:972 msgid "Could not change cover as the image is invalid." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1142 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1126 msgid "Tags changed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1143 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1127 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/metadata/basic_widgets.py:1171 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1155 msgid "A comma separated list of languages for this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1194 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1178 msgid "Unknown language" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1195 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1179 #, python-format msgid "The language %s is not recognized" msgid_plural "The languages %s are not recognized" msgstr[0] "" msgstr[1] "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1207 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1191 msgid "I&ds:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1208 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1192 #, python-format msgid "" "Edit the identifiers for this book. For example: \n" @@ -11131,38 +11144,38 @@ msgid "" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1272 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1334 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1256 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1318 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1275 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1337 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1321 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1300 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1322 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1306 msgid "Invalid ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1301 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1285 msgid "Enter an ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1323 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1307 msgid "The ISBN you entered is not valid. Try again." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1347 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1331 msgid "&Publisher:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1416 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1395 msgid "Clear date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1450 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:1429 msgid "Publishe&d:" msgstr "" @@ -12382,7 +12395,7 @@ msgid "Never" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:557 msgid "By first letter" msgstr "" @@ -13550,24 +13563,24 @@ msgstr "" msgid "This tweak has been customized" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:294 msgid "Add/edit tweaks for any custom plugins you have installed. Documentation for these tweaks should be available on the website from where you downloaded the plugins." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:326 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:327 msgid "Search for tweak" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:340 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:381 msgid "There was a syntax error in your tweak. Click the show details button for details." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:394 msgid "Invalid tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:395 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 "" @@ -14071,40 +14084,40 @@ msgstr "" msgid "The grouped search term name is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:781 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:788 msgid "Changing the authors for several books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:786 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:793 msgid "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:880 #: /home/kovid/work/calibre/src/calibre/library/database2.py:484 msgid "Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:950 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:970 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:979 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:957 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:977 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:986 msgid "Rename user category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:951 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:958 msgid "You cannot use periods in the name when renaming user categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:971 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:980 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:978 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:987 #, python-format msgid "The name %s is already used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:999 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1006 msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1000 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1007 #, python-format msgid "The saved search name %s is already used." msgstr "" @@ -14126,13 +14139,13 @@ msgid "Manage Tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/ui.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:513 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:544 msgid "Manage User Categories" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/ui.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:532 msgid "Manage Saved Searches" msgstr "" @@ -14261,105 +14274,105 @@ msgstr "" msgid "All of these category_managers are available by right-clicking on items in the tag browser above" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:386 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:425 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:455 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:413 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:482 #, python-format msgid "Rename %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:419 #, python-format msgid "Delete %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:423 #, python-format msgid "Edit sort for %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:426 #, python-format msgid "Edit link for %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:433 #, python-format msgid "Add %s to user category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:419 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:446 #, python-format msgid "Children of %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:456 #, python-format msgid "Delete search %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:461 #, python-format msgid "Remove %(item)s from category %(cat)s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:447 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:474 #, python-format msgid "Search for everything but %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:459 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:486 #, python-format msgid "Add sub-category to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:490 #, python-format msgid "Delete user category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:495 #, python-format msgid "Hide category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:499 msgid "Show category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:509 #, python-format msgid "Search for books in category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:515 #, python-format msgid "Search for books not in category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:497 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:529 #, python-format msgid "Manage %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:551 msgid "Show all categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:554 msgid "Change sub-categorization scheme" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:555 msgid "Disable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:559 msgid "Partition" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/view.py:574 msgid "First letter is usable only when sorting by name" msgstr "" @@ -14610,7 +14623,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:977 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:978 msgid "Remember last used window size" msgstr "" @@ -14824,40 +14837,40 @@ msgstr "" msgid "No results found for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:451 msgid "&Lookup in dictionary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:449 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:456 msgid "&Search for next occurrence" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:461 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:137 msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:473 msgid "Next Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474 msgid "Previous Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:476 msgid "Document Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477 msgid "Document End" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "Section Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:480 msgid "Section End" msgstr "" @@ -14963,97 +14976,97 @@ msgstr "" msgid "Connecting to dict.org to lookup: %s…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:512 msgid "No such location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:513 msgid "The location pointed to by this item does not exist." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:565 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:585 #, python-format msgid "" "Make font size %(which)s\n" "Current magnification: %(mag).1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:586 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:587 msgid "larger" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:589 msgid "smaller" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:605 #, python-format msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:653 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:654 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:729 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:730 #, python-format msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:781 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:782 #, python-format msgid "Bookmark #%d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:785 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:786 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:786 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:787 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:798 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:840 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:851 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:852 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:964 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:965 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:971 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:972 msgid "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:974 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:975 msgid "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:979 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:980 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:981 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:982 msgid "The position at which to open the specified book. The position is a location as displayed in the top left corner of the viewer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:988 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:989 msgid "" "%prog [options] file\n" "\n" @@ -15769,15 +15782,15 @@ msgid "" "*** Adding 'By Authors' Section required for MOBI output ***" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:499 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:500 msgid "No enabled genres found to catalog.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:503 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:504 msgid "No books available to catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:579 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:580 msgid "" "Inconsistent Author Sort values for\n" "Author '{0}':\n" @@ -15787,20 +15800,20 @@ msgid "" "Select all books by '{0}', apply correct Author Sort value in Edit Metadata dialog, then rebuild the catalog.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:596 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:597 msgid "" "Warning: inconsistent Author Sort values for\n" "Author '{0}':\n" "'{1}' <> '{2}'\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:791 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:793 msgid "" "No books found to catalog.\n" "Check 'Excluded books' criteria in E-book options.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:793 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:795 msgid "No books available to include in catalog" msgstr "" @@ -15884,7 +15897,7 @@ msgid "Filter the results by the search query. For the format of the search quer msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:160 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1167 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1218 msgid "The maximum width of a single line in the output. Defaults to detecting screen size." msgstr "" @@ -16146,7 +16159,7 @@ msgstr "" msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:851 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:853 msgid "" "\n" " %prog set_custom [options] column id value\n" @@ -16158,15 +16171,15 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:861 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:863 msgid "If the column stores multiple values, append the specified values to the existing ones, instead of replacing them." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:872 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:874 msgid "Error: You must specify a field name, id and value" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:892 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:894 msgid "" "\n" " %prog custom_columns [options]\n" @@ -16175,20 +16188,20 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:898 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:900 msgid "Show details for each column." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:910 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:912 #, python-format msgid "You will lose all data in the column: %r. Are you sure (y/n)? " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:912 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:914 msgid "y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:919 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:921 msgid "" "\n" " %prog remove_custom_column [options] label\n" @@ -16198,15 +16211,15 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:926 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:928 msgid "Do not ask for confirmation" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:936 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:938 msgid "Error: You must specify a column label" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:947 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:949 msgid "" "\n" " %prog saved_searches [options] list\n" @@ -16219,74 +16232,90 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:964 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:966 msgid "Error: You must specify an action (add|remove|list)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:972 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:974 msgid "Name:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:973 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:975 msgid "Search string:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:979 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:981 msgid "Error: You must specify a name and a search string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:982 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:984 msgid "added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:987 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:989 msgid "Error: You must specify a name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:990 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:992 msgid "removed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:994 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:996 #, python-format msgid "Error: Action %s not recognized, must be one of: (add|remove|list)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1002 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1003 +msgid "" +"%prog backup_metadata [options]\n" +"\n" +"Backup the metadata stored in the database into individual OPF files in each\n" +"books directory. This normally happens automatically, but you can run this\n" +"command to force re-generation of the OPF files, with the --all option.\n" +"\n" +"Note that there is normally no need to do this, as the OPF files are backed up\n" +"automatically, every time metadata is changed.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1014 +msgid "Normally, this command only operates on books that have out of date OPF files. This option makes it operate on all books." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1053 msgid "" "%prog check_library [options]\n" "\n" "Perform some checks on the filesystem representing a library. Reports are {0}\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1009 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1159 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1060 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1210 msgid "Output in CSV" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1012 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1063 msgid "" "Comma-separated list of reports.\n" "Default: all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1016 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1067 msgid "" "Comma-separated list of extensions to ignore.\n" "Default: all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1020 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1071 msgid "" "Comma-separated list of names to ignore.\n" "Default: all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1050 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1101 msgid "Unknown report check" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1084 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1135 msgid "" "%prog restore_database [options]\n" "\n" @@ -16301,16 +16330,16 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1098 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1149 msgid "Really do the recovery. The command will not run unless this option is specified." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1111 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1162 #, python-format msgid "You must provide the %s option to do a recovery" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1148 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1199 msgid "" "%prog list_categories [options]\n" "\n" @@ -16318,29 +16347,29 @@ msgid "" "information is the equivalent of what is shown in the tags pane.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1156 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1207 msgid "Output only the number of items in a category instead of the counts per item within the category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1161 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1212 msgid "The character to put around the category value in CSV mode. Default is quotes (\")." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1164 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1215 msgid "" "Comma-separated list of category lookup names.\n" "Default: all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1170 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1221 msgid "The string used to separate fields in CSV mode. Default is a comma." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1208 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1259 msgid "CATEGORY ITEMS" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1281 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1332 #, python-format msgid "" "%%prog command [options] [arguments]\n" @@ -16375,17 +16404,17 @@ msgstr "" msgid "creating custom column " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3488 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3533 #, python-format msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3517 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3562 #, python-format msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:3534 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:3579 msgid "Compacting database" msgstr "" @@ -16750,11 +16779,11 @@ msgstr "" msgid "Auto reload server when source code changes. May not work in all environments." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:160 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:162 msgid "Switch to the full interface (non-mobile interface)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:163 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:165 msgid "The full interface gives you many more features, but it may not work well on a small screen" msgstr "" @@ -17802,281 +17831,281 @@ msgid "Auto increment series index" msgstr "" #: /home/kovid/work/calibre/resources/default_tweaks.py:13 -msgid "The algorithm used to assign a book added to an existing series a series number.\nNew series numbers assigned using this tweak are always integer values, except\nif a constant non-integer is specified.\nPossible values are:\nnext - First available integer larger than the largest existing number\nfirst_free - First available integer larger than 0\nnext_free - First available integer larger than the smallest existing number\nlast_free - First available integer smaller than the largest existing number\nReturn largest existing + 1 if no free number is found\nconst - Assign the number 1 always\na number - Assign that number always. The number is not in quotes. Note that\n0.0 can be used here.\nExamples:\nseries_index_auto_increment = 'next'\nseries_index_auto_increment = 'next_free'\nseries_index_auto_increment = 16.5\n\nSet the use_series_auto_increment_tweak_when_importing tweak to True to\nuse the above values when importing/adding books. If this tweak is set to\nFalse (the default) then the series number will be set to 1 if it is not\nexplicitly set to during the import. If set to True, then the\nseries index will be set according to the series_index_auto_increment setting.\nNote that the use_series_auto_increment_tweak_when_importing tweak is used\nonly when a value is not provided during import. If the importing regular\nexpression produces a value for series_index, or if you are reading metadata\nfrom books and the import plugin produces a value, than that value will\nbe used irrespective of the setting of the tweak." -msgstr "" - -#: /home/kovid/work/calibre/resources/default_tweaks.py:43 -msgid "Add separator after completing an author name" +msgid "The algorithm used to assign a book added to an existing series a series number.\nNew series numbers assigned using this tweak are always integer values, except\nif a constant non-integer is specified.\nPossible values are:\nnext - First available integer larger than the largest existing number\nfirst_free - First available integer larger than 0\nnext_free - First available integer larger than the smallest existing number\nlast_free - First available integer smaller than the largest existing number\nReturn largest existing + 1 if no free number is found\nconst - Assign the number 1 always\nno_change - Do not change the series index\na number - Assign that number always. The number is not in quotes. Note that\n0.0 can be used here.\nExamples:\nseries_index_auto_increment = 'next'\nseries_index_auto_increment = 'next_free'\nseries_index_auto_increment = 16.5\n\nSet the use_series_auto_increment_tweak_when_importing tweak to True to\nuse the above values when importing/adding books. If this tweak is set to\nFalse (the default) then the series number will be set to 1 if it is not\nexplicitly set to during the import. If set to True, then the\nseries index will be set according to the series_index_auto_increment setting.\nNote that the use_series_auto_increment_tweak_when_importing tweak is used\nonly when a value is not provided during import. If the importing regular\nexpression produces a value for series_index, or if you are reading metadata\nfrom books and the import plugin produces a value, than that value will\nbe used irrespective of the setting of the tweak." msgstr "" #: /home/kovid/work/calibre/resources/default_tweaks.py:44 +msgid "Add separator after completing an author name" +msgstr "" + +#: /home/kovid/work/calibre/resources/default_tweaks.py:45 msgid "Should the completion separator be append\nto the end of the completed text to\nautomatically begin a new completion operation\nfor authors.\nCan be either True or False" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:51 +#: /home/kovid/work/calibre/resources/default_tweaks.py:52 msgid "Author sort name algorithm" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:52 +#: /home/kovid/work/calibre/resources/default_tweaks.py:53 msgid "The algorithm used to copy author to author_sort\nPossible values are:\ninvert: use \"fn ln\" -> \"ln, fn\"\ncopy : copy author to author_sort without modification\ncomma : use 'copy' if there is a ',' in the name, otherwise use 'invert'\nnocomma : \"fn ln\" -> \"ln fn\" (without the comma)\nWhen this tweak is changed, the author_sort values stored with each author\nmust be recomputed by right-clicking on an author in the left-hand tags pane,\nselecting 'manage authors', and pressing 'Recalculate all author sort values'.\nThe author name suffixes are words that are ignored when they occur at the\nend of an author name. The case of the suffix is ignored and trailing\nperiods are automatically handled. The same is true for prefixes.\nThe author name copy words are a set of words which if they occur in an\nauthor name cause the automatically generated author sort string to be\nidentical to the author name. This means that the sort for a string like Acme\nInc. will be Acme Inc. instead of Inc., Acme" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:76 +#: /home/kovid/work/calibre/resources/default_tweaks.py:77 msgid "Splitting multiple author names" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:77 +#: /home/kovid/work/calibre/resources/default_tweaks.py:78 msgid "By default, calibre splits a string containing multiple author names on\nampersands and the words \"and\" and \"with\". You can customize the splitting\nby changing the regular expression below. Strings are split on whatever the\nspecified regular expression matches.\nDefault: r'(?i),?\\s+(and|with)\\s+'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:84 +#: /home/kovid/work/calibre/resources/default_tweaks.py:85 msgid "Use author sort in Tag Browser" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:85 +#: /home/kovid/work/calibre/resources/default_tweaks.py:86 msgid "Set which author field to display in the tags pane (the list of authors,\nseries, publishers etc on the left hand side). The choices are author and\nauthor_sort. This tweak affects only what is displayed under the authors\ncategory in the tags pane and content server. Please note that if you set this\nto author_sort, it is very possible to see duplicate names in the list because\nalthough it is guaranteed that author names are unique, there is no such\nguarantee for author_sort values. Showing duplicates won't break anything, but\nit could lead to some confusion. When using 'author_sort', the tooltip will\nshow the author's name.\nExamples:\ncategories_use_field_for_author_name = 'author'\ncategories_use_field_for_author_name = 'author_sort'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:99 +#: /home/kovid/work/calibre/resources/default_tweaks.py:100 msgid "Completion sort order: choose when to change from lexicographic to ASCII-like" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:100 +#: /home/kovid/work/calibre/resources/default_tweaks.py:101 msgid "Calibre normally uses locale-dependent lexicographic ordering when showing\ncompletion values. This means that the sort order is correct for the user's\nlanguage. However, this can be slow. Performance is improved by switching to\nascii ordering. This tweak controls when that switch happens. Set it to zero\nto always use ascii ordering. Set it to something larger than zero to switch\nto ascii ordering for performance reasons." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:108 +#: /home/kovid/work/calibre/resources/default_tweaks.py:109 msgid "Control partitioning of Tag Browser" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:109 +#: /home/kovid/work/calibre/resources/default_tweaks.py:110 msgid "When partitioning the tags browser, the format of the subcategory label is\ncontrolled by a template: categories_collapsed_name_template if sorting by\nname, categories_collapsed_rating_template if sorting by average rating, and\ncategories_collapsed_popularity_template if sorting by popularity. There are\ntwo variables available to the template: first and last. The variable 'first'\nis the initial item in the subcategory, and the variable 'last' is the final\nitem in the subcategory. Both variables are 'objects'; they each have multiple\nvalues that are obtained by using a suffix. For example, first.name for an\nauthor category will be the name of the author. The sub-values available are:\nname: the printable name of the item\ncount: the number of books that references this item\navg_rating: the average rating of all the books referencing this item\nsort: the sort value. For authors, this is the author_sort for that author\ncategory: the category (e.g., authors, series) that the item is in.\nNote that the \"r'\" in front of the { is necessary if there are backslashes\n(\\ characters) in the template. It doesn't hurt anything to leave it there\neven if there aren't any backslashes." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:130 +#: /home/kovid/work/calibre/resources/default_tweaks.py:131 msgid "Control order of categories in the tag browser" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:131 +#: /home/kovid/work/calibre/resources/default_tweaks.py:132 msgid "Change the following dict to change the order that categories are displayed in\nthe tag browser. Items are named using their lookup name, and will be sorted\nusing the number supplied. The lookup name '*' stands for all names that\notherwise do not appear. Two names with the same value will be sorted\nusing the default order; the one used when the dict is empty.\nExample: tag_browser_category_order = {'series':1, 'tags':2, '*':3}\nresulting in the order series, tags, then everything else in default order." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:141 +#: /home/kovid/work/calibre/resources/default_tweaks.py:142 msgid "Specify columns to sort the booklist by on startup" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:142 +#: /home/kovid/work/calibre/resources/default_tweaks.py:143 msgid "Provide a set of columns to be sorted on when calibre starts\nThe argument is None if saved sort history is to be used\notherwise it is a list of column,order pairs. Column is the\nlookup/search name, found using the tooltip for the column\nOrder is 0 for ascending, 1 for descending\nFor example, set it to [('authors',0),('title',0)] to sort by\ntitle within authors." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:151 +#: /home/kovid/work/calibre/resources/default_tweaks.py:152 msgid "Control how dates are displayed" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:152 +#: /home/kovid/work/calibre/resources/default_tweaks.py:153 msgid "Format to be used for publication date and the timestamp (date).\nA string controlling how the publication date is displayed in the GUI\nd the day as number without a leading zero (1 to 31)\ndd the day as number with a leading zero (01 to 31)\nddd the abbreviated localized day name (e.g. 'Mon' to 'Sun').\ndddd the long localized day name (e.g. 'Monday' to 'Qt::Sunday').\nM the month as number without a leading zero (1-12)\nMM the month as number with a leading zero (01-12)\nMMM the abbreviated localized month name (e.g. 'Jan' to 'Dec').\nMMMM the long localized month name (e.g. 'January' to 'December').\nyy the year as two digit number (00-99)\nyyyy the year as four digit number\nh the hours without a leading 0 (0 to 11 or 0 to 23, depending on am/pm) '\nhh the hours with a leading 0 (00 to 11 or 00 to 23, depending on am/pm) '\nm the minutes without a leading 0 (0 to 59) '\nmm the minutes with a leading 0 (00 to 59) '\ns the seconds without a leading 0 (0 to 59) '\nss the seconds with a leading 0 (00 to 59) '\nap use a 12-hour clock instead of a 24-hour clock, with \"ap\"\nreplaced by the localized string for am or pm '\nAP use a 12-hour clock instead of a 24-hour clock, with \"AP\"\nreplaced by the localized string for AM or PM '\niso the date with time and timezone. Must be the only format present\nFor example, given the date of 9 Jan 2010, the following formats show\nMMM yyyy ==> Jan 2010 yyyy ==> 2010 dd MMM yyyy ==> 09 Jan 2010\nMM/yyyy ==> 01/2010 d/M/yy ==> 9/1/10 yy ==> 10\npublication default if not set: MMM yyyy\ntimestamp default if not set: dd MMM yyyy\nlast_modified_display_format if not set: dd MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:185 +#: /home/kovid/work/calibre/resources/default_tweaks.py:186 msgid "Control sorting of titles and series in the library display" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:186 +#: /home/kovid/work/calibre/resources/default_tweaks.py:187 msgid "Control title and series sorting in the library view. If set to\n'library_order', the title sort field will be used instead of the title.\nUnless you have manually edited the title sort field, leading articles such as\nThe and A will be ignored. If set to 'strictly_alphabetic', the titles will be\nsorted as-is (sort by title instead of title sort). For example, with\nlibrary_order, The Client will sort under 'C'. With strictly_alphabetic, the\nbook will sort under 'T'.\nThis flag affects Calibre's library display. It has no effect on devices. In\naddition, titles for books added before changing the flag will retain their\norder until the title is edited. Double-clicking on a title and hitting return\nwithout changing anything is sufficient to change the sort." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:199 +#: /home/kovid/work/calibre/resources/default_tweaks.py:200 msgid "Control formatting of title and series when used in templates" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:200 +#: /home/kovid/work/calibre/resources/default_tweaks.py:201 msgid "Control how title and series names are formatted when saving to disk/sending\nto device. The behavior depends on the field being processed. If processing\ntitle, then if this tweak is set to 'library_order', the title will be\nreplaced with title_sort. If it is set to 'strictly_alphabetic', then the\ntitle will not be changed. If processing series, then if set to\n'library_order', articles such as 'The' and 'An' will be moved to the end. If\nset to 'strictly_alphabetic', the series will be sent without change.\nFor example, if the tweak is set to library_order, \"The Lord of the Rings\"\nwill become \"Lord of the Rings, The\". If the tweak is set to\nstrictly_alphabetic, it would remain \"The Lord of the Rings\". Note that the\nformatter function raw_field will return the base value for title and\nseries regardless of the setting of this tweak." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:214 +#: /home/kovid/work/calibre/resources/default_tweaks.py:215 msgid "Set the list of words considered to be \"articles\" for sort strings" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:215 +#: /home/kovid/work/calibre/resources/default_tweaks.py:216 msgid "Set the list of words that are to be considered 'articles' when computing the\ntitle sort strings. The articles differ by language. By default, calibre uses\na combination of articles from English and whatever language the calibre user\ninterface is set to. In addition, in some contexts where the book language is\navailable, the language of the book is used. You can change the list of\narticles for a given language or add a new language by editing\nper_language_title_sort_articles. To tell calibre to use a language other\nthan the user interface language, set, default_language_for_title_sort. For\nexample, to use German, set it to 'deu'. A value of None means the user\ninterface language is used. The setting title_sort_articles is ignored\n(present only for legacy reasons)." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:266 +#: /home/kovid/work/calibre/resources/default_tweaks.py:267 msgid "Specify a folder calibre should connect to at startup" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:267 +#: /home/kovid/work/calibre/resources/default_tweaks.py:268 msgid "Specify a folder that calibre should connect to at startup using\nconnect_to_folder. This must be a full path to the folder. If the folder does\nnot exist when calibre starts, it is ignored. If there are '\\' characters in\nthe path (such as in Windows paths), you must double them.\nExamples:\nauto_connect_to_folder = 'C:\\\\Users\\\\someone\\\\Desktop\\\\testlib'\nauto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:276 +#: /home/kovid/work/calibre/resources/default_tweaks.py:277 msgid "Specify renaming rules for SONY collections" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:277 +#: /home/kovid/work/calibre/resources/default_tweaks.py:278 msgid "Specify renaming rules for sony collections. This tweak is only applicable if\nmetadata management is set to automatic. Collections on Sonys are named\ndepending upon whether the field is standard or custom. A collection derived\nfrom a standard field is named for the value in that field. For example, if\nthe standard 'series' column contains the value 'Darkover', then the\ncollection name is 'Darkover'. A collection derived from a custom field will\nhave the name of the field added to the value. For example, if a custom series\ncolumn named 'My Series' contains the name 'Darkover', then the collection\nwill by default be named 'Darkover (My Series)'. For purposes of this\ndocumentation, 'Darkover' is called the value and 'My Series' is called the\ncategory. If two books have fields that generate the same collection name,\nthen both books will be in that collection.\nThis set of tweaks lets you specify for a standard or custom field how\nthe collections are to be named. You can use it to add a description to a\nstandard field, for example 'Foo (Tag)' instead of the 'Foo'. You can also use\nit to force multiple fields to end up in the same collection. For example, you\ncould force the values in 'series', '#my_series_1', and '#my_series_2' to\nappear in collections named 'some_value (Series)', thereby merging all of the\nfields into one set of collections.\nThere are two related tweaks. The first determines the category name to use\nfor a metadata field. The second is a template, used to determines how the\nvalue and category are combined to create the collection name.\nThe syntax of the first tweak, sony_collection_renaming_rules, is:\n{'field_lookup_name':'category_name_to_use', 'lookup_name':'name', ...}\nThe second tweak, sony_collection_name_template, is a template. It uses the\nsame template language as plugboards and save templates. This tweak controls\nhow the value and category are combined together to make the collection name.\nThe only two fields available are {category} and {value}. The {value} field is\nnever empty. The {category} field can be empty. The default is to put the\nvalue first, then the category enclosed in parentheses, it isn't empty:\n'{value} {category:|(|)}'\nExamples: The first three examples assume that the second tweak\nhas not been changed.\n1: I want three series columns to be merged into one set of collections. The\ncolumn lookup names are 'series', '#series_1' and '#series_2'. I want nothing\nin the parenthesis. The value to use in the tweak value would be:\nsony_collection_renaming_rules={'series':'', '#series_1':'', '#series_2':''}\n2: I want the word '(Series)' to appear on collections made from series, and\nthe word '(Tag)' to appear on collections made from tags. Use:\nsony_collection_renaming_rules={'series':'Series', 'tags':'Tag'}\n3: I want 'series' and '#myseries' to be merged, and for the collection name\nto have '(Series)' appended. The renaming rule is:\nsony_collection_renaming_rules={'series':'Series', '#myseries':'Series'}\n4: Same as example 2, but instead of having the category name in parentheses\nand appended to the value, I want it prepended and separated by a colon, such\nas in Series: Darkover. I must change the template used to format the category name\nThe resulting two tweaks are:\nsony_collection_renaming_rules={'series':'Series', 'tags':'Tag'}\nsony_collection_name_template='{category:||: }{value}'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:329 +#: /home/kovid/work/calibre/resources/default_tweaks.py:330 msgid "Specify how SONY collections are sorted" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:330 +#: /home/kovid/work/calibre/resources/default_tweaks.py:331 msgid "Specify how sony collections are sorted. This tweak is only applicable if\nmetadata management is set to automatic. You can indicate which metadata is to\nbe used to sort on a collection-by-collection basis. The format of the tweak\nis a list of metadata fields from which collections are made, followed by the\nname of the metadata field containing the sort value.\nExample: The following indicates that collections built from pubdate and tags\nare to be sorted by the value in the custom column '#mydate', that collections\nbuilt from 'series' are to be sorted by 'series_index', and that all other\ncollections are to be sorted by title. If a collection metadata field is not\nnamed, then if it is a series- based collection it is sorted by series order,\notherwise it is sorted by title order.\n[(['pubdate', 'tags'],'#mydate'), (['series'],'series_index'), (['*'], 'title')]\nNote that the bracketing and parentheses are required. The syntax is\n[ ( [list of fields], sort field ) , ( [ list of fields ] , sort field ) ]\nDefault: empty (no rules), so no collection attributes are named." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:347 +#: /home/kovid/work/calibre/resources/default_tweaks.py:348 msgid "Control how tags are applied when copying books to another library" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:348 +#: /home/kovid/work/calibre/resources/default_tweaks.py:349 msgid "Set this to True to ensure that tags in 'Tags to add when adding\na book' are added when copying books to another library" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:352 +#: /home/kovid/work/calibre/resources/default_tweaks.py:353 msgid "Set the maximum number of tags to show per book in the content server" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:355 +#: /home/kovid/work/calibre/resources/default_tweaks.py:356 msgid "Set custom metadata fields that the content server will or will not display." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:356 +#: /home/kovid/work/calibre/resources/default_tweaks.py:357 msgid "content_server_will_display is a list of custom fields to be displayed.\ncontent_server_wont_display is a list of custom fields not to be displayed.\nwont_display has priority over will_display.\nThe special value '*' means all custom fields. The value [] means no entries.\nDefaults:\ncontent_server_will_display = ['*']\ncontent_server_wont_display = []\nExamples:\nTo display only the custom fields #mytags and #genre:\ncontent_server_will_display = ['#mytags', '#genre']\ncontent_server_wont_display = []\nTo display all fields except #mycomments:\ncontent_server_will_display = ['*']\ncontent_server_wont_display['#mycomments']" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:373 +#: /home/kovid/work/calibre/resources/default_tweaks.py:374 msgid "Set the maximum number of sort 'levels'" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:374 +#: /home/kovid/work/calibre/resources/default_tweaks.py:375 msgid "Set the maximum number of sort 'levels' that calibre will use to resort the\nlibrary after certain operations such as searches or device insertion. Each\nsort level adds a performance penalty. If the database is large (thousands of\nbooks) the penalty might be noticeable. If you are not concerned about multi-\nlevel sorts, and if you are seeing a slowdown, reduce the value of this tweak." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:381 +#: /home/kovid/work/calibre/resources/default_tweaks.py:382 msgid "Choose whether dates are sorted using visible fields" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:382 +#: /home/kovid/work/calibre/resources/default_tweaks.py:383 msgid "Date values contain both a date and a time. When sorted, all the fields are\nused, regardless of what is displayed. Set this tweak to True to use only\nthe fields that are being displayed." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:387 +#: /home/kovid/work/calibre/resources/default_tweaks.py:388 msgid "Specify which font to use when generating a default cover or masthead" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:388 +#: /home/kovid/work/calibre/resources/default_tweaks.py:389 msgid "Absolute path to .ttf font files to use as the fonts for the title, author\nand footer when generating a default cover or masthead image. Useful if the\ndefault font (Liberation Serif) does not contain glyphs for the language of\nthe books in your library." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:395 +#: /home/kovid/work/calibre/resources/default_tweaks.py:396 msgid "Control behavior of the book list" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:396 +#: /home/kovid/work/calibre/resources/default_tweaks.py:397 msgid "You can control the behavior of doubleclicks on the books list.\nChoices: open_viewer, do_nothing,\nedit_cell, edit_metadata. Selecting edit_metadata has the side effect of\ndisabling editing a field using a single click.\nDefault: open_viewer.\nExample: doubleclick_on_library_view = 'do_nothing'\nYou can also control whether the book list scrolls horizontal per column or\nper pixel. Default is per column." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:407 +#: /home/kovid/work/calibre/resources/default_tweaks.py:408 msgid "Language to use when sorting." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:408 +#: /home/kovid/work/calibre/resources/default_tweaks.py:409 msgid "Setting this tweak will force sorting to use the\ncollating order for the specified language. This might be useful if you run\ncalibre in English but want sorting to work in the language where you live.\nSet the tweak to the desired ISO 639-1 language code, in lower case.\nYou can find the list of supported locales at\nhttp://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/nls/rbagsicusortsequencetables.htm\nDefault: locale_for_sorting = '' -- use the language calibre displays in\nExample: locale_for_sorting = 'fr' -- sort using French rules.\nExample: locale_for_sorting = 'nb' -- sort using Norwegian rules." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:419 +#: /home/kovid/work/calibre/resources/default_tweaks.py:420 msgid "Number of columns for custom metadata in the edit metadata dialog" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:420 +#: /home/kovid/work/calibre/resources/default_tweaks.py:421 msgid "Set whether to use one or two columns for custom metadata when editing\nmetadata one book at a time. If True, then the fields are laid out using two\ncolumns. If False, one column is used." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:425 +#: /home/kovid/work/calibre/resources/default_tweaks.py:426 msgid "Order of custom column(s) in edit metadata" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:426 +#: /home/kovid/work/calibre/resources/default_tweaks.py:427 msgid "Controls the order that custom columns are listed in edit metadata single\nand bulk. The columns listed in the tweak are displayed first and in the\norder provided. Any columns not listed are dislayed after the listed ones,\nin alphabetical order. Do note that this tweak does not change the size of\nthe edit widgets. Putting comments widgets in this list may result in some\nodd widget spacing when using two-column mode.\nEnter a comma-separated list of custom field lookup names, as in\nmetadata_edit_custom_column_order = ['#genre', '#mytags', '#etc']" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:436 +#: /home/kovid/work/calibre/resources/default_tweaks.py:437 msgid "The number of seconds to wait before sending emails" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:437 +#: /home/kovid/work/calibre/resources/default_tweaks.py:438 msgid "The number of seconds to wait before sending emails when using a\npublic email server like gmail or hotmail. Default is: 5 minutes\nSetting it to lower may cause the server's SPAM controls to kick in,\nmaking email sending fail. Changes will take effect only after a restart of\ncalibre." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:444 +#: /home/kovid/work/calibre/resources/default_tweaks.py:445 msgid "The maximum width and height for covers saved in the calibre library" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:445 +#: /home/kovid/work/calibre/resources/default_tweaks.py:446 msgid "All covers in the calibre library will be resized, preserving aspect ratio,\nto fit within this size. This is to prevent slowdowns caused by extremely\nlarge covers" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:450 +#: /home/kovid/work/calibre/resources/default_tweaks.py:451 msgid "Where to send downloaded news" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:451 +#: /home/kovid/work/calibre/resources/default_tweaks.py:452 msgid "When automatically sending downloaded news to a connected device, calibre\nwill by default send it to the main memory. By changing this tweak, you can\ncontrol where it is sent. Valid values are \"main\", \"carda\", \"cardb\". Note\nthat if there isn't enough free space available on the location you choose,\nthe files will be sent to the location with the most free space." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:458 +#: /home/kovid/work/calibre/resources/default_tweaks.py:459 msgid "What interfaces should the content server listen on" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:459 +#: /home/kovid/work/calibre/resources/default_tweaks.py:460 msgid "By default, the calibre content server listens on '0.0.0.0' which means that it\naccepts IPv4 connections on all interfaces. You can change this to, for\nexample, '127.0.0.1' to only listen for connections from the local machine, or\nto '::' to listen to all incoming IPv6 and IPv4 connections (this may not\nwork on all operating systems)" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:466 +#: /home/kovid/work/calibre/resources/default_tweaks.py:467 msgid "Unified toolbar on OS X" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:467 +#: /home/kovid/work/calibre/resources/default_tweaks.py:468 msgid "If you enable this option and restart calibre, the toolbar will be 'unified'\nwith the titlebar as is normal for OS X applications. However, doing this has\nvarious bugs, for instance the minimum width of the toolbar becomes twice\nwhat it should be and it causes other random bugs on some systems, so turn it\non at your own risk!" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:474 +#: /home/kovid/work/calibre/resources/default_tweaks.py:475 msgid "Save original file when converting from same format to same format" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:475 +#: /home/kovid/work/calibre/resources/default_tweaks.py:476 msgid "When calibre does a conversion from the same format to the same format, for\nexample, from EPUB to EPUB, the original file is saved, so that in case the\nconversion is poor, you can tweak the settings and run it again. By setting\nthis to False you can prevent calibre from saving the original file." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:481 +#: /home/kovid/work/calibre/resources/default_tweaks.py:482 msgid "Number of recently viewed books to show" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:482 +#: /home/kovid/work/calibre/resources/default_tweaks.py:483 msgid "Right-clicking the View button shows a list of recently viewed books. Control\nhow many should be shown, here." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:486 +#: /home/kovid/work/calibre/resources/default_tweaks.py:487 msgid "Change the font size of book details in the interface" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:487 +#: /home/kovid/work/calibre/resources/default_tweaks.py:488 msgid "Change the font size at which book details are rendered in the side panel and\ncomments are rendered in the metadata edit dialog. Set it to a positive or\nnegative number to increase or decrease the font size." msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:492 +#: /home/kovid/work/calibre/resources/default_tweaks.py:493 msgid "Compile General Program Mode templates to Python" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:493 +#: /home/kovid/work/calibre/resources/default_tweaks.py:494 msgid "Compiled general program mode templates are significantly faster than\ninterpreted templates. Setting this tweak to True causes calibre to compile\n(in most cases) general program mode templates. Setting it to False causes\ncalibre to use the old behavior -- interpreting the templates. Set the tweak\nto False if some compiled templates produce incorrect values.\nDefault: compile_gpm_templates = True\nNo compile: compile_gpm_templates = False" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:502 +#: /home/kovid/work/calibre/resources/default_tweaks.py:503 msgid "What format to default to when using the Tweak feature" msgstr "" -#: /home/kovid/work/calibre/resources/default_tweaks.py:503 +#: /home/kovid/work/calibre/resources/default_tweaks.py:504 msgid "The Tweak feature of calibre allows direct editing of a book format.\nIf multiple formats are available, calibre will offer you a choice\nof formats, defaulting to your preferred output format if it is available.\nSet this tweak to a specific value of 'EPUB' or 'AZW3' to always default\nto that format rather than your output format preference.\nSet to a value of 'remember' to use whichever format you chose last time you\nused the Tweak feature.\nExamples:\ndefault_tweak_format = None (Use output format)\ndefault_tweak_format = 'EPUB'\ndefault_tweak_format = 'remember'" msgstr ""